該解釋說的對。
public int age;(age作為成員變量,如果在定義的時候沒有被賦值,那么,虛擬機(jī)就會給該變量賦默認(rèn)值,int類型的默認(rèn)值是0,所以此時,屬性age已經(jīng)有值了,值為0。然后加上final以后就變?yōu)閜ublic final int age;此時該屬性age就變?yōu)樽罱K變量,最終變量的意思是 值不可以被改變,那么這個age的值為0是不可以被改變的。所以,你在下面eat();方法里面,編寫的age=10;就會報錯。 報出的錯誤異常就是: 錯誤: 無法為最終變量age分配值,age=10;)
2018-07-24
構(gòu)造方法
特點(diǎn):
1.方法名稱和類名相同
2.不用定義返回值類型
3.不可以寫return語句
2016-08-23
你寫的public void eat (){}不是構(gòu)造方法,應(yīng)該是? public Animal(){}??? 和類名相同
2016-08-15
你寫的那個不是構(gòu)造方法
2016-08-15
final修飾之后就已經(jīng)是常量了,常量是不會被賦值的
2016-07-15
final 修飾一個變量時,該變量只能被賦值一次,為常量。
final public int age; ?
已經(jīng)定義age變量為常量了,初始化了。
2016-07-09
其中 ?eat() ?是普通方法,不是構(gòu)造方法,親,看清楚了
2016-04-10
你那個eat()也不是構(gòu)造方法啊,final修飾的屬性在聲明時沒賦值,是可以在構(gòu)造方法里賦值的。
public class Animal {
final public int age;
public void eat(){
System.out.println("動物具有吃東西的能力");
}
public Animal(){
System.out.println("Animal執(zhí)行了");
age=20;
}
}
2016-04-09
樓上說的不對,Java里面final可以進(jìn)行留白,并且在構(gòu)造方法里面賦值。
或者
都是可以的。問題里不可以是因?yàn)椴]有使用構(gòu)造方法而是在方法里面賦值,這是不可以的。
樓上說的例子里面,因?yàn)橛辛藄tatic關(guān)鍵字,所以這個量是屬于類的,就必須要在初始化的時候賦值,不能留白。而沒有關(guān)鍵字的static的時候,量是在對象初始化的時候才初始化,所以可以在構(gòu)造方法里面賦值。
2016-04-09
Java中final的設(shè)計(jì)就是這樣的,只能在定義的時候賦值,不能在其他地方賦值或修改(區(qū)別于“只能賦值一次”)
final的用處多數(shù)在于,當(dāng)你需要一個確定的值表達(dá)某個含義的時候,用final修飾它,一方面防止錯誤操作(比如不小心把這個值修改了),另一方面起到說明文檔的作用,告訴其他程序員這個值是表達(dá)某個特定意義的常量。
比如我們可以使用final修飾圓周率PI
然后可以方便地使用PI來做計(jì)算
因?yàn)閷τ趂inal修飾的值,是對于每個該類下的對象都是確定且一致的,所以通常有final就也有static。
最后,一般final修飾的常量,命名用大寫字母,用下劃線分隔單詞的命名方式,例如
以上
2016-04-09
final修飾一個變量后變成常量,常量不可以修改,賦值,當(dāng)初定義的是什么就是什么