MATLAB - 面向物件程式設計



MATLAB 是一種功能強大的數值計算環境,支援面向物件程式設計 (OOP),以促進建立複雜且可重用的程式碼。MATLAB 中的 OOP 圍繞類和物件的概念展開。

以下是 Matlab 支援的面向物件特性。

  • 物件
  • 封裝
  • 繼承
  • 多型
  • 抽象
  • 屬性
  • 方法過載

面向物件程式設計的主要支柱是 -

  • 封裝
  • 抽象
  • 繼承
  • 多型

為什麼要使用面向物件設計?

在構建軟體時,您需要設計應用程式將使用的數 據並建立用於處理這些資料的操作。在程序式程式設計中,您將資料傳遞給函式以執行操作。在面向物件程式設計 (OOP) 中,您將資料和操作捆綁到物件中,這些物件透過定義的介面進行互動。

編寫 MATLAB 程式的方法

MATLAB 允許您使用過程式和麵向物件兩種方法,從而允許您在程式中組合物件和常規函式。

過程式程式設計

在程序式程式設計中 -

  • 重點 - 實現目標所需的步驟。
  • 資料表示 - 作為單個變數或結構體中的欄位。
  • 操作 - 實現為將資料作為引數的函式。
  • 流程 - 程式呼叫一系列函式,傳遞資料並接收修改後的資料作為返回值。每個函式對資料執行特定的操作。

面向物件程式設計

  • 識別元件 - 確定要構建的系統或應用程式的各個部分。
  • 分析模式 - 查詢重複使用或共享特徵的元件。
  • 對元件進行分類 - 根據相似性和差異對元件進行分組。

經過此分析後,您定義類來描述應用程式使用的物件。

類和物件

  • - 描述一組具有共同特徵的物件。
  • 物件 - 類的特定例項。物件屬性中的值將其與同一類的其他物件區分開來。
  • 方法 - 在類中定義的函式,用於實現該類所有物件共有的行為。

何時應該建立面向物件程式?

您可以使用簡單的函式處理簡單的任務。但是,隨著任務規模和複雜性的增長,函式可能會變得很大且難以管理。

當函式變得太大時,您可以將其拆分為較小的函式並在它們之間傳遞資料。但是,隨著函式數量的增加,管理它們之間傳遞的資料可能會變得很棘手並且容易出錯。這時您應該考慮對 MATLAB 程式使用面向物件設計。

理解面向物件程式

何時應該切換到面向物件程式設計 (OOP)?隨著您的任務變得越來越複雜,以物件的思維方式思考可以使您的程式碼更易於管理和理解。

以物件的思維方式思考

有時,以物件的思維方式解決問題會更容易。將問題中的名詞識別為物件,將動詞識別為這些物件執行的動作。例如,如果您正在處理不同型別的放貸機構(如銀行和抵押貸款公司),您可以將每種型別的放貸機構表示為一個物件。每個物件執行特定操作(方法)並儲存某些資料(屬性)。

  • 識別共性:查詢所有型別物件共有的內容。例如,所有放貸機構都可能有一種提供貸款的方法和一個用於利率的屬性。
  • 識別差異:瞭解每個物件的不同之處。例如,某些放貸機構可能只向企業提供貸款,而另一些放貸機構可能只向個人提供貸款。您可以從基類建立子類來處理這些差異。
  • 提取共性:將共享的特性放入超類中,並讓子類處理特定的特性。

MATLAB 中 OOP 的優勢

以下是在您以物件的思維方式思考時獲得的一些優勢。

1) 物件管理其內部狀態 - 它確保其屬性值有效。控制誰可以訪問屬性和方法。

2) 減少冗餘 - 隨著程式的增長,OOP 透過減少冗餘來幫助管理複雜性。無需複製和修改函式,您可以建立一個包含公共程式碼的基類。然後,子類可以新增或覆蓋特定功能,而無需複製程式碼。

3) 定義一致的介面 - 對相似但專門的類使用基類有助於維護一致的介面。這種方法使每個系統部分需要執行的操作變得清晰。確保程式碼透過通用介面反映這些要求。

4) 降低複雜性 - 物件提供隱藏內部工作的介面。它還確保互動遵循既定規則。

5) 促進模組化 - 將系統分解為物件有助於建立自然模組。類提供不同級別的訪問控制:公共、受保護和私有。

6) 過載函式和運算子 - 在 OOP 中,您可以過載現有函式以與您的物件一起使用。例如,您可以重新定義某些操作(如相等或加法)對自定義物件的工作方式。

MATLAB 中 OOP 的特性

簡要描述 MATLAB 支援的面向物件程式設計 (OOP) 特性 -

物件 - 類的例項,包含資料(屬性)和操作該資料的方法(函式)。

- 類是定義物件屬性和行為的藍圖。它封裝資料(屬性)和操作該資料的函式(方法)。物件是類的例項,每個物件都有自己獨特的資料。在 MATLAB 中,您可以使用 classdef 檔案定義類。

封裝 − 將資料(屬性)和方法捆綁到一個單元(類)中的概念。在 MATLAB 中,您可以使用訪問修飾符(如 public、protected 和 private)來控制對類元件的訪問。

繼承 − 一種機制,其中一個類(子類)可以繼承另一個類(超類)的屬性和方法,從而實現程式碼重用。在 MATLAB 中,您可以使用 classdef 語法指定繼承關係。

多型 − 在子類中重新定義方法的能力,允許不同的類以不同的方式響應相同的方法呼叫。MATLAB 透過方法重寫支援多型。

抽象 − 隱藏複雜實現細節並僅顯示物件基本特徵的概念。MATLAB 使用抽象類和方法來實現抽象。

屬性 − 在類中定義的變數,用於儲存物件的資料。MATLAB 允許設定屬性特性,例如訪問控制和預設值。

方法過載 − 定義多個具有相同名稱但輸入引數不同的方法的能力。MATLAB 支援方法過載,以允許方法根據輸入型別或數量的不同而表現出不同的行為。

封裝 − 透過將資料和方法分組到類中來保護和組織程式碼。MATLAB 使用訪問控制(例如,私有屬性)來封裝資料。

抽象 − 透過隱藏實現細節來簡化複雜系統。在 MATLAB 中,抽象方法和類允許您專注於基本功能。

繼承 − 透過允許類繼承其他類的行為和屬性來促進程式碼重用。在 MATLAB 中,繼承在定義類時宣告。

多型 − 透過允許不同的類以各種方式實現相同的方法來提高靈活性。在 MATLAB 中,多型是透過在派生類中重寫方法來實現的。

廣告

© . All rights reserved.