在學方法的時候,我們會學到如何在主方法中調用方法。在調用方法的時候會涉及到參數傳遞和返回值的問題,今天,我們就談談方法中的參數傳遞和返回值。
參數傳遞
簡單來講,方法的參數傳遞,無非就是調用方法的時候,傳遞值或者引用,用形式參數類接收值或者引用,進而在方法中使用形式參數。
具體點講,參數傳遞的時候,實參類型不同的話,就需要用不同類型的形參來進行接收。
注意:實參可以和形參不同,兩者互不影響。
下面就分類型來談談參數傳遞。
基本數據類型
基本數據類型的變量進行參數傳遞的時候,需要用基本數據類型的形式參數進行接收。
特點:基本數據類型在傳遞參數的時候,傳遞的是變量(實參)的值,在方法中用形式參數進行接收,且對形式參數進行一系列操作如賦值,並不會改變實參的值。所以,這樣的參數傳遞也稱爲值傳遞。
引用類型
引用類型的量在進行參數傳遞的時候,需要用引用類型的形式參數進行接收。
數組以及面向對象中的類等都是引用類型。
特點:引用類型在參數傳遞的視乎,傳遞的是引用(即地址值),在方法中用形式參數進行接收,且對形式參數進行一系列操作的時候,會改變引用指向的內存空間的值。所以,這樣的參數傳遞也稱爲引用(地址)傳遞。
在學習面向對象的時候,我們遇到了類、抽象類、接口等概念。若參數傳遞時,需要的是這些類型,那麼我們如何進行參數傳遞呢?
類
若方法中參數傳遞需要的是一個類 類型,那麼我們需要傳遞的是該類的一個對象。類是一個抽象的概念。對象是類的具體、實例化,我們可以對對象進行操作,但是我們無法對類進行操作。
抽象類
若方法中參數傳遞需要的是一個抽象類 類型,那麼我們需要傳遞的是該抽象類的一個子類對象。(抽象類不能實例化,可以採用多態形式)
接口
若方法中參數傳遞需要的是一個接口 類型,那麼我們需要傳遞的是該接口的一個子類對象。(接口不能實例化,可以採用多態形式)
返回值
根據方法的返回值類型來判斷我們是否需要返回一個值。若方法返回值類型爲void,那麼該方法就不需要返回值。除此之外,就需要根據方法返回值類型來返回對應的值。返回值有點類似參數傳遞。
根據返回值類型的不同來具體談談返回值。
基本數據類型
若方法的返回值類型爲基本數據類型,那麼就返回該數據類型對應的值。
引用數據類型
若方法的返回值類型爲引用數據類型,那麼就返回該引用類型的對應的值(如數組)或者對象(如類)。
數組
若返回值類型爲數組,那麼直接返回數組名即可。
類
若返回值類型爲類 類型,那麼需要返回的是該類的一個對象。
抽象類
若返回值類型爲抽象類 類型,那麼需要返回的是該抽象類的一個子類對象。(抽象類不能實例化,可以採用多態形式)
接口
若返回值類型爲接口 類型,那麼需要返回的值該接口的一個子類對象。(接口不能實例化,可以採用多態形式)
針對方法的參數傳遞和返回值問題,可以總結如下:
一:若方法的形參或者返回值,要一個基本數據類型,那麼就傳入或者返回該基本數據類型的值。
二:若方法的形參或者返回值,要一個引用數據類型,那麼就傳入或者返回該引用。
- 若方法的形參或者返回值,要一個數組類型,那麼就傳入或者返回數組名。
- 若方法的形參或者返回值,要一個類 類型,那麼就傳入或者返回該類的一個對象。
- 若方法的形參或者返回值,要一個抽象類 類型,那麼就傳入或者返回該抽象類的一個子類對象。(抽象類不能實例化,可以採用多態形式)
- 若方法的形參或者返回值,要一個接口 類型,那麼就傳入或者返回該接口的一個子類對象。(接口不能實例化,可以採用多態形式)