java 修飾詞 private final 簡單的理解
final :
本意是指 無法改變的! 不想被改變無非出於兩種理由。設計和效率!以下針對用到final 的 三種情況 資料,方法 ,類
1 資料 final 修飾基本的資料型別時 必須初始化 否則編譯報錯。程式碼 如下 包括包裝類。
final int a=0;
final Integer ad;//編譯報錯
當 final 修飾的物件修飾的資料 是獨享的引用的時候 而不是基本的資料型別。那麼該物件的引用(String 除外)是不可以改變的。物件本身是可以改變的。
void tets(final TestA a){
a.setRemark("");
a=new TestA();//編譯 報錯
}
void tetst(TestA a){
a.setRemark("");
a=new TestA();
}
使用 final 修飾方法的原因有兩個。第一個原因把方法鎖定,以防止整合修改他的含義。處於設計考慮 第二個就是效率問題。內嵌的方法有時候效率 偏高。final和private關鍵字
類中 所有的private 方法都隱士的指定為 final的 由於無法取用private 方法所以也就無法覆蓋它。但是 private 方法新增上隱士的 final字也是可以的 編譯器並不報錯
private final void testAMethod(){
System.out.println("menthod");
}
private void testAMethod2(){
System.out.println("menthod 2");
}
使用 final 修飾類的時候 意味著 該類不能被繼承。 也就是該類的設計用不需要做 任何的變動 或者處於安全考慮的 考慮 你不希望他有子類。參考 String 類
補充 java中除了 static 和final 外其他方法都是後期繫結的