基础:
访问权限等级,由最大权限到最小权限:public:对所有成员可用;protected:继承访问权限,对包内类的访问开放;包访问权限:没有修饰词,对当前包中所有其他类可用;private:除了该类,其他任何类无法访问。
类的访问权限:
- 每个编译单元,也就是每个文件都只能有一个public类。
- 类既不可以是private,也不可以是protected,所以对于类的访问权限,只有两个选择:包访问权限和public 。
public class filed {
public static void main(String args[]){
}
}
//!public class AA//每个编译单元只能有一个public类,这样写会出现编译错误
//!private class AA//这样写会出现编译错误
//!protected class AA//这样写会出现编译错误
class AA{}
以下补充一些接口的访问权限
public class filed {
public static void main(String args[]){
AA aa=new AA();
//!AA.D AD=aa.getD();//AA类中此接口的权限是private,不可访问
//!AA.ID2 ad=aa.getD();//aa.getD()返回的对象是D,ID2及时实现了D接口,但是也并不能指向D
//!aa.getD().f();//无法访问D的方法,他是private的
aa.receiveD(aa.getD());//只有这样才可以调用f()方法
}
}
class AA{
private interface D{
void f();
//!private void f();//接口中所有方法自动是public
}
private class ID implements D{
public void f(){};
}
public class ID2 implements D{
public void f(){};
}
public D getD(){
return new ID2();
}
private D dd;
public void receiveD(D d){
dd=d;
dd.f();
}
}