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

為了賬號安全,請及時綁定郵箱和手機立即綁定

全局變量在main方法中出現不能將一個非靜態變量賦值給靜態變量

public?class?HelloWorld?{

?static?int?var=1;//去掉static就不對了,為什么
?void?call()

?{?int?cal;

?System.out.println("var:"+var);}

?

?void?sendMessage()

?{int?cal;

??System.out.println("var"+var);}

?

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

????//int?var=5;

????HelloWorld?phone=new?HelloWorld();

??phone.call();

??System.out.println(var);//為什么var一定要是static類型,如果不是static就會報錯
???????}

????????}

正在回答

3 回答

”不能將非靜態變量賦值給靜態變量“,這個一個標準的蠢貨級別定義,新手很容易因為這種被蠢貨總結的”經驗“失去了刨根問底的動力。

原理:

static為類加載的時候執行,發生在創建對象之前,此時非static可以理解為還未"出生"。

而非static需要在創建對象的時候才可以使用。

所以如果static的方法和屬性都不能調用非static,而反之可以。

0 回復 有任何疑惑可以回復我~

thanks a lot

0 回復 有任何疑惑可以回復我~

main函數是static

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

全局變量在main方法中出現不能將一個非靜態變量賦值給靜態變量

我要回答 關注問題
微信客服

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

幫助反饋 APP下載

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

公眾號

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