基礎:
訪問權限等級,由最大權限到最小權限: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();
}
}