public class Main {
private final int value ;
public Main(int value) {
this.value=value;
}
public int intValue(){
return this.value;
}
public static void main(String[] args) {
Main m = new Main(110);
System.out.println(m.intValue());
}
先給大家看個例子! 這個例子如果遇到一些對java中final不太了解的人可能有些莫名其妙,原因是沒有對final深入了解,我周圍的朋友中也有
我們來分析下:private final int value ;
可能有人對這個value是定義的final那麼它就不能指派了啊
可是 public Main(int value) {
this.value=value;
}
怎麼能指派呢!原因是final關鍵如果沒有在定義的時候指派,那麼它可以在構造函數中指派!
上面這個成立!
如果我們指派了呢private final int value =100; 那麼 this.value=value會報錯,表明不能指派!
為什麼隻能在構造函數中添加呢! 大家想想構造函數的作用吧!
好的我們把構造函數删除,添加一個其他函數public void add(int value){this.value=value},
報錯了,說明不能在其他函數中指派!
網上有些文章隻是表明這個final的基本作用,例如它修飾類是什麼意思,修飾已指派的變量是什麼意思,沒有涉及到未指派的變量,在加上一些朋友也有點糊塗,是以我寫出來給大家參考一下!