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

Java 物件導向基礎:類別、物件、封裝、建構子、方法重載完整入門

     編輯:Java 相關知識

前言

物件導向程式設計 (OOP) 是 Java 的核心思想。本文從物件、類別基本概念切入,詳細講解封裝實作、建構子機制、getter/setter 模式、方法重載規則,配合完整可執行範例,幫助初學者建立扎實的 OOP 基礎。

核心概念

概念說明
物件客觀存在的實體,包含屬性(名詞)與行為(動詞),如:狗(名字、顏色) + 叫、跑
類別同類物件的抽象描述,是建立物件的模板/藍圖
實例化用類別建立具體物件的過程:Dog d = new Dog();

面向對象三大特性

  1. 封裝:隱藏內部細節,對外提供公共介面
  2. 繼承:子類複用父類邏輯,建立 IS-A 關係
  3. 多態:同一介面、不同實現,父類參考指向子類物件

類別定義語法


class 類別名 {
    存取修飾符 成員變數;
    存取修飾符 方法(參數) { 方法體; }
}

存取修飾符

  • public:公開,任意位置可存取
  • private:私有,僅本類別內可存取
  • default (無):包內可存取,包外不可

封裝實作:私有欄位 + getter/setter


public class Dog {
    // 私有欄位,外部不可直接存取
    private String name = "大黃";
    private String owner;

    // getter:取得值
    public String getName() {
        return name;
    }

    // setter:設定值,可加入驗證邏輯
    public void setName(String name) {
        if (name != null && !name.equals(owner)) { // 簡單業務規則
            this.name = name;
        }
    }

    // 行為方法
    public void bark() {
        System.out.println(name + ":旺!旺!旺!");
    }
}

建構子

特點

  • 名稱與類別相同
  • 無返回值類型 (連 void 都沒有)
  • new 物件時自動呼叫
  • 通常 public
  • 執行順序:欄位初始化 → 建構子程式碼
  • 未自定義時編譯器提供無參預設建構子

多載建構子範例


public class Student {
    private String name;
    private int age;

    // 無參建構子
    public Student() {}

    // 兩參建構子
    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }
}

完整範例:建立與使用 Dog 物件


public class Home {
    public static void main(String[] args) {
        // 1. 實例化
        Dog myDog = new Dog();

        // 2. 使用 setter 修改名字
        myDog.setName("小黃");

        // 3. 使用 getter 取得名字
        System.out.println("小狗的名字是:" + myDog.getName());

        // 4. 呼叫行為方法
        myDog.bark();
    }
}

執行結果

小狗的名字是:小黃
小黃:旺!旺!旺!

執行結果截圖

方法重載

定義

同一類別中,方法名相同,參數列表不同(個數、型別、順序),與返回值型別無關。

規則

  • 參數列表必須不同
  • 可不同:返回型別、存取修飾符、拋出異常
  • 不可僅靠返回型別區分
  • 建構子也可重載

範例


public class Calculator {
    // 兩個 int 相加
    public int add(int a, int b) {
        return a + b;
    }

    // 三個 int 相加 (重載)
    public int add(int a, int b, int c) {
        return add(a, b) + c; // 復用兩參版本
    }

    // 兩個 double 相加 (重載)
    public double add(double a, double b) {
        return a + b;
    }
}

編譯器如何選擇

根據實際傳入引數的型別、個數、順序,自動匹配最合適的重載版本(精確匹配 > 基本型別擴大 > 自動裝箱 > 可變參數)。

常見錯誤與最佳實踐

  1. 忘記封裝:欄位直接 public,導致業務邏輯分散、難以驗證
  2. 建構子未初始化必要欄位:造成物件處於不完整狀態
  3. 重載混淆:參數型別過於相似 (如 long vs int) 導致呼叫端歧義
  4. getter/setter 命名不規範:不遵循 JavaBean 慣例 (getXxx/setXxx),框架無法識別

總結

類別是模板,物件是實例。封裝用 private + getter/setter 保護資料、建構子確保物件正確初始化、重載提供同名不同參的彈性介面。掌握這三大基石,即能撰寫結構清晰、易維護的 Java 物件導向程式。

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