首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 成員方法完整指南:定義、多載、存取控制、靜態與建構子

     編輯:Java 相關知識

Java 成員方法核心概念

成員方法是類別行為的封裝,相當於 C/C++ 的函式。掌握方法定義、多載、存取層級、靜態特性與建構子/解構子機制,是撰寫良好物件導向程式的基石。

1. 方法定義語法

修飾詞 回傳型別 方法名稱(參數列表) {
    // 方法本體
    return 回傳值; // void 型別可省略
}
  • 回傳型別:必須宣告,無回傳值用 void;布林型常用於表示成功/失敗。
  • 參數列表:以逗號分隔的變數宣告,提供方法所需資訊。

範例:矩形面積計算與繪製

public class Rectangle {
    private int width, height, area;

    // 建構子
    public Rectangle(int w, int h) {
        width = w; height = h;
        area = getArea(w, h);
    }

    // 私有輔助方法
    private int getArea(int w, int h) {
        return w * h;
    }

    // 公開行為
    public void drawRect() {
        for (int i = width; i > 0; i--) System.out.print("#");
        System.out.println();
        for (int i = height - 2; i > 0; i--) {
            System.out.print("#");
            for (int j = width - 2; j > 0; j--) System.out.print(" ");
            System.out.println("#");
        }
        for (int i = width; i > 0; i--) System.out.print("#");
        System.out.println();
    }
}

2. 存取修飾詞與封裝

修飾詞同類同套件子類別其他
private✓✗✗✗
package-private(預設)✓✓✗✗
protected✓✓✓✗
public✓✓✓✓

最佳實務:欄位預設 private,提供 public getter/setter 控制存取(如 setWidth(int w))。

3. 方法多載

同一類別中定義多個同名但參數列表不同(型別、數量、順序)的方法:

void draw(int x, int y);
void draw(float x, float y);
void draw(int x, int y, Color c);

編譯器依呼叫時的實際引數型別決定呼叫哪個版本(靜態繫結)。

4. 靜態成員

  • 靜態欄位:屬於類別而非實例,所有實例共享同一份(如 static int version = 1;)。
  • 靜態方法:無 this 參考,無法直接存取非靜態成員。透過 類別名.方法() 呼叫(如 Math.max()、System.out.println())。
  • 優勢:無需建立實例即可使用,適合工具方法、常數、單例模式。

5. 建構子與 finalize

建構子

  • 名稱與類別相同,無回傳型別(連 void 也無)。
  • 通常 public,支援多載。
  • 建立物件時自動呼叫,完成初始化。
  • 若未定義,編譯器提供無參數預設建構子。
public Rectangle(int w, int h) { width = w; height = h; }

finalize() 方法(已淘汰)

Java 9 起標記為 @Deprecated,不建議使用。GC 不保證執行時機,資源釋放請用 try-with-resources、AutoCloseable 或 Cleaner API。

6. 實務建議總結

  1. 方法職責單一、命名語意化(動詞開頭)。
  2. 參數驗證放在方法開頭,失敗快速失敗。
  3. 善用多載簡化 API,但避免參數型別模稜兩可。
  4. 靜態方法用於無狀態工具,避免濫用造成耦合。
  5. 建構子確保物件建立即進入合法狀態。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved