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

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

想不明白為什么這樣不行?

http://img1.sycdn.imooc.com//5e97cc7100013e3805660480.jpg? ?

  1. 第九行的sum 我只理解為一個方法,

  2. 11行的 return 我只理解為是一個返回值,并沒有求和,return score1+core2 ,它還是會返回這個score1+score2

  3. 所有我個人理解 他是不是應該定義一個總分 ? 如 int what = score1 +score2 ; 然后再返回 return what ;才合理呢?

  4. 調用方法我直接就可以寫 HelloWorld.sum();

  5. 輸出總成績 what?

    ?我這樣的理解難道有問題 ,課堂里的答案我理解不了

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

正在回答

11 回答

public class HelloWorld {

? ? static int score1 = 86;

? ? static? ?int score2 = 92;?



public? static? ?int sum() {?

? ? ? HelloWorld a=new HelloWorld();

? ? ?int what=score1+score2;

? ? ? return what;

}

public static void main(String[] args) {

int allScore = HelloWorld.sum();

System.out.println("總分:" + allScore);

}

}


這樣就行了,你最后的what沒被傳遞

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

?main方法里面,你HelloWorld.sum() 得到的是一個值,你需要將這個值賦給一個變量,再將它打印出來

19行可以改寫成

		int?what?=sum();????????		
		System.out.println("總分:"?+?what);

這個what和你靜態方法(sum)里面的what是不一樣的,你不能在main 里面直接調用 靜態方法方法(sum)里面的what,也就是說你在main里面直接打印what是會報錯的。

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

慕標3061610

123
2022-06-01 回復 有任何疑惑可以回復我~
#2

慕標3061610

2234
2022-06-01 回復 有任何疑惑可以回復我~
#3

慕標3061610

345
2022-06-01 回復 有任何疑惑可以回復我~
#4

慕標3061610

456
2022-06-01 回復 有任何疑惑可以回復我~
#5

慕標3061610

567
2022-06-01 回復 有任何疑惑可以回復我~
#6

慕標3061610

678
2022-06-01 回復 有任何疑惑可以回復我~
#7

慕標3061610

789
2022-06-01 回復 有任何疑惑可以回復我~
#8

慕標3061610

890
2022-06-01 回復 有任何疑惑可以回復我~
#9

慕標3061610

890-
2022-06-01 回復 有任何疑惑可以回復我~
#10

慕標3061610

1111
2022-06-01 回復 有任何疑惑可以回復我~
#11

慕標3061610

2222
2022-06-01 回復 有任何疑惑可以回復我~
查看8條回復

我剛學到這里,我的理解是下面 main方法里少了聲明一個int what來接收數據,

方法里面return后面的數可以是 1,2,4,5,what,score1,score2都可以,跟main里面沒有關系。main方法里需要用整型來接收HelloWorld.sum()方法的返回值。

所以我覺得應該是上圖里少了定義一個整型變量。


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

what 是局部變量,去不了別的方法里面。你把int what = 0寫在在sum()方法。然后在sum()方法里面給what再賦值。

因為score2是非靜態變量,所以你得在sum()方法中創建一個對象去調用它:HelloWorld helloWorld = new?HelloWorld();

然后你再重新賦值:what =?score1?。elloWorld.score2;

????????????????????????? ? ? return what;

最后在main方法中創建一個變量去接收總分:int allScore = sum();

然后控制臺輸出:System.out.println("總分:" + allScore);

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

what 是局部變量,去不了別的方法里面。所以最后一行代碼哪個what會報錯;另外19行代碼,你只調用了return的值,但是沒有顯示的功能。

0 回復 有任何疑惑可以回復我~
  1. sun()確實只是一個方法;

  2. return只能返回一個值,return score1+core2 會先計算在返回

  3. 我覺得不太合理,注意sum方法,當你調用這個方法時你是不是已經知道這是求和的方法,你知道調用這個方法便會返回一個和,所以在這聲明一個見名知意的變量名接收這個方法的返回值會不會更合理呢?換種說法,當我調用sun方法時,我知道這個方法是求和,它會返回一個值,當我需要多次使用它時,我會聲明一個變量取個合適的變量名用來接收這個值,我并不需要sum方法里有個變量被賦予這個值,因為很多余,例如你寫的what,它只是一個局部變量,我在別的方法里沒法調用,這個方法的作用就是求和然后把結果這個值傳遞,所以直接return score1+score2即可,你先做的int what = score1 +score2 ;其實也就是將結果這個值賦給了what然后return what,最終結果也是傳遞這個值,所以沒必要聲明這個what變量在棧區中,很多余很浪費。

  4. HelloWorld.sum()現在是一個值,要么直接輸出,要么聲明變量賦值使用,單寫HelloWorld.sum()沒啥意義。

  5. 輸出總成績 what ,抱歉你沒有這個變量,它是個局部變量,在sum方法結束時它就over了,所以。。。

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

what只是一個局部變量,只能在sum()函數中使用,你在main方法中是無法調用這個變量的

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

是不是因為main方法中無法調用sum方法里定義的局部變量what

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

"what"在mine函數中用不了


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

what 是一個局部變量,只能在定義它的方法內使用。而且sum()方法定義為int,那么他是有返回值的,你需要定義一個變量去接受他比如int sum1214=HelloWorld.sum();,最后輸出sum1214或不要int sum1214=HelloWorld.sum()這一步直接輸出sum()。

0 回復 有任何疑惑可以回復我~
首頁上一頁12下一頁尾頁

舉報

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

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

進入課程

想不明白為什么這樣不行?

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

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

幫助反饋 APP下載

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

公眾號

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