天天看點

JAVA面向對象之方法

一、方法的重載

java允許在同一個類中定義幾個同名的方法,隻要這些方法具有不同的參數清單,即方法的參數類型不同,或方法參數個數不同。這種做法稱為方法的重載。方法的重載包括以下幾種:

1、成員方法的重載

重載方法的參數表必須不同,參數的不同主要是參數的類型、順序、個數不同。

在上面的例子中定義了同名的方法sum,但參數清單不同,為了區分實際調用的方法,在sum方法中輸出了方法的原型,運作後可得到如下結果:

sum(int a, int b)

sum(double a, double b)

由此我們可以看不到,雖然方法的方法名相同,但是java會根據實際情況調用最适合的方法。

2、構造方法的重載

在上一篇部落格中也提到了一些構造方法重載的知識,定義多個構造方法其實就是構造方法的重載。當一個類中存在多個重載的構造方法時,他們之間可以互相調用,這種調用通過關鍵字this實作,同時this調用語句必須是構造方法中的第一個可執行于語句。

3、注意

a、參數順序

因參數的順序不同而建構的重載的方法,一定要建立在類型不同的基礎上,如果本身類型和個數相同,則不存不在順序問題。

b、傳回值

重載方法的傳回類型可以相同,也可以不同,但如果僅是傳回類型不同,而方法名和形參清單都相同,則是非法的。

二、方法間的參數傳遞

方法聲明時的參數稱為形式參數(形參)。直到方法被調用時,才被變量或其他資料所替代,而這些具體的變量或資料被稱為實際參數。要調用一個方法必須提供實際參數,并且參數類型與順序必須要與形式參數相對應。

1、基本資料類型的參數傳遞

運作後輸出結果為:10

此種傳遞方式形式參數就相當于方法中定義的局部變量,方法調用結束後就被釋放了,不會影響到主程式中同名的局部變量,即在方法中對形參進行修改後不會影響到實際傳遞的實參。

2、引用資料類型的參數傳遞

運作後輸出結果為:11

對象的引用變量并不是對象本身,它們隻是對象的引用(名稱)。就好像一個人可以有多個名字,同理,一個對象也可以有多個引用名稱。因為實際的對象是同一個,是以在方法中對其進行修改後,會影響其它地方的引用。一定要注意區分這兩種傳遞的差別。