访问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。