為初學者解釋的 OOPS 概念

已發表: 2022-12-20

計算機程序的作用是成功地將復雜的現實世界需求建模為計算機可理解的指令。 為實現這一點,幾種編程範式適用於不同的哲學。 其中包括函數式編程、過程式編程、面向對象編程等。 這些範例根據它們的工作方式而有所不同,因此與語言無關。

在本文中,我們將深入研究面向對象編程。 在我們深入了解 OOPS 的複雜性之前,您應該牢記以下 Java 中的一些關鍵OOP 概念,因為它們是 OOPS 工作的四大支柱:

  • 抽象
  • 封裝
  • 遺產
  • 多態性

我們將在本文的稍後階段深入討論這些OOP 概念但首先,讓我們了解什麼是面向對象編程。

目錄

什麼是面向對象編程?

在面向對象編程之前,函數式編程是占主導地位的編程範式。 C 和 COBOL 等語言遵循這種範式,因此使用這些語言編寫的程序是一系列指令。 這些使用子例程或過程來保持源代碼的模塊化和可讀性。 函數式編程範式更多地關注邏輯而不是數據,程序將結合數據和程序。

C++、C#、Java 等編程語言在 C 之後轉向面向對象編程方法。OOP 優先考慮數據覆蓋簡單的基於邏輯的指令。 本質上,對像是您想要在程序中建模的任何東西。 它可以是任何東西。 如果現在聽起來很模糊,堅持到最後,你就會明白我們的意思!

什麼是類和對象?

面向對象編程適用於類和對象。 因此,了解這兩個術語的含義以及它們之間的區別非常重要。 簡而言之,將類視為幫助您在需要時創建對象的藍圖。

類的作用是定義各種屬性和不同的行為。 因此,如果我們要在我們的程序中對車輛進行建模,我們將為該車輛創建一個類並保留諸如車輪數量、顏色、型號、年齡等屬性; 而行為就像啟動、加速、制動等。 如您所見,我們定義的屬性和行為並不特定於一輛車。 它們本質上涵蓋了不同車輛的不同行為和屬性。 這樣,當您想要實例化一個新的車輛對象時,您可以為每個相關車輛指定屬性。 通過這種方式,類充當創建具有相同屬性和行為的新對象的完美藍圖。

所以,這就是我們的 Class Vehicle 及其不同的屬性和行為的樣子。 請記住,我們使用 Java 的語法編寫代碼,但編程範例是語言中立的。

公共類車輛{

私有字符串_color;

私人詮釋模型;

私有字符串_makeYear;

私有字符串_fuelType;

公共無效開始(){}

公共無效加速(){}

公共無效停止(){}

}

使用定義的類,我們可以創建具有不同屬性但具有共同行為的各種對象。 例如:

對象 1
模型中音
燃料壓縮天然氣
製作2018
開始()

休息()

加速()

對象 2
模型旅行車R
燃料汽油
製作2017年
開始()

休息()

加速()

這樣,面向對象編程中的類可以幫助您簡化對現實世界複雜行為和系統的建模。 所有數據、屬性和函數都綁定到任何類的對象。 這樣,就無需保留任何全局數據。 這是過程編程和麵向對象編程方法之間的重要區別。

有了基礎知識,讓我們深入了解面向對象編程的四大支柱:

獲得世界頂尖大學的數據科學認證 學習行政 PG 課程、高級證書課程或碩士課程,以快速推進您的職業生涯。

抽象

抽象就是關注完成了什麼,而不是如何執行任務。 抽象背後的整個想法是幫助構建獨立的模塊,這些模塊可以相互交互而無需任何其他依賴。 這樣,程序的維護也變得更容易和更易於管理。 通過抽象,OOP 嘗試僅表示基本功能,而不考慮這些功能是如何實現的或系統內部是如何工作的。

Python中最重要的OOPS 概念之一背後的想法是,程序員需要只關注對當前模塊直接重要的事情。 修改一個模塊不應直接影響其他獨立模塊。 程序員只需要了解當前模塊及其提供的內容。 不需要了解模塊的後台工作就可以完成所需的工作; 因此,該信息被提取出來以獲得最佳結果。

如果你把抽象的想法放在編程之外,你就會意識到抽象本質上無處不在。 我們每天打交道的對像都是在不同層次上從我們身上抽像出來的。 例如,我們不知道汽車製動器的內部結構是如何工作的,但是我們已經提供了一個踏板來施加製動,同時抽像出窗簾後面的機制。 這樣,您就不必擔心它是如何工作的; 你只需要踩下踏板。

