課程
/后端開發(fā)
/Java
/Java入門第一季(IDEA工具)升級(jí)版
這個(gè)題就是讓你賦值,但不賦值不就為空嗎,也沒有錯(cuò)啊
2016-05-25
源自:Java入門第一季(IDEA工具)升級(jí)版 2-7
正在回答
給你舉個(gè)例子:
public?class?HelloWorld{ ??public?static?void?main(String[]?agrs){ ????String?love;??/只是聲明了變量?love?,沒有賦值。 ????System.out.println(love);??/此行代碼可以運(yùn)行出來(lái),但是運(yùn)行出來(lái)的love跟你聲明的不是一個(gè)love.. ???????????????????????????????/你給括號(hào)里面的換成任意一個(gè)詞都能運(yùn)行出來(lái)。此時(shí)String?love;這行就沒?????????????????????????????????用 ??} }
慕粉3404826 提問者
Shuryo_jaha
實(shí)名反對(duì)最佳回答,“想要的life”的這一段代碼
public?class?HelloWorld{??public?static?void?main(String[]?agrs){????String?love;??/只是聲明了變量?love?,沒有賦值。????System.out.println(love);??/此行代碼可以運(yùn)行出來(lái),但是運(yùn)行出來(lái)的love跟你聲明的不是一個(gè)love..???????????????????????????????/你給括號(hào)里面的換成任意一個(gè)詞都能運(yùn)行出來(lái)。此時(shí)String?love;這行就沒?????????????????????????????????用??}}
public?class?HelloWorld{
??public?static?void?main(String[]?agrs){
????String?love;??/只是聲明了變量?love?,沒有賦值。
????System.out.println(love);??/此行代碼可以運(yùn)行出來(lái),但是運(yùn)行出來(lái)的love跟你聲明的不是一個(gè)love..
???????????????????????????????/你給括號(hào)里面的換成任意一個(gè)詞都能運(yùn)行出來(lái)。此時(shí)String?love;這行就沒?????????????????????????????????用
??}
}
編譯器是無(wú)法編譯的,如果你嘗試編譯,則會(huì)報(bào)錯(cuò):
StringTest.java:4: 錯(cuò)誤: 可能尚未初始化變量love? ? ? ? System.out.println(love);? ? ? ? ? ? ? ? ? ? ? ? ? ?^1 個(gè)錯(cuò)誤
StringTest.java:4: 錯(cuò)誤: 可能尚未初始化變量love
? ? ? ? System.out.println(love);
? ? ? ? ? ? ? ? ? ? ? ? ? ?^
1 個(gè)錯(cuò)誤
因此,變量可以不賦值,這并不違反java的語(yǔ)法規(guī)范,但是變量是一個(gè)容器,就是用來(lái)存放值或引用對(duì)象的,
如果不給變量賦值,就好象買了一個(gè)杯子,但是從來(lái)也不用它來(lái)裝任何東西一樣,就失去它的意義了。
另外,如果你需要輸出一個(gè)變量,除了聲明以外,一定要給它賦值,否則將無(wú)法輸出。
另外,在main方法中,變量的值如果不主動(dòng)賦值是不會(huì)自動(dòng)初始化的,例如
String?a;
意思就是聲明1個(gè)名字為a的String類型的變量,如果不賦值的話,a變量此時(shí)的值為null,也就是空,什么都沒有。
如果你要輸出a,編譯器就會(huì)報(bào)錯(cuò),因?yàn)闆]有任何東西可以輸出。
因此簡(jiǎn)單來(lái)回答你的問題,變量可以不賦值,這符合語(yǔ)法規(guī)范,但是沒有實(shí)際意義。
但是如果你要輸出一個(gè)變量的值,就一定要主動(dòng)賦值。
想要輸出就要賦值。
變量聲明了,不一定要賦值,系統(tǒng)會(huì)自動(dòng)初始化一個(gè)值,但是在main方法中,變量的值就不會(huì)被初始化
聲明了,不一定要賦值,如果不賦值,系統(tǒng)會(huì)自動(dòng)會(huì)賦一個(gè)隨機(jī)值!
舉報(bào)
0基礎(chǔ)萌新入門第一課,從Java環(huán)境搭建、工具使用、基礎(chǔ)語(yǔ)法開始
2 回答其他變量(非main)可以不對(duì)定義的變量賦值嗎
4 回答String變量賦值
4 回答變量的賦值
5 回答變量的賦值
2 回答數(shù)組一定需要賦值嗎
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號(hào)-11 京公網(wǎng)安備11010802030151號(hào)
購(gòu)課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號(hào)
2016-06-12
給你舉個(gè)例子:
2016-08-23
實(shí)名反對(duì)最佳回答,“想要的life”的這一段代碼
編譯器是無(wú)法編譯的,如果你嘗試編譯,則會(huì)報(bào)錯(cuò):
因此,變量可以不賦值,這并不違反java的語(yǔ)法規(guī)范,但是變量是一個(gè)容器,就是用來(lái)存放值或引用對(duì)象的,
如果不給變量賦值,就好象買了一個(gè)杯子,但是從來(lái)也不用它來(lái)裝任何東西一樣,就失去它的意義了。
另外,如果你需要輸出一個(gè)變量,除了聲明以外,一定要給它賦值,否則將無(wú)法輸出。
另外,在main方法中,變量的值如果不主動(dòng)賦值是不會(huì)自動(dòng)初始化的,例如
意思就是聲明1個(gè)名字為a的String類型的變量,如果不賦值的話,a變量此時(shí)的值為null,也就是空,什么都沒有。
如果你要輸出a,編譯器就會(huì)報(bào)錯(cuò),因?yàn)闆]有任何東西可以輸出。
因此簡(jiǎn)單來(lái)回答你的問題,變量可以不賦值,這符合語(yǔ)法規(guī)范,但是沒有實(shí)際意義。
但是如果你要輸出一個(gè)變量的值,就一定要主動(dòng)賦值。
2016-06-26
想要輸出就要賦值。
2016-05-28
變量聲明了,不一定要賦值,系統(tǒng)會(huì)自動(dòng)初始化一個(gè)值,但是在main方法中,變量的值就不會(huì)被初始化
2016-05-25
聲明了,不一定要賦值,如果不賦值,系統(tǒng)會(huì)自動(dòng)會(huì)賦一個(gè)隨機(jī)值!