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

Java 面向物件核心概念:物件、類別、套件與介面完整指南

     編輯:Java 相關知識

前言:從面向過程到面向物件

面向過程(C 語言風格)以「步驟」為核心,資料與函數分離,規模增大時難以控制複雜度。面向物件(OOP)以「物件」為核心,將狀態(屬性)與行為(方法)封裝,透過訊息傳遞互動,實現模組化、資訊隱藏、程式碼復用,極大提升可維護性與擴展性。

核心三要素:物件、類別、訊息

1. 物件

物件 = 變數(狀態)+ 方法(行為)。

  • 封裝:方法包圍變數,外部僅能透過方法存取,隱藏實作細節。
  • 範例:汽車物件 → 狀態:速度、油量、型號、位置;行為:加速、煞車、換檔。

2. 類別

類別 = 同類物件共同特徵的抽象原型。class 定義屬性與方法,new Class() 實例化為物件。

  • 實現代碼復用:無需描述每個物件,只需建立類別實例。
  • 範例:Car 類別描述所有汽車共性;myCar = new Car() 創建具體物件。

3. 訊息

物件間互動唯一途徑。一條訊息包含:

  1. 接收者
  2. 要執行的方法
  3. 方法所需參數

接收者執行方法後可返回資訊(如儀表板顯示當前速度)。訊息機制支援跨執行緒、跨主機(RMI)互動。

三大支柱:封裝、繼承、多態

1. 封裝

  • 將資料與操作資料的代碼綁定,對外僅暴露公開介面。
  • Java 存取修飾字:private(類內)、default(套件內)、protected(子類/套件)、public(全域)。
  • 優勢:防止誤用、簡化使用(無需知曉內部)、支援內部重構不影響呼叫端。

2. 繼承

  • 子類別繼承父類別屬性與方法,並可新增/覆寫。
  • 實現「是一種」關係:公車、計程車、貨車皆為車。
  • Java 單一繼承(extends 一個父類),透過介面實現多重繼承效果,降低複雜度。
  • 代碼復用:層次化結構使複雜度線性增長,非幾何級數。

3. 多態

  • 方法多載:同類別中同名方法,參數列表不同(編譯期綁定)。
  • 方法覆寫:子類別重新實現父類別方法,運行期動態綁定。
  • 「一個介面,多種實現」:呼叫端無需知曉具體實現類別。

Java 語法實戰:類別定義完整結構


// 完整類別宣告
public abstract class Animal implements Serializable, Cloneable {
    // 1. 類別宣告:修飾字 + class + 名稱 + extends/implements
    
    // 2. 成員變數(屬性)
    private String name;
    protected int age;
    public static final String KINGDOM = "Animalia";
    
    // 3. 建構子
    public Animal(String name, int age) {
        this.name = name;
        this.age = age;
    }
    
    // 4. 方法(行為)
    public String getName() { return name; }
    public void setName(String name) { this.name = name; }
    
    public abstract void makeSound(); // 抽象方法,強制子類實現
    
    public void printInfo() {
        System.out.println(name + ", " + age + " 歲");
    }
    
    // 5. 內部類別、巢狀類別(後續章節詳述)
}

套件:組織類別的命名空間

  • package com.company.project.module; 對應目錄結構。
  • 避免類別名稱衝突,管理存取權限(default/protected 套件可見)。
  • 匯入:import com.company.project.module.ClassName; 或 import com.company.project.module.*;。

介面:契約的極致抽象


public interface Drivable {
    // 隱含 public static final
    int MAX_SPEED = 300;
    
    // 隱含 public abstract
    void drive();
    void stop();
    
    // Java 8+ 預設方法(可選實現)
    default void honk() {
        System.out.println("Beep beep!");
    }
    
    // Java 8+ 靜態方法
    static void checkLicense(String license) { /* ... */ }
}

// 實現介面
public class Car implements Drivable {
    @Override public void drive() { /* ... */ }
    @Override public void stop() { /* ... */ }
    // 可選覆寫 honk()
}

介面定義「能做什麼」,類別定義「怎麼做」。一個類別可實現多個介面,實現多重型別身份。

完整 Java 原始檔結構


// 1. 套件宣告(可選,建議有)
package com.example.domain;

// 2. 匯入陳述式
import java.io.Serializable;
import java.util.Date;

// 3. 類別/介面定義(可多個,但僅一個 public,檔名需與 public 類別同名)
public class Order implements Serializable {
    // 類別主體...
}

// 非 public 類別可同檔案內定義
class OrderItem { /* ... */ }

總結:OOP 思維導圖

概念關鍵字/機制核心價值
物件new, 實例狀態+行為封裝單元
類別class, 建構子物件藍圖、代碼復用基礎
封裝private, getter/setter資訊隱藏、介面穩定
繼承extends, super層次復用、IS-A 關係
多態implements, @Override介面統一、動態分派
套件package, import命名空間、存取控制
介面interface, default/static 方法契約抽象、多重實現

掌握這些核心概念與語法,是邁向 Java 高手、設計優雅架構的必經之路。

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