物件導向技術

三大基本觀念

  • 類別:物件的分類,ex:encapsulation

    • 名稱

    • 屬性

    • 方法

  • 物件:資料和處理程序的組合,ex:inheritance

    • 識別

    • 狀態

    • 行為

  • 訊息:表達物件之間的關係,ex:polymorphism

    • 物件

    • 方法

    • 參數

三大特性

  • 封裝:將資料抽象化,隱藏起來後封裝。

  • 繼承:當各類別之間的方法類似時,可設計成繼承方法。

  • 多型

類別

Class 是 Object 的一種定義,內容包括:

  • 名稱

  • 屬性

  • 方法

資料抽象化

將資料組合成複合資料,並透過函數來呼叫這些資料。

抽象資料型態

Abstract

僅宣告方法名稱,不實作程式碼,因此被當作設計時的通用標準,並透過 extends 來完成實作。

public abstract class People {
    private int number;// attribute
    protected abstract void man();
    protected abstract void woman();
}

public class Student extends People {// 類別名稱 class
    protected void man() {// 介面 interface
        // 實作 implementation
    };    
}

People

-int number;

#man(); void

#woman(); void

Inheritance

繼承,當類別之間的資料結構大部份相同時,可設計成繼承方法。

  • 優點:

    • 程式碼有效重複運用

    • 將共同程式碼集中管理

    • 減少程式修正量

  • 缺點:

    • 不易設計父類別

Polymorphism

多型

Override

不同類別中,使用相同名稱的方法。

public class Shape{
    public double getArea(int length, int height) {
        return length*height;
    } 
}
public class Triangle extends Shape{
    // 於不同類別
    public double getArea(int length, int height) {
        // 重新實作方法
        return (length*height)/2;     
    }
}

Overload

同類別中,使用相同名稱的方法。

public class People {
    public void toRun(String name) {
        // 實作方法 1
    }    
    public void toRun(String name, int distance) {
        // 實作方法 2
    }
}

Last updated