物件導向 (Object Oriented):
-程式由許多合作的物件組成,每個物件都有自己的屬性 (attributes) 和行為 (behaviors)。
-每個物件都是一個小島:
◆ 強調了物件的獨立性。每個物件都有自己的狀態和行為,不需要知道其他物件的內部細節。
◆ 物件之間透過訊息傳遞來互動,就像島嶼之間的船隻。
-物件共同合作:
◆ 程式中的不同物件會互相合作,共同完成任務。
◆ 一個物件可以呼叫另一個物件的方法來利用它的功能
物件(Object):
-物件包含了執行特定任務所需的程式碼(方法)和相關的數據(屬性)。
-物件導向的關鍵概念之一就是將一個複雜的問題拆分成許多較小的、易於管理的物件。
-每個物件都有自己的界線,我們只需要知道如何使用這個物件,而不需要了解它的內部細節。
-許多程式語言中都有內建的物件,例如字串物件、整數物件、字典物件等等。
定義:
-類別 (Class): 可以想像成一個藍圖或模板。它定義了一個物件的結構,包括這個物件有哪些屬性和方法。
-方法 (Method) 或訊息 (Message): 是類別定義的一個行為或功能。當你對一個物件發送一個訊息時,就相當於要求這個物件執行某個特定的動作。
-欄位 (Field) 或屬性 (Attribute): 是類別中用來儲存數據的變數。它描述了物件的狀態或特徵。
-物件 (Object) 或實例 (Instance): 是根據類別創建出來的具體實體。每一個物件都有自己獨特的屬性值,但它們都遵循相同的類別定義。
物件的生命週期 (Object Lifecycle):
-物件被創建、使用,然後被丟棄。
-我們有特殊的程式碼塊(方法),它們在特定時機被呼叫:
◆ 創建時: 稱為建構子(constructor),用來初始化物件。
◆ 銷毀時: 稱為解構子(destructor),用來清理物件佔用的資源。
-建構子被頻繁使用,而解構子則較少使用。
建構子(constructor):
-主要目的是在創建物件時,為物件的實例變數設定初始值。
-這是一個特殊的方法,當創建一個新的物件時,這個方法會自動被呼叫。它的名字通常是 init。(當創建一個物件時,自動執行的程式碼。)
繼承 (Inheritance):
-當我們建立一個新的類別(class)時,可以重複利用現有的類別,並繼承其所有功能,然後再添加我們自己的部分來建立新的類別。(基於已有的類別,創建新的類別。)
-這是另一種儲存和重複利用的方式。
-一次編寫,多次使用。
-新的類別(子類)擁有舊類別(父類)的所有功能,並且可能還具有額外的功能。
◆ 子類 (Subclass):也稱為子類別,是從另一個類別(父類別)派生出來的類別。
◆ 父類別 (Parent class):被子類繼承的類別。