閱讀873 返回首頁    go 阿裏雲 go 技術社區[雲棲]


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

在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可以來這個群,首先是二二零,中間是一四二,最後是九零六,裏麵有大量的學習資料可以下載。

最後更新:2017-05-24 08:54:34

  上一篇:go  無人駕駛的分級以及產品化後會帶來的改善
  下一篇:go  利用TFRecord和HDFS準備TensorFlow訓練數據