访问修饰符
java提供了四种访问修饰符,控制方法和属性(成员变量)的访问权限(范围)
1.公开的:----- public -----对外公开,不同包也可以调用
2.受保护的:—protected -----向子类和同一个包的类公开,不同包不能调用
3.默认修饰符 –default ------只向同一个包的类公开 (同一个包的子类也是可以访问的),但不同包的子类继承本包的父类时,默认修饰符的方法和属性,子类就不能访问
4.私有的-------- private----- 只有类本身可以调用,不对外公开
ps:特别注意默认修饰的的特性,只要是同包类都可以访问。不同包的子类不可以访问
访问修饰符的注意事项
- 修饰符可以用来修饰类中的 成员方法,属性以及类
- 只有默认的和public才能修饰类!同样遵守上面的访问权限规则
- 成员方法的访问规则和属性完全一样
访问修饰符熟悉
现在有两个包 Da文件和Xa文件
Da包里有3个类 分别是 A类 B类 C类 | 其中C类extendsA类,A类是C类的父类,C类是A类的子类
Xa包里有2个类 分别是 H类 K类
现在A类中分别用4种修饰符修饰了4个属性。
然后在各个类中实例化A类,分别调用输出A类的4个属性发现以下结果:
A类:全部都可以输出 因为是本类调用
B类:n1,n2,n3都可以输出,n4无法输出,因为n4是A类私有的无法直接调用输出
C类:n1,n2可以调用输出,n3为默认修饰符,子类没有权限调用,n4为私有
H类:n1可以输出,n1,n2,n3不可以输出,因为都不支持不同的类调用
K类:n1可以输出,n1,n2,n3不可以输出,因为都不支持不同的类调用