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

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

Java入門第二季 1-9 程序問題

在這個程序中,倒數第四行,我直接的訪問靜態方法,沒有通過類名訪問,也沒有通過對象名訪問,可還是得到了一個正確的結果,這是為什么呢?是碰巧嗎?有什么弊端嗎?

public?class?HelloWorld?{
????
????//?定義靜態變量score1
????static?int?score1?=?86;
????//?定義靜態變量score2
	static?int?score2?=?92;?

????//?定義靜態方法sum,計算成績總分,并返回總分
	public?static????int?sum()?{?
??????int?sum=score1+score2;
??????return?sum;
??????
	}

	public?static?void?main(String[]?args)?{
????????
????????//?調用靜態方法sum并接收返回值
		int?allScore?=?sum();????//就是這里!?。。?????????
		System.out.println("總分:"?+?allScore);
	}
}


正在回答

4 回答

靜態是可以訪問靜態呀

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

Java_Hello_World 提問者

謝謝。 那個時候剛看完“Java中的static使用之靜態變量”,課程中寫著:可通過“類名.靜態變量”或者“對象名.靜態變量”訪問靜態變量。之后看1-9“Java中的static使用之靜態方法”,就沒明白。 經過這兩天的學習,總算是明白了,同一個類中,靜態方法可以直接訪問靜態變量,也可以直接調用靜態方法。
2016-03-12 回復 有任何疑惑可以回復我~

我用這個直接告訴我錯誤。。。

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

夜過初晨

系統扯淡了吧好像/(ㄒoㄒ)/~~ 我現在改了又可以了
2016-07-19 回復 有任何疑惑可以回復我~

我認為這是個必然的結果,也沒有什么弊端。因為不管是靜態變量還是靜態方法都是屬于類的一部分而不是對象的一部分,就是說屬于該類所有對象所共有的。且主函數也是static的,靜態的方法可以調用靜態的方法,不可調用非靜態方法。因此代碼能運行不出錯。但為了代碼的方便易懂、規范性,一般都是用類名.靜態方法的調用方式,即HelloWorld.sum()。以上是我的個人見解,如有更好答案請分享下,謝謝!

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

Java_Hello_World 提問者

謝謝。 那個時候剛看完“Java中的static使用之靜態變量”,課程中寫著:可通過“類名.靜態變量”或者“對象名.靜態變量”訪問靜態變量。之后看1-9“Java中的static使用之靜態方法”,就沒明白。 經過這兩天的學習,總算是明白了,同一個類中,靜態方法可以直接訪問靜態變量,也可以直接調用靜態方法。
2016-03-12 回復 有任何疑惑可以回復我~

因為java代碼的執行順序是從上到下執行的 又因為sum()方法是靜態方法已經在靜態池中存入allScore 所以你在這個時候調用allScore是有值得

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

Java_Hello_World 提問者

謝謝。 那個時候剛看完“Java中的static使用之靜態變量”,課程中寫著:可通過“類名.靜態變量”或者“對象名.靜態變量”訪問靜態變量。之后看1-9“Java中的static使用之靜態方法”,就沒明白。 經過這兩天的學習,總算是明白了,同一個類中,靜態方法可以直接訪問靜態變量,也可以直接調用靜態方法。
2016-03-12 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
Java入門第二季 升級版
  • 參與學習       531142    人
  • 解答問題       6326    個

課程升級!以終為始告別枯燥,在開發和重構中體會Java面向對象編程的奧妙

進入課程

Java入門第二季 1-9 程序問題

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

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

幫助反饋 APP下載

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

公眾號

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