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

Java OOP 基礎語法總結:類、物件、繼承、多態與核心關鍵字

     編輯:Java 綜合教學

Java OOP 基礎語法總結:類、物件、繼承、多態與核心關鍵字

本文系統整理 Java 面向物件程式設計(OOP)的核心語法知識點,適合初學者快速建立知識框架,也可作為開發者的隨查手冊。

1. 類與物件

  • 類(Class):相同屬性與方法的集合。組成:屬性(資料)+ 方法(行為)。關鍵字 class,類名首字母大寫,檔名需與 public 類名一致。
  • 物件(Object):具體實體。透過 new 實例化:Student s = new Student();
  • 檔案規則:一個 .java 檔可含多個類,但最多一個 public 類,檔名必須與 public 類名相同。

2. 方法

訪問修飾符 返回類型 方法名(參數列表) {
    方法體;
}
  • 參數傳遞:基本類型(按值傳遞,存在堆疊)vs 引用類型(按址傳遞,存在堆積,有屬性與方法)

3. 建構子

  • 名稱與類同,無返回類型(非 void)
  • 預設隱式無參建構子;自訂建構子後隱式建構子消失
  • 用 new 呼叫

4. 封裝

  • 將實作細節隱藏,透過 private 修飾屬性,提供 public getter/setter
  • 優點:安全、可控

5. 繼承

  • 關鍵字 extends,單根繼承(一個子類只能繼承一個父類)
  • 符合 is-a 關係才使用繼承
  • 優點:程式碼重用、維護性佳
  • 不可繼承:父類建構子、private 成員、不同包下的 default 成員

6. 多態

  • 方法多態:重載(同類中,同名不同參數)與 重寫(子類重新實作父類方法)
  • 類多態:父類引用指向子類物件(向上轉型),向下轉型需 instanceof 判斷

7. 關鍵字詳解

關鍵字用途與規則
this指當前執行實例。用於:this.屬性、this() 呼叫其他建構子(必須首行)。靜態方法與 main 中不可用。
super指父類。super.屬性/方法、super() 呼叫父類建構子(必須首行)。
final修飾類(不可繼承)、方法(不可重寫)、變數(常數,必須賦值)、屬性(可在宣告/程式碼區塊/靜態區塊賦值)。
static屬於類不屬於實例。靜態變數、靜態方法、靜態區塊(類載入時執行一次)。
abstract抽象類(可有抽象方法與具體方法、建構子,不可實例化)、抽象方法(無實作,子類必須實作)。
interface純抽象類型。屬性預設 public static final,方法預設 public abstract。類用 implements 實作,可多實作。JDK 8+ 支援 default/static 方法。

8. 類初始化順序

  1. 父類靜態區塊/靜態變數
  2. 子類靜態區塊/靜態變數
  3. 父類實例區塊/實例變數
  4. 父類建構子
  5. 子類實例區塊/實例變數
  6. 子類建構子

靜態區塊只執行一次!

9. 訪問控制修飾符(範圍由大到小)

  • public:所有類
  • protected:本類、同包、子類
  • default(包私有):本類、同包
  • private:僅本類

10. 方法重寫規則

  • 方法名、參數列表相同
  • 返回類型相同或為子類(協變返回)
  • 子類訪問權限不小於父類
  • 子類拋出異常不大於父類
  • 不可重寫:private、建構子、static、final 方法

11. Object 類核心方法

  • 不可重寫:getClass()、notify()、notifyAll()、wait()
  • 可重寫:toString()、equals()、hashCode()、clone()、finalize()

toString() 重寫範例

@Override
public String toString() {
    return "名字:" + name + "\n年齡:" + age;
}
// 輸出:名字:大黃
//       年齡:300

equals() 重寫規範(必須滿足)

  1. 自反性:x.equals(x) == true
  2. 對稱性:x.equals(y) == y.equals(x)
  3. 傳遞性:x.equals(y) && y.equals(z) => x.equals(z)
  4. 一致性:多次呼叫結果一致
  5. x.equals(null) == false
  6. 重寫 equals 必須重寫 hashCode

12. 抽象類 vs 介面

  • 語法:abstract class + extends vs interface + implements
  • 功能:抽象類可有建構子、普通方法、屬性;介面(JDK 8 前)全為抽象方法與常量
  • 設計:表達「能力」用介面,表達「是一種」用抽象類

13. 面向物件三大特徵總結

  • 封裝:隱藏細節,private + getter/setter → 安全
  • 繼承:extends → 重用、維護性
  • 多態:同一介面不同實作 → 靈活、減少程式碼

作者備註:整理此筆記從早十點弄到晚上十點,中間只吃飯沒停過。雖累但收穫滿滿!持續修正補充中…

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved