权限修饰符的限定范围验证代码

来源:互联网 发布:淘宝返现规定 编辑:程序博客网 时间:2024/05/16 09:54

对于四个权限修饰符的作用范围,不再赘述,仅给出验证程序,供大家参考。

package bb;public class B{private int x=2;private int y=3;//void show1(){System.out.println(x);}protected void show2(){System.out.println(y);}}
package dd;public class D{private int z=4;protected void show3(){System.out.println(z);}public void show4(){System.out.println(z);}}
import bb.*;import dd.*;class A{private int i=1;private int getI(){return i;}void show(){System.out.println(getI());}}public class TestAcess extends B{public static void main(String [] args){A a=new A();D d=new D();TestAcess c=new TestAcess();//a.getI();/*  说明在类的外部不能访问私有成员。  报错:TestAcess.java:31: 错误: getI()可以在A中访问private                a.getI();                 ^*/a.show();/*  说明在同一个包内、类的外部可以访问默认成员;  而且私有成员可以在类的内部实现访问。*///c.show1();/*  说明在不同的包的子类,不能访问其父类的默认成员  报错:TestAcess.java:43:错误: 找不到符号                c.show1();                 ^符号:   方法 show1()位置: 类型为C的变量 c*/c.show2();/*  说明在不同的包的子类,能访问其父类的保护成员*///d.show3();/*  说明在不同的包的不同类之间,不能访问保护成员  报错:TestAcess.java:61: 错误: show3()可以在D中访问protected                d.show3();                 ^*/d.show4();/*  说明在不同的包的不同类之间,能访问公有成员*/}}




原创粉丝点击