第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

final沒(méi)賦值,用構(gòu)造方法賦值,為什么還報(bào)錯(cuò)?

http://img1.sycdn.imooc.com//570771660001295004210292.jpg為什么還報(bào)錯(cuò)





正在回答

12 回答

構(gòu)造方法
特點(diǎn):
1.方法名稱和類名相同
2.不用定義返回值類型
3.不可以寫return語(yǔ)句


0 回復(fù) 有任何疑惑可以回復(fù)我~

你寫的public void eat (){}不是構(gòu)造方法,應(yīng)該是? public Animal(){}??? 和類名相同

0 回復(fù) 有任何疑惑可以回復(fù)我~

你寫的那個(gè)不是構(gòu)造方法

0 回復(fù) 有任何疑惑可以回復(fù)我~

final修飾之后就已經(jīng)是常量了,常量是不會(huì)被賦值的

0 回復(fù) 有任何疑惑可以回復(fù)我~

final 修飾一個(gè)變量時(shí),該變量只能被賦值一次,為常量。

final public int age; ?

已經(jīng)定義age變量為常量了,初始化了。

1 回復(fù) 有任何疑惑可以回復(fù)我~
#1

weixin_慕娘0302045

該解釋說(shuō)的對(duì)。 public int age;(age作為成員變量,如果在定義的時(shí)候沒(méi)有被賦值,那么,虛擬機(jī)就會(huì)給該變量賦默認(rèn)值,int類型的默認(rèn)值是0,所以此時(shí),屬性age已經(jīng)有值了,值為0。然后加上final以后就變?yōu)閜ublic final int age;此時(shí)該屬性age就變?yōu)樽罱K變量,最終變量的意思是 值不可以被改變,那么這個(gè)age的值為0是不可以被改變的。所以,你在下面eat();方法里面,編寫的age=10;就會(huì)報(bào)錯(cuò)。 報(bào)出的錯(cuò)誤異常就是: 錯(cuò)誤: 無(wú)法為最終變量age分配值,age=10;)
2019-06-17 回復(fù) 有任何疑惑可以回復(fù)我~

其中 ?eat() ?是普通方法,不是構(gòu)造方法,親,看清楚了

0 回復(fù) 有任何疑惑可以回復(fù)我~

你那個(gè)eat()也不是構(gòu)造方法啊,final修飾的屬性在聲明時(shí)沒(méi)賦值,是可以在構(gòu)造方法里賦值的。

public class Animal {

final public int age;

public void eat(){

System.out.println("動(dòng)物具有吃東西的能力");

}

public Animal(){

System.out.println("Animal執(zhí)行了");

age=20;

}

}


0 回復(fù) 有任何疑惑可以回復(fù)我~

樓上說(shuō)的不對(duì),Java里面final可以進(jìn)行留白,并且在構(gòu)造方法里面賦值。

public?class?Test?{
???private?final?int?testNum;
???public?Test(int?test)?{
??????this.testNum?=?testNum;
???}
}

或者

public?class?Test?{
???private?final?int?testNum;
???public?Test()?{
??????testNum?=?10;
???}
}

都是可以的。問(wèn)題里不可以是因?yàn)椴](méi)有使用構(gòu)造方法而是在方法里面賦值,這是不可以的。

樓上說(shuō)的例子里面,因?yàn)橛辛藄tatic關(guān)鍵字,所以這個(gè)量是屬于類的,就必須要在初始化的時(shí)候賦值,不能留白。而沒(méi)有關(guān)鍵字的static的時(shí)候,量是在對(duì)象初始化的時(shí)候才初始化,所以可以在構(gòu)造方法里面賦值。

1 回復(fù) 有任何疑惑可以回復(fù)我~
#1

nizhuan1130

第一段代碼里面構(gòu)造方法的參數(shù)應(yīng)為testNum,打錯(cuò)了不好意思。
2016-04-09 回復(fù) 有任何疑惑可以回復(fù)我~

Java中final的設(shè)計(jì)就是這樣的,只能在定義的時(shí)候賦值,不能在其他地方賦值或修改(區(qū)別于“只能賦值一次”)

final的用處多數(shù)在于,當(dāng)你需要一個(gè)確定的值表達(dá)某個(gè)含義的時(shí)候,用final修飾它,一方面防止錯(cuò)誤操作(比如不小心把這個(gè)值修改了),另一方面起到說(shuō)明文檔的作用,告訴其他程序員這個(gè)值是表達(dá)某個(gè)特定意義的常量。

比如我們可以使用final修飾圓周率PI

static?final?double?PI?=?3.1415926;

然后可以方便地使用PI來(lái)做計(jì)算

double?getArea?(double?radius)?{
????return?(PI?*?radius?*?radius);
}

因?yàn)閷?duì)于final修飾的值,是對(duì)于每個(gè)該類下的對(duì)象都是確定且一致的,所以通常有final就也有static。

最后,一般final修飾的常量,命名用大寫字母,用下劃線分隔單詞的命名方式,例如

static?final?MY_INT_CONSTANT?=?1024;

以上

1 回復(fù) 有任何疑惑可以回復(fù)我~
#1

nizhuan1130

說(shuō)的并不是很準(zhǔn)確。
2016-04-09 回復(fù) 有任何疑惑可以回復(fù)我~
#2

changrui0608

的確不準(zhǔn)確,沒(méi)學(xué)扎實(shí)想當(dāng)然了,所以這里能不能編輯或者刪除啊。。。。
2016-04-19 回復(fù) 有任何疑惑可以回復(fù)我~

final修飾一個(gè)變量后變成常量,常量不可以修改,賦值,當(dāng)初定義的是什么就是什么

0 回復(fù) 有任何疑惑可以回復(fù)我~
首頁(yè)上一頁(yè)12下一頁(yè)尾頁(yè)

舉報(bào)

0/150
提交
取消

final沒(méi)賦值,用構(gòu)造方法賦值,為什么還報(bào)錯(cuò)?

我要回答 關(guān)注問(wèn)題
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)