一切皆對象。對象包含 屬性(靜態特征,名詞/形容詞) 與 行為(動態特征,動詞)。對象間存在關系:繼承(is-a)、關聯/組合/聚合(has-a)、依賴(use-a)。
類是對同類對象的 抽象描述,是創建對象的 模板。對象是類的 具體實例化。
public class 類名 {
訪問修飾符 屬性類型 屬性名;
訪問修飾符 返回類型 方法名(參數列表) { 方法體 }
}
| 修飾符 | 類內部 | 同包其他類 | 不同包子類 | 不同包非子類 |
|---|---|---|---|---|
| private | ✓ | ✗ | ✗ | ✗ |
| default (無) | ✓ | ✓ | ✗ | ✗ |
| protected | ✓ | ✓ | ✓ | ✗ |
| public | ✓ | ✓ | ✓ | ✓ |
封裝原則:屬性 private,提供 public getter/setter 控制訪問邏輯(驗證、日志、延遲加載等)。
private String name;
public String getName() { return name; }
public void setName(String name) {
if (name != null && name.length() <= 20) { // 業務驗證
this.name = name;
}
}
Dog dog = new Dog(); // 調用無參構造
Dog dog = new Dog("旺財", 3); // 調用帶參構造
public,也可 private(單例模式)public class Dog {
private String name;
private int age;
public Dog() {} // 無參
public Dog(String name) { this.name = name; }
public Dog(String name, int age) { // 全參
this.name = name;
this.age = age;
}
// this() 調用本類其他構造,必須放第一行
public Dog(String name, int age, String color) {
this(name, age);
this.color = color;
}
}
隱藏內部實現細節,僅暴露公共接口。實現手段:private 屬性 + public 方法。
public class GoldenRetriever extends Dog { // 繼承 Dog
// 擁有 Dog 所有非 private 成員
// 可新增屬性/方法,可重寫父類方法
}
super 訪問父類成員,super() 調用父類構造(子類構造首行隱式調用)final 修飾類/方法/變量禁止繼承/重寫/修改同一接口,不同實現。父類引用指向子類對象:
Animal animal = new Dog();
同一類中,方法名相同,參數列表不同(數量、類型、順序)。與返回類型、修飾符、異常無關。
| 場景 | 是否重載 | 說明 |
|---|---|---|
| 參數數量不同 | ✓ | print(int a) vs print(int a, int b) |
| 參數類型不同 | ✓ | print(int a) vs print(String s) |
| 參數順序不同 | ✓ | print(int a, String s) vs print(String s, int a) |
| 僅返回類型不同 | ✗ | 編譯錯誤 |
| 僅修飾符不同 | ✗ | 編譯錯誤 |
| 僅異常聲明不同 | ✗ | 編譯錯誤 |
byte → short → int → long → float → double,char → intint ⇄ Integerpublic class Dog {
private String name = "大黃";
private String owner;
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 Home {
public static void main(String[] args) {
Dog dog = new Dog();
dog.setName("小黃");
System.out.println("小狗名字:" + dog.getName());
dog.bark();
}
}

this() 避免代碼重複,注意調用順序掌握類與對象、封裝繼承多態、構造重載機制,是寫出高內聚、低耦合、可擴展 Java 代碼的前提。