封裝

封裝概念與前面的抽象概念密切相關。 本質上,封裝就是提供問題的解決方案,而不需要最終用戶完全理解問題的領域。 為此,封裝將所有數據和行為綁定為一個單元。 這樣,無論在何處實現抽象,最終用戶都無法了解內部元素。

用戶不能直接訪問數據,而是在需要時使用公開的函數來訪問數據。 通過隱藏對象的內部結構,OOPS 編程範例保護了模塊的完整性,並且不允許用戶將內部數據設置為不一致的狀態。 如果不這樣做,從長遠來看,這可能會導致許多問題。 因此,通過這種方式,封裝更多的是關於以一種防錯的方式暴露複雜性,而不是完全隱藏複雜性。

遺產

繼承是面向對象編程範式的另一個強大特性。 繼承的作用是高效快速地將類安排和組織成層次結構,使這些類能夠從位於層次結構之上的類繼承行為和屬性。 本質上,繼承可以理解為一種“是一種關係”,這與我們在現實世界中談論事物的方式非常相似。

例如,我們說“一隻鸚鵡是一隻鳥”。 這意味著鸚鵡是鳥類的對象,因此它從更廣泛的類繼承了一些屬性和行為。 但是,如果我們說銀行是銀行賬戶,那將是不正確的。 這就是繼承中層次結構的工作方式,它允許您定義稍後可以專門用於專門類的行為和實現。 請記住,繼承不會向後起作用。 所以,父類永遠不會從子類繼承任何東西。 但是,子類從父類繼承屬性和行為,具體取決於這些屬性和行為的性質(公共或私有)。 繼承是重用程序的一種方式,可以幫助您使整個源代碼更短且更易於理解。 但是您必須記住,如果不需要,您不應該在繼承級別之後添加級別。

檢查我們的美國 - 數據科學計劃

數據科學和商業分析專業證書課程 數據科學理學碩士 數據科學理學碩士 數據科學高級證書課程
數據科學執行 PG 計劃 Python 編程訓練營 商業決策數據科學專業證書課程 數據科學高級課程

多態性

多態性是Python 和 Java 中許多重要的 OOPS 概念之一,它本質上負責處理任何可執行單元的許多不同可能實現以及在後台進行的所有細微差異,而用戶不會意識到這些更改。 多態性使得計算機程序可以更容易地使用專門的對象進行擴展而沒有任何困難。

例如,如果您想在紙上寫一段文字——您可以使用鋼筆、記號筆、蠟筆甚至鉛筆。 您所需要的只是可以放在手中並幫助您在將其按在紙上時製作符號的東西。 因此,書寫行為將幫助您在紙上製作符號,而您需要什麼工具取決於您的選擇。

從這個意義上說,繼承是程序實現多態性的一種方式,其中方法的自定義實現覆蓋了繼承類中定義的行為。 此過程也稱為運行時多態性或方法覆蓋。 還有另一種形式的多態性,也稱為方法重載。 在那一點上,繼承根本沒有出現。 在方法重載中,方法名稱保持不變,而方法中的參數根據要執行的任務而有所不同。

綜上所述

至此,我們結束了對Java 中 OOPS 概念的討論 到目前為止討論的內容奠定了您開始使用面向對象編程所需的所有基礎,而無需擔心任何事情。 您必須實施討論並親自嘗試; 畢竟,編程就是要練習和堅持。

OOPS 的知識也將幫助您進行數據科學之旅,因為您將使用依賴於 OOPS 範例的 Python 等語言。 數據科學是一個蓬勃發展的領域,擁有適當技能和知識的人不乏機會。 查看我們與亞利桑那大學合作的 upGrad數據科學碩士學位,並有機會向行業專家學習,同時擁有強大的校友網絡,這將在您的整個職業生涯中為您提供幫助。

OOPS的四個概念是什麼?

OOPS的四個核心概念是抽象、封裝、繼承和多態。

類和對像有何不同?

類是要建模的現象的藍圖。 另一方面,對像是類的特定實例,它們從實例化它們的類中藉用行為和屬性。

OOPS 使用什麼語言?

OOPS 是一種與語言無關的編程哲學。 您可以使用任何現代編程語言(如 C++、Java、Python、Ruby 等)處理 OOPS。