1.private: 被private修饰的只能是同一个类的可以访问,跨类都不行。(如果构造器被声明成了private,则不可以通过new来新建一个对象,可以使用static的方法返回一个new对象)
2.什么也不加的默认是包访问控制权限:只有同一个包下的可以调用,跨包的类无法加载不是同一个包下的类(除非那个类加上public)。
包test1
public class A
class B
包test2
public class C 无法调用B
3.protected:主要是为了对继承的类开放,没继承的类不开放
public class demo4 {
protected void method(){
System.out.println("test");
}
}
public class demo5 extends demo4{
@Override
protected void method() {
super.method();
}
}
class demo6{
public void met(){
demo4 demo=new demo4();
// demo.method();
}
}
4.设定访问权限是为了防止一些源码被客户端程序员修改。所以被设定为private的语句,客户端程序员是无法访问到的,设定成protected的语句,客户端程序员只有在继承那个类之后才能访问到,不继承的话无法访问到。客户端程序员可以访问所有的public修饰的语句,对于默认不加修饰词的语句,默认是包权限,只有在同一个包下才可以访问,不在一个包下不允许访问。