亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Java中的成員變量為什么不能先聲明,再賦值?

Java中的成員變量為什么不能先聲明,再賦值?

未卜先知 2016-09-30 14:13:15
public?class?demo{ ????int?x?; ????x?=?1;??//這樣不行 }public?class?demo{ ????int?x?=?10;??//這樣就可以 }但是在方法中,先聲明,再賦值就沒問題:public?class?demo{ ????public?static?void?main(String[]?args)?{ ????????int?x; ????????x?=?1; ????} }這是為什么?我用一個可能對java來說更直觀的表述public?class?demo{ ????int[]?array; ????array?=?new?int[10];??//同樣在類中這么寫是不可以的 ????//?int[]?array?=?new?int[10]?這樣就可以 }
查看完整描述

9 回答

已采納
?
_仰望星空

TA貢獻2條經驗 獲得超0個贊

成員變量在類的范圍內,存在于堆內存中,會有默認的初始值,在聲明的同時已經給變量賦值了。再次”賦值“實際是使用了語句,而類體里面只能出現變量和方法,不能出現語句。

查看完整回答
反對 回復 2016-09-30
?
丸子君3899929

TA貢獻2條經驗 獲得超4個贊

因為在類中只能有定義,不能單獨出現語句,像先聲明在賦值,第二個就是賦值語句,這是規定!沒有為什么一說,如果你一定要先聲明在賦值你可以{x=10};括起來

查看完整回答
2 反對 回復 2016-10-01
  • 未卜先知
    未卜先知
    應該是這樣,不過只能采納一個。。。
?
杜發明

TA貢獻202條經驗 獲得超301個贊

說一個更加直觀的,記住定義全局變量不論是0,""還是null,要先賦值。

查看完整回答
1 反對 回復 2016-10-01
?
qq_小白楊_4

TA貢獻1條經驗 獲得超0個贊

public?class?demo{

????int?x?;

????x?=?1;?

}

上邊是2個操作,第一個,聲明一個類的成員變量,第二個,對成員變量賦值,而成員變量屬于對象,對它的賦值只能由對象來操作,在類中單獨對其賦值,當然要報錯了。成員變量可以不用賦初值,在new對象的時候,系統會默認分配一個初值,基本數據類型賦為0,引用類型的成員變量賦值為null

public?class?demo{

????int?x =?1; ? //這條語句是聲明成員變量的同時并為其指定初始值,

}

public?class?demo{

????public?static?void?main(String[]?args)?{

????????int?x;

????????x?=?1;

????}

}

這段代碼在main方法中聲明了一個局部變量,并且在main方法中為變量賦值,所以沒有錯誤(這個變量的作用域只能是main方法,出了main方法再賦值就會報錯了)

上邊需要搞清楚的是,成員變量可以不賦初值,創建對象后直接使用,單局部變量必須要聲明并賦值后,才能使用

查看完整回答
反對 回復 2017-09-22
?
慕粉13546656149

TA貢獻5條經驗 獲得超3個贊

可以先聲明,再在構造函數里面賦值。
查看完整回答
反對 回復 2016-09-30
?
LiUyInGkAi3391597

TA貢獻7條經驗 獲得超1個贊

其實你沒弄清楚成員變量,也就是實例變量和局部變量的區別。這個原因就是這兩者的區別。實例變量是類的屬性,而局部變量是方法的屬性。作用域不同。

查看完整回答
反對 回復 2016-09-30
?
一條小咸魚

TA貢獻457條經驗 獲得超255個贊

類里面只能放成員變量和方法吧,賦值是個操作了。

查看完整回答
反對 回復 2016-09-30
?
Caballarii

TA貢獻1123條經驗 獲得超629個贊

方法外部不能執行表達式,所以單獨的x=1是非法的

查看完整回答
反對 回復 2016-09-30
?
安浪創想

TA貢獻81條經驗 獲得超23個贊

可以的嘛,再賦值的時候要指名在本類。

public?class?demo1{
????int?a;
????this.a?=10;
}

當然,你使用的時候,還是去學習一下get和set這個東東吧,哈哈

查看完整回答
反對 回復 2016-10-01
  • 乙一
    乙一
    ????????啥????
  • 9 回答
  • 2 關注
  • 8495 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號