Java基礎知識——類的深層結構

coffee801發表於2017-05-24

在Java中,可以在同一個類中定義兩個或多個共享相同名稱的方法,只要它們的引數宣告不同就可以。當出現這種情況時,這些方法就被稱為過載(overloaded),並且這一過程被稱為方法過載(method overloading).方法過載也是Java支援多型性的方式之一。

當呼叫過載方法時,Java所使用引數的型別和/或數量決定了實際呼叫是哪個版本的方法。因此,過載方法在引數的型別和/或數量方法必須有所區別。雖然過載方法可以返回不同的型別,但是單靠返回型別不足以區分方法的多個版本。當Java遇到對過載方法的呼叫時,簡單地執行方法形參與呼叫中所使用的實參相匹配的版本。

下面是一個演示方法過載的簡單例子:

Java基礎知識—類的深層結構

Java基礎知識—類的深層結構

如果你想學習Java可以來這個群,首先是二二零,中間是一四二,最後是九零六,裡面有大量的學習資料可以下載。

可以看出,test()方法過載了4次。第1個版本沒有采用引數,第2個版本採用一個整型引數,第3個版本採用兩個整型引數,第4個版本採用一個double引數。雖然第4個版本的test()方法還返回一個值,但是這與過載沒有什麼因果關係,因為返回型別在過載版本的判斷中不起作用。

Java基礎知識—類的深層結構

Java基礎知識—類的深層結構

過載建構函式:

Java基礎知識—類的深層結構

Java基礎知識—類的深層結構

Java基礎知識—類的深層結構

Java基礎知識—類的深層結構

Java基礎知識—類的深層結構

Java基礎知識—類的深層結構

引數傳入的深入分析:

Java基礎知識—類的深層結構

Java基礎知識—類的深層結構

Java基礎知識—類的深層結構

Java基礎知識—類的深層結構

Java基礎知識—類的深層結構

請記住:

當將物件引用傳遞給方法時,引用本身是使用值呼叫傳遞的。但是,由於傳遞的值引用一個物件,因此值的副本仍然引用相應實參指向的同一個物件。如果你想學習Java可以來這個群,首先是二二零,中間是一四二,最後是九零六,裡面有大量的學習資料可以下載。

返回物件:

方法可以返回任意型別的資料,包括自己建立的類型別。例如下面的程式中,方法incrByTen()返回一個物件,在該物件中,a的值比呼叫物件中的a的值大10.

Java基礎知識—類的深層結構

Java基礎知識—類的深層結構

Java基礎知識—類的深層結構

遞迴:

Java基礎知識—類的深層結構

Java基礎知識—類的深層結構

Java基礎知識—類的深層結構

Java基礎知識—類的深層結構

訪問控制:

正如前天幾天知識所說的,封裝將運算元據的程式碼和資料連結起來。但是,封裝提供了另外一個重要的特性:訪問控制。通過封裝,可以控制程式的哪些部分可以訪問類的成員。通過控制訪問,可以防止誤用。例如,僅僅通過定義一套良好的資料訪問方法,就可以防止對資料的誤用。因此,如果類的實現正確的話,類就建立了一個可以使用的“黑匣子”,但是其內部工作不允許修改。

Java基礎知識—類的深層結構

類中的 static

Java基礎知識—類的深層結構

類中的 final

Java基礎知識—類的深層結構

巢狀類 與 內部類:

Java基礎知識—類的深層結構

如果你想學習Java可以來這個群,首先是二二零,中間是一四二,最後是九零六,裡面有大量的學習資料可以下載。

相關文章