访问控制修饰符
public protected default private是java中的访问控制修饰符.
注:这里的default的意思是什么都不写
作用:
一.修饰类
1.普通类
只能使用public和default修饰源文件中编写的java类。public表示其他任何地方都有权限访问这个类
default表示质疑和当前类在一个包的类才有权限访问。
2.内部类
四个修饰符可以修饰特定的内部类
二.修饰属性和方法
四个修饰符都可以修饰属性和方法,主要控制的就是这些属性和方法的可见性,我们以属性为例,方法和属性的效果是一样的。
1.同一类中
public class Test {
public String pubStr = "public";
protected String proStr = "protected";
String defStr = "default";
private String priStr = "private";
public static void main(String[] args) {
System.out.println(new Test().pubStr);
System.out.println(new Test().proStr);
System.out.println(new Test().defStr);
System.out.println(new Test().priStr);
}
}
代码正常编译
2.同包类中
public class Test2 {
public static void main(String[] args) {
System.out.println(new Test().pubStr);
System.out.println(new Test().proStr);
System.out.println(new Test().defStr);
}
}
private修饰的属性无法被调用了
3.子类中(这里的子类是指不同包的子类)
package test2;
import test.Test;
public class Test2 extends Test{
public void teach() {
System.out.println(super.proStr);
System.out.println(super.pubStr);
}
}
private和default修饰的无法被调用了
4.不同包类中
import test.Test;
public class Test2{
public void teach() {
System.out.println(new Test().pubStr);
}
}
只有public修饰的属性可以被调用了。
总结一下:
调用属性/方法的位置 | 可被调用的属性/方法的修饰符 |
---|---|
类中 | public,protected,default,private |
同包类中 | public,protected,default |
子类中(默认是不同包子类) | public,protected |
不同包类中 | public |