Java 物件模型


物件模型概述

你有沒有想過軟體程式如何感知和與構成它們的元件進行通訊?

物件模型在這種情況下非常有用。藉助強大的系統或介面,開發人員可以使用高階的面向物件技術將這些元件表示為物件。

物件模型實際上對軟體開發至關重要,它通常是最初的步驟之一。透過定義繼承和封裝等關鍵特性,物件模型奠定了可靠、靈活和可擴充套件的應用程式設計框架。你準備好學習更多關於面向物件程式設計的知識了嗎?

物件和類

Java 或任何其他面向物件程式語言的面向物件正規化都依賴於物件和類。讓我們更仔細地研究它們,看看它們究竟是什麼——

物件

在面向物件程式設計中,物件類似於現實世界中的實體,無論是物理的還是概念的,都有其獨特的屬性。

以下是物件的幾個定義特性:

  • 唯一性——每個物件都與系統中的所有其他物件不同,具有其自身的屬性和行為。

  • 狀態——每個物件都有一個狀態,表示其當前屬性和特定於該物件的特定值。

  • 行為——物件的 行為 指的是它可以執行的操作以及它如何與其他物件(內部和外部)互動。

例如,一個人可以表示為物理物件,而過程或產品可能更適合作為概念物件。

類是物件的藍圖或模型,描述了一組具有相似屬性的物件。這些物件被稱為類的例項。類中包含幾個元素:

儲存在物件屬性中的資訊可能因屬於同一類的不同物件而異。這些屬性稱為類資料。

操作是用於指定和描述這些物件行為的程式和方法。

例如,考慮一下“員工”類。此類可能具有以下屬性:

  • 員工的經驗

  • 員工所在的部門

  • 員工開始工作的年份

  • 個人資訊,例如員工姓名、員工 ID 和出生日期。

使用此類,可以執行許多操作,包括:

  • averageyears()——計算員工平均工齡。

  • totalyears()——計算員工總工齡。

演算法

  • 步驟 1——建立“員工”公共類。

  • 步驟 2——使用兩個數字 2 和 4 呼叫“total_years”函式來新增員工總工齡。

  • 步驟 3——然後,我們呼叫了另一個名為“avg_years”的函式,該函式使用“total_years”的結果和整數 2。此函式計算兩個數字的平均值。它將結果作為十進位制數返回。

  • 步驟 4——程式使用 System.out.println 方法將結果列印到控制檯。

  • 步驟 5——輸出顯示員工總工齡為 6 年。兩個數字的平均值為 3.0。

示例

下面的程式碼定義了一個“員工”類,該類計算兩名員工的總工齡和平均工齡,並將結果列印到控制檯。

import java.io.*;
public class Employee {
   public static void main (String[] args) {
      // passing parameters to functions
      int tot = total_years(2,4);
      double avg = avg_years(tot, 2);

      // printing the output
      System.out.println("The total years is = "+tot+". The average is = "+avg+".");
   }

   // function to calculate total
   public static int total_years(int executive, int senior) {
      int total = executive + senior;
      return total;
   }

   // function to calculate average years
   public static double avg_years(int total, int num_subs) {
      double avg = total/num_subs;
      return avg;
   }
}

輸出

The total years is = 6. The average is = 3.0.

封裝和資料隱藏的概念

為了確保我們的資料安全且不受外部干擾,必須實現封裝和資料隱藏這兩個重要概念。

封裝是指將方法和屬性組合到類中的過程。只有在類為此提供介面的情況下,才能允許外部訪問內部細節或類屬性。

另一方面,資料隱藏是保護物件免受外部方法直接訪問的過程。

許多物件需要能夠相互通訊才能建立一個互動式應用程式。這種通訊是透過訊息傳遞來實現的,訊息傳遞涉及在由不同程序建立的物件之間呼叫類方法。在大多數情況下,訊息傳遞是單向的,並且允許在兩個物件之間進行通訊。

繼承

可以使用繼承的基本概念從具有更廣泛功能的現有類建立新類。最初的類通常稱為父類、基類或超類,而新類則稱為子類、派生類或子類。

只要超類允許,子類就可以繼承或獲取其超類的特性和功能。(es)。此外,子類還可以修改任何繼承的超類方法,並引入其自身的新特性和方法。

由於繼承在父類和子類之間建立了“is-a”關係,因此它為程式設計師提供了一個強大的工具來開發面向物件的應用程式。

例如,可以使用爬行動物類作為藍圖來建立鱷魚、蛇和變色龍等類。除了作為爬行動物的共同特徵外,每個類都有其獨特的特徵。因此,可以說鱷魚“是”爬行動物。

多型性

源於希臘語的“多型性”一詞是指能夠採用多種形式的能力。在面向物件程式設計的上下文中,它指的是操作能夠根據應用它們的​​物件型別而不同地起作用的能力。

這在繼承中尤其有用,因為它允許具有不同內部結構的物件共享一個公共介面。

讓我們以三角形和矩形這兩個類為例。這兩個類都包含一個名為 findArea() 的方法。

儘管這兩個類中方法的名稱和目的相同,但其內部實現方式(即面積的計算方式)因類而異。

當矩形類的物件執行其 findArea() 函式時,它不會干擾三角形類的 findArea() 方法計算圓的面積。

泛化和特化

在類層次結構中,子類繼承自超類,這體現在泛化和特化中。

在泛化過程中,子類被組合以形成一個泛化的超類,將類的共有特性合併起來,以在層次結構的更高級別生成一個類。

它表示“是一種”關係。

例如,“腳踏車是一種陸地車輛”或“船是一種水上車輛”。

泛化的反面是特化過程。在這種情況下,使用組中專案的標識特性,從預先存在的類建立專門的類。您可以將子類視為超類的特化版本。

連結和關聯

連結和關聯用於表示物件之間的關係。連結表示物件之間的連線,透過該連線物件進行協作。關聯是一組具有共同結構和行為的連結,表示一個或多個類的物件之間的關係。

關聯的度表示連結的類的數量。

關聯的基數比率表示參與關聯的例項的數量。

聚合和組合

聚合或組合是類之間的關係,其中一個類可以由其他類的任何物件的組合組成。

現在可以將物件直接放置在其他類的正文中。

聚合被稱為“部分-整體”或“has-a”關係,能夠從整體導航到其各個部分。聚合實體由一個或多個其他物件組成。

結論

物件模型是軟體開發中至關重要的一部分,因為它允許開發者使用面嚮物件的技術將元件表示為物件。Java 透過物件和類(構成面向物件正規化基礎)來使用物件模型。物件模型中的關鍵概念,例如封裝、資料隱藏、繼承和多型性,提高了應用程式的適應性、可擴充套件性和健壯性。掌握這些概念,開發者可以建立更有效、更高效、更通用的軟體應用程式。

更新於:2023年5月15日

817 次瀏覽

開啟您的職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.