访问Java中的修饰符

时间:2020-02-23 14:36:07  来源:igfitidea点击:

Java中的访问修饰符定义变量,方法,构造函数或者类的可访问性(范围)。
Java中有4种类型的访问修饰符。
我们不必明确放置默认修改器.

如果我们不指定
Public, Private 和 Protected,则jvm使用默认修改器。

公共访问修饰符

Public修饰符可以在整个Java世界中访问。
如果你把类放在public那意味着 class无处不在。

在包com中创建名为a.java的类。

package com;
 
public class A {
	
	public int a;
	
	public A(int a)
	{
		this.a=a;
	}
	public void methodA()
	{
		System.out.println("In method of class A");
	}
}

在包com中创建另一个名为"b.java"的类。

package org;
 
import com.A;
 
public class B {
 
	public static void main(String args[])
	{
		A objA=new A(20);
		objA.methodA();
		System.out.println("Value of variable a is: "+objA.a);
	}
}

运行上面的程序时,我们将得到以下输出:

在类的方法中,变量A值为:20

私人访问修饰符

private访问修改器只能在类中访问。
除非它是嵌套类,否则我们无法使用私有并使用类进行保护。
让我们在榜样的帮助下了解:

package com;
 
public class A {
	
	private int a;
	
	A(int a)
	{
		this.a=a;
	}
	private void methodA()
	{
		System.out.println("In method of class A");
	}
}
class B {
 
	public static void main(String args[])
	{
		A objA=new A(20);
		objA.methodA();
		System.out.println("Value of variable a is: "+objA.a);
	}
}

我们将在第22行和23行获取编译错误,因为我们无法从课堂外部访问私有变量或者方法。

默认访问修饰符

如果我们不提供任何访问权限,JVM将其视为 default使用权。
在默认访问修改器的情况下,我们无法访问外部的方法,变量或者类 package
在包com中创建名为a.java的类。

package com;
 
public class A {
	
	int a;
	
	public A(int a)
	{
		this.a=a;
	}
	void methodA()
	{
		System.out.println("In method of class A");
	}
}

在包com中创建另一个名为"b.java"的类。

package org;
 
import com.A;
 
public class B {
 
	public static void main(String args[])
	{
		A objA=new A(20);
		objA.methodA();
		System.out.println("Value of variable a is: "+objA.a);
	}
}

其中我们将在第11和12行获得编译错误,因为我们正在尝试访问包外部A类的And Methoda com

受保护的访问修饰符

受保护的访问修饰符可以仅在同一包中或者仅继承的包中访问。
让我们在榜样的帮助下了解:在包com中创建名为a.java的类。

package com;
 
public class A {
 
	protected int a;
 
	protected A(int a)
	{
		this.a=a;
	}
	protected void methodA()
	{
		System.out.println("In method of class A");
	}
}

在包com中创建另一个名为"b.java"的类。

package org;
 
import com.A;
 
public class B extends A{
 
	B(int a) {
		super(a);		
	}
 
	public static void main(String args[])
	{
		B ObjB=new B(20);
		ObjB.methodA();
		System.out.println("Value of variable a is: "+ObjB.a);
	}
}

运行上面的程序时,我们将得到以下输出:

在类的方法中,变量A值为:20

正如我们所看到的,我们可以使用继承访问A类A和Methoda。