java 中的访问修饰符定义变量、方法、构造函数或类的可访问性(范围)。 java中有4种访问修饰符。
您不必显式放置默认修饰符。如果您不提供, JVMPublic, Private and Protected将使用默认修饰符。
Public, Private and Protected
Public修饰符在整个 Java 世界中都可以访问。如果你把类作为公众,这意味着它class无处不在。
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 的方法中,变量a 的值为:20
private访问修饰符只能在类中访问。 除非并且直到它是嵌套类,否则您不能使用私有和受保护的类。 让我们借助示例来理解它:
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 的类。
default
package
package com; public class A { int a; public A(int a) { this.a=a; } void methodA() { System.out.println("In method of class A"); } }
在这里,您将在第 11 行和第 12 行得到编译错误,因为我们正在尝试访问包外 A 类的变量 a 和方法Acom
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"); } }
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); } }
In method of class A Value of variable a is: 20
如您所见,我们可以使用继承访问类 A 的变量 a 和 methodA。
这就是Java中的访问修饰符。
原文链接:https://codingdict.com/