langShiftlangShift

模組 05: 函數和方法

學習 Java 方法、函數重載、遞歸和函數式編程概念,與 JavaScript 函數進行對比。

模組 05: 函數和方法

在本模組中,我們將探索 Java 方法以及它們與 JavaScript 函數的對比。雖然 JavaScript 具有靈活的函數聲明和表達式,但 Java 提供了具有強類型化和重載能力的結構化方法定義。

學習目標

完成本模組後,您將能夠:

  • 理解 Java 方法語法和結構
  • 比較 Java 方法與 JavaScript 函數
  • 在 Java 中實現方法重載
  • 有效使用遞歸
  • 應用函數式編程概念
  • 理解方法作用域和可見性

方法基礎

1. 方法聲明和定義

Java 方法在類中定義,具有嚴格的類型化,與 JavaScript 的靈活函數聲明不同。

正在載入編輯器...

2. 方法重載

Java 支持方法重載(多個同名但參數不同的方法),這是 JavaScript 原生不具備的功能。

正在載入編輯器...

3. 遞歸方法

遞歸是函數調用自身的技術,在兩種語言中都有重要應用。

正在載入編輯器...

4. 函數式編程概念

Java 8+ 引入了函數式編程特性,與 JavaScript 的函數式特性進行對比。

正在載入編輯器...

方法作用域和可見性

1. 訪問修飾符

Java 提供了詳細的訪問控制,而 JavaScript 的訪問控制相對簡單。

正在載入編輯器...

2. 方法重寫和隱藏

Java 中的方法重寫與 JavaScript 的原型鏈方法覆蓋進行對比。

正在載入編輯器...

練習題

練習 1: 方法重載實現

創建一個 Calculator 類,實現以下重載方法:

  • add(int a, int b) - 兩個整數相加
  • add(double a, double b) - 兩個浮點數相加
  • add(int... numbers) - 多個整數相加
  • add(String a, String b) - 字符串連接

練習 2: 遞歸實現

實現以下遞歸方法:

  • 計算數組中所有元素的和
  • 檢查字符串是否為回文
  • 計算最大公約數(GCD)

練習 3: 函數式編程

使用 Java 8+ 的 Stream API 實現:

  • 過濾偶數並計算平方
  • 計算字符串列表中長度大於 5 的字符串數量
  • 將數字列表轉換為字符串並連接

總結

在本模組中,我們深入學習了 Java 方法的核心概念:

關鍵要點

  1. 方法結構: Java 方法必須在類中定義,具有嚴格的類型化
  2. 方法重載: Java 支持同名不同參數的方法重載
  3. 遞歸: 遞歸是解決複雜問題的強大工具
  4. 函數式編程: Java 8+ 提供了豐富的函數式編程特性
  5. 訪問控制: Java 提供了詳細的訪問修飾符系統
  6. 方法重寫: 支持面向對象的多態性

與 JavaScript 的對比

  • 類型化: Java 方法有嚴格的類型,JavaScript 函數類型靈活
  • 重載: Java 原生支持方法重載,JavaScript 需要手動模擬
  • 作用域: Java 有詳細的訪問控制,JavaScript 相對簡單
  • 函數式: 兩種語言都支持函數式編程,但實現方式不同

下一步學習

在接下來的模組中,我們將學習:

  • 類和對象的深入概念
  • 繼承和多態
  • 接口和抽象類
  • 異常處理機制

這些概念將幫助您更好地理解 Java 的面向對象編程範式。