先貼出protected的訪問區間:同一包內或者在其子類中訪問。
雖然很簡單的話但是對於乙個初學者來說似乎會存在一些誤解(沒有細細考究之前我也是如此),而這個誤解在**呢,先看幾行簡單的再不能簡單的**:
package tesst;
public class test1
}
package tesst;
public class test2 extends test1
}
package tesst;
public class test3
}
上邊三個類都是處在同乙個包裡邊,上邊程式是不存在任何問題的,在類test2中體現的是子類中訪問父類test1中的受保護方法,合情合理,不存在問題。test3中體現的是同一包下訪問test1中的受保護方法(注:這裡並不能體現在子類中訪問父類的受保護方法,因為test3不是test1的子類),合情合理,不存在問題。
however,當我把test3改寫成如下**時,會出現語法錯誤:
package t;//這裡發生了改動
這裡發生了改動import tesst.test2;
public class test3
}
原因在於以上**既不能體現包內訪問也不能體現子類中訪問。而我上邊提到的誤解在於,有人可能會這樣思考(之前我也是這麼想的):test2是test1的子類,test2的例項呼叫print()方法不是合情合理嗎?注意這裡需要細究的是,在其子類中訪問。
關於修飾詞const
1.const修飾的唯讀變數必須在定義的同時初始化 因為如果沒有被賦初值,那麼變數被編譯器分配了乙個空間,並且賦給預設的乙個值,一般是很大的乙個負數,當我們再次給這個const變數賦值的時候就會出現錯誤,這個變數是唯讀的,一旦被賦值了就不能再改變了。2.case後面不可以是const修飾的唯讀變數,...
ios修飾詞總結
ios總共有這些修飾詞 assign weak strong retain copy nonatomic atomic readonly readwrite assign arc mrc weak arc 物件 弱指標是針對物件的修飾詞 就是說它不能修飾基本資料型別 int float weak 修...
常用Java修飾詞
1.public 使用物件 類 介面 成員 介紹 無論它所處在的包定義在哪,該類 介面 成員 都是可訪問的 2.private 使用物件 成員 介紹 成員只可以在定義它的類中被訪問 3.static 使用物件 類 方法 字段 初始化函式 介紹 成名為static的內部類是乙個頂級類,它和包含類的成員...