java 方法的傳回值(翻譯自Java Tutorials)

來源:互聯網
上載者:User

 原文出自 http://www.cnblogs.com/ggjucheng/archive/2012/11/29/2795468.html

代碼調用方法時,它會在以下情況返回:

完成方法所有的語句

出現return語句

拋出一個異常

以最先出現的為準。

在方法聲明中,會聲明方法的傳回型別。方法體內,可以使用return語句傳回值。

任何聲明了void的方法,不需要傳回值,它非必須包含一個return語句,但是它也可以這麼做。這個情況下,return語句可以用來跳出控制流程的代碼塊,並退出方法,簡單使用如下:

return;

在一個聲明void的方法,返回一個值,編譯器會報錯。

不是聲明為void的方法,必須包含一個return語句,緊跟對應的傳回值,就像這樣:

return returnValue;

傳回值的資料類型必須匹配方法聲明的返回資料類型;不能在一個聲明傳回型別是整數的方法,返回一個boolean類型的值。

下面討論的Rectangle的getArea()方法返回一個整數:

    // a method for computing the area of the rectangle    public int getArea() {        return width * height;    }

這個方法返回運算式width*height計算出來的整數。

getArea方法返回原生類型。方法也可以放回參考型別。例如,在程式中操縱Bicycleobjects,我們也許會這麼做:

public Bicycle seeWhosFastest(Bicycle myBike, Bicycle yourBike,                              Environment env) {    Bicycle fastest;    // code to calculate which bike is     // faster, given each bike's gear     // and cadence and given the     // environment (terrain and wind)    return fastest;}

 

返回類或介面

如果本節混淆,跳過它,等到你已經完成了介面和繼承的學習再回頭看這個。

當一個方法是用類名作為傳回型別,例如whosFastest的做法,返回的對象的類的類型,必須是聲明的傳回型別的子類,或者就是聲明的傳回型別。假設有這麼一個類階層,ImaginaryNumber是Number的子類,Number是Object的子類,如所示:

ImaginaryNumber類階層

假如有這麼一個方法返回Number:

public Number returnANumber() {    ...}

 

returnANumber方法可以返回ImaginaryNumber,但是不能返回一個Object。ImaginaryNumber是一個Number類,因為它是Number的子類。儘管如此,一個Object類未必是Number—它可以是一個String或者是其他類型。

public ImaginaryNumber returnANumber() {    ...}

這種技術稱為協變傳回型別,傳回型別允許是多個子類,但是是同一分支。

注意:你也可以使用介面作為傳回型別,這個情況下,返回的對象必須實現了這個介面。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.