| 概念 | 說明 | 程式對應 |
|---|---|---|
| 物件 | 現實實體的抽象 | new Class() 產生的實例 |
| 屬性 | 靜態特徵(名詞) | 成員變數 |
| 行為 | 動態能力(動詞) | 成員方法 |
class Dog {
// 存取修飾符:private(僅本類) / default(同包) / public(公開)
private String name = "大黃";
private String owner;
// Getter/Setter 封裝
public String getName() { return name; }
public void setName(String name) {
if (!name.equals(owner)) this.name = name; // 業務規則
}
// 行為方法
public void bark() { System.out.println(name + ":旺旺旺!"); }
}
public class Main {
public static void main(String[] args) {
Dog d = new Dog(); // 無參建構子
d.setName("小黃");
System.out.println("名字:" + d.getName());
d.bark();
}
}
class Calc {
int add(int a, int b) { return a + b; }
double add(double a, double b) { return a + b; }
int add(int a, int b, int c) { return a + b + c; }
// 編譯器依實參型別自動選擇
}
class User {
String name; int age;
User() { this("匿名", 0); }
User(String name) { this(name, 0); }
User(String name, int age) { this.name = name; this.age = age; }
}
「同名不同參,重載不看回傳;
子類重寫父類方法,參數回傳全要同;
封裝私有給公共,get/set 守規則。」