Java 面向對象核心語法速查
1. 類定義與成員
public class Person {
// 屬性(成員變量)
private String name;
private int age;
// 構造方法
public Person() {}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
// 方法
public void work() {
System.out.println(name + " 正在工作");
}
// Getter/Setter
public String getName() { return name; }
public void setName(String name) { this.name = name; }
}
2. 對象創建與內存模型
Person p = new Person("李雷", 22);:棧內存存引用 p,堆內存存對象實體。
- 構造方法無返回值,名稱與類同,可重載。
this 區分同名參數,調用本類其他構造需置於首行:this(name, age);。
3. 封裝三步驟
- 屬性
private。
- 提供公共
getXxx/setXxx。
- 在 setter 中加業務驗證(如年齡 0-150)。
4. 訪問修飾符權限表
| 修飾符 | 同類 | 同包 | 子類(異包) | 任意處 |
| private | ✓ | ✗ | ✗ | ✗ |
| default | ✓ | ✓ | ✗ | ✗ |
| protected | ✓ | ✓ | ✓ | ✗ |
| public | ✓ | ✓ | ✓ | ✓ |
5. static 關鍵字
- 靜態變量:屬於類,全局唯一,
ClassName.field 訪問。
- 靜態方法:無
this,只能訪問靜態成員,ClassName.method() 調用。
- 靜態代碼塊:類加載時執行一次,用於初始化靜態資源。
6. 繼承規則
- 單繼承:
class Son extends Father。
- 子類繼承父類
public/protected 成員;同包下繼承 default 成員。
- 構造方法不繼承,但子類構造首行隱式調用
super()。
super 訪問父類成員,super(params) 顯式調用父類有參構造。
7. 多態與向上/向下轉型
Animal a = new Dog(); // 向上轉型,自動
a.cry(); // 動態綁定調用 Dog.cry()
if (a instanceof Dog) {
Dog d = (Dog) a; // 向下轉型,需強轉
d.watchDoor();
}
8. 抽象類與接口
abstract class:可含抽象方法與具體方法,不可實例化。
interface:全抽象(JDK 8 前),支持多實現,默認 public static final 常量與 public abstract 方法。
- 子類必須實現所有抽象方法,否則仍為抽象類。
9. Object 類常用方法
toString():建議重寫返回業務信息。
equals():比較內容相等性,需配合 hashCode() 重寫。
clone():淺拷貝,需實現 Cloneable。
getClass():獲取運行時類信息。