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

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

沒有返回值

既然構造方法沒有返回值,那么定義方法時為什么不加 void?還是這里所說的返回值和 return不同?

正在回答

6 回答

這就是規定,如果你現在自己做一個新語言的編譯器,也可以規定構造函數必須加上void,或者一個特殊的返回值。
? 那么為什么構造函數沒有返回值呢,主要是為了區分構造函數和其它方法。其實,你可以嘗試在你的構造函數前加上void,你會發現編譯可以通過,但是編譯器把它認為是方法,而不是構造函數,當然也無法在new的時候自動調用。

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

鳥山明 提問者

加上void后出錯
2016-04-14 回復 有任何疑惑可以回復我~
#2

鳥山明 提問者

加上void后出錯,顯示方法未定義,為什么會這樣?
2016-04-15 回復 有任何疑惑可以回復我~
public?class?Telephone?{
?float?cpu;
?
??/**
???*?@param?args
???*/
??public?static?void?main(String[]?args)?{
????Telephone?phone=new?Telephone();
????Telephone?phone2=new?Telephone(6.0f);
??}
????public?void?Telephone(){
?????System.out.println("無參數");
????}
????public?void?Telephone(float?newCpu){
?????if(newCpu>4){
??????System.out.println("輸入有誤");
??????cpu=2.0f;
?????}else{
??????cpu=newCpu;
?????}
?????System.out.println("有參數");
????}
?}


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

simon_qin

構造方法無返回類型,void都不能有 構造:public test(){},public test(int a){} 1. 構造方法的特征 • 它具有與類相同的名稱; • 它不含返回值; • 它不能在方法中用 return 語句返回一個值; • 當自定義了構造方法后,編譯器將不再自動創建不帶參數的構造方法 。 • 在構造方法里不含返回值的概念是不同于 “void” 的,在定義構造方法時加了 “void” ,結果這個方法就不再被自動調用了。
2016-04-15 回復 有任何疑惑可以回復我~
#2

simon_qin

構造方法和創建方法是有所不同的,你留意下吧
2016-04-15 回復 有任何疑惑可以回復我~
#3

鳥山明 提問者 回復 simon_qin

好的,很感謝
2016-04-15 回復 有任何疑惑可以回復我~

同學有興趣的話可以百度一下構造方法和實例化對象之間的關系,這樣可以更容易的區分一般的創建方法和構造方法的不同之處

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

public void xxx(){方法代碼;(無return)},

public int xxx(){方法代碼;return xxx(int類型變量);}

這里的 void 和 int 都是用來區分這個方法有沒有返回值

public void int xxx(){方法代碼;}這種寫法是錯誤的,編譯器是不能識別的


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

鳥山明 提問者

對,那么這里既然沒有return,為什么卻沒有void呢?
2016-04-15 回復 有任何疑惑可以回復我~
#2

simon_qin 回復 鳥山明 提問者

能發一下你寫的代碼過來看看嗎?不太懂你想要問的知識點,或許看了代碼能給你分析下
2016-04-15 回復 有任何疑惑可以回復我~
#3

simon_qin 回復 鳥山明 提問者

構造方法無返回類型,void都不能有 構造:public test(){},public test(int a){} 1. 構造方法的特征 • 它具有與類相同的名稱; • 它不含返回值; • 它不能在方法中用 return 語句返回一個值; • 當自定義了構造方法后,編譯器將不再自動創建不帶參數的構造方法 。 • 在構造方法里不含返回值的概念是不同于 “void” 的,在定義構造方法時加了 “void” ,結果這個方法就不再被自動調用了。
2016-04-15 回復 有任何疑惑可以回復我~
#4

鳥山明 提問者 回復 simon_qin

好的,代碼如下,多謝
2016-04-15 回復 有任何疑惑可以回復我~
查看1條回復

void是定義沒有返回值的方法;

如果你想要這個方法有返回值的話就不能用void定義,要用與返回值相同的類型來定義這個方法

比如你想返回一個int類型的值的方法就用int來定義這個方法

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

這就是規定,如果你現在自己做一個新語言的編譯器,也可以規定構造函數必須加上void,或者一個特殊的返回值。
? 那么為什么構造函數沒有返回值呢,主要是為了區分構造函數和其它方法。其實,你可以嘗試在你的構造函數前加上void,你會發現編譯可以通過,但是編譯器把它認為是方法,而不是構造函數,當然也無法在new的時候自動調用。

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

舉報

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

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

進入課程

沒有返回值

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

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

幫助反饋 APP下載

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

公眾號

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