在 Java 中,成員函數(方法)相當於 C/C++ 的函數,是類行為的核心封裝。定義成員函數的標準語法為:
返回類型 方法名(參數列表) {
// 方法體
return 值; // void 類型除外
}
每個方法必須聲明返回類型(含 void),參數列表以逗號分隔多個參數。返回類型告訴編譯器方法將產生何種數據,若需標示執行成敗,常採用 boolean 返回類型。
以下範例展示 Rectangle 類如何透過成員函數計算面積並繪製圖形:
public class DrawRect {
public static void main(String[] args) {
class Rectangle {
int width, height, area;
public Rectangle(int w, int h) {
width = w;
height = h;
area = getArea(w, h);
}
protected 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();
}
}
int w = Integer.parseInt(args[0]);
int h = Integer.parseInt(args[1]);
Rectangle myRect = new Rectangle(w, h);
myRect.drawRect();
}
}
注意:System.out.print("") 用於刷新緩衝區,確保輸出即時顯示;若發現無輸出,請檢查是否以空字串結束輸出流。
封裝私有變量的常見模式是提供公共的 setter/getter:
public void setWidth(int w) { width = w; }
同名方法可透過不同參數列表實現多態:
void getArea(int w, int h);
void getArea(float w, float h);
編譯器根據實際傳入參數類型自動選擇對應版本——整數調用第一個,浮點數調用第二個。
static 修飾的變量/方法屬於類而非實例,所有實例共享同一份拷貝:
static int version = 1;
優勢在於無需建立對象即可透過 類名.靜態成員 直接訪問,例如 System.out.println() 中的 out 即為 System 類的靜態成員。
public,用於初始化實例變量。public Rectangle(int w, int h) { width=w; height=h; area=getArea(w,h); }finalize()(但不推薦,見後文最佳實踐)。