封裝(encapsulation)和抽象(abstraction)的區別

封裝和抽象是OOP(面向物件程式設計)語言中兩個不同但又相關的概念。封裝是將資料和行為作為單個實體組合在一起的概念。另一方面,抽象是表示實體行為與實現方式的過程。...

封裝與抽象

封裝和抽象是OOP(面向對象編程)語言中兩個不同但又相關的概念。封裝是將數據和行為作為單個實體組合在一起的概念。另一方面,抽象是表示實體行為與實現方式的過程。

什麼是封裝?

封裝是將數據和操作它們的操作封裝到單個實體中的過程。這實際上意味著為了訪問數據,應該使用某些預定義的方法。換句話說,封裝的數據不能直接訪問。這確保了數據的完整性,因為用戶無法按自己的意願直接訪問和修改數據。用戶只能通過對用戶公開可用的方法來獲取或設置數據值。這些方法通常提供數據驗證,以便只允許在字段中**適當格式的數據。因此,封裝的好處有三個方面。通過封裝,程序員可以使類的字段變為只讀或只寫。其次,類可以完全控制存儲在其字段中的內容。最後,類的用戶不必擔心它的數據是如何存儲的。在Java中,程序員可以將所有實例變量聲明為private,並提供get和set方法(公共的)來訪問和修改私有字段。

什麼是抽象?

抽象是將表示細節與實現細節分離的過程。開發者鬆了一口氣,這樣做的細節就更復雜了。相反,程序員可以專注於實體的表示或行為細節。簡單地說,抽象關注的是如何使用某個實體,而不是如何實現它。抽象本質上隱藏了實現的細節,這樣即使實現方法隨著時間的推移而改變,程序員也不必擔心它會如何影響他的程序。一個系統可以被抽象成幾個層次。例如,低級抽象層將顯示硬件細節,而高級抽象層將只顯示實體的業務邏輯。抽象這個詞可以用來指實體和過程,這會導致一些混淆。作為一個過程,抽象意味著提取必要的細節,而忽略一個或一組項目的不重要的細節;而作為一個實體,抽象意味著一個只有基本細節的實體的模型或視圖。在Java中,程序員可以使用關鍵字abstract將一個類聲明為一個抽象實體,抽象實體表示真實世界實體的基本定義特徵。

封裝和抽象有什麼區別?

  • 發表於 2020-10-23 12:49
  • 閱讀 ( 17 )
  • 分類:科技

你可能感興趣的文章

遊離神經末梢(free nerve endings)和封裝的(encapsulated)的區別

...嘴脣。此外,它們對輕觸有反應。 什麼是包裹神經末梢(encapsulated nerve endings)? 與遊離神經末梢不同,包裹的神經末梢不包含神經傳遞的開放端。因此,與遊離神經末梢相比,包裹神經末梢的敏感性較低。一些機械感受器有包...

  • 發佈於 2020-10-16 00:28
  • 閲讀 ( 49 )

封裝(encapsulation)和脫膠囊(decapsulation)的區別

.... 並列比較-以表格形式封裝與去封裝 6. 摘要 什麼是封裝(encapsulation)? 網路模型用於標準化網路通訊。當從一個位置向另一個位置傳送資料時,資料會經過許多層。TCP/IP模型有四層。它們是應用層、傳輸層、網際網路層和網路接...

  • 發佈於 2020-10-19 15:30
  • 閲讀 ( 80 )

摘要(abstract)和介紹(introduction)的區別

...解兩者的區別,以及摘要和導言的作用。 什麼是摘要(an abstract)? 首先讓我們從抽象開始。摘要,也稱為大綱,是期末論文的簡短形式。它包含了研究結果的關鍵。摘要也指提交會議或研討會的研究論文的簡短版本。任何一所大...

  • 發佈於 2020-10-22 19:14
  • 閲讀 ( 52 )

資料隱藏(data hiding)和封裝(encapsulation)的區別

資料隱藏(data hiding)和封裝(encapsulation)的區別 面向物件程式設計(OOP)是程式設計的一個主要正規化。它有助於使用物件開發程式或軟體。物件是使用藍圖建立的。它被稱為一個類。類由應該包含在物件中的屬性和行為組成。...

  • 發佈於 2020-10-24 02:51
  • 閲讀 ( 53 )

繼承(inheritance)和java介面(interface in java)的區別

...立類和物件。OOP有四個支柱。它們是繼承、多型、抽象和封裝。繼承和介面與OOP有關。繼承和介面的關鍵區別在於繼承是從現有的類中派生新的類,而介面是實現抽象類和多重繼承。 目錄 1. 概述和主要區別 2.Java中的繼承是什麼...

  • 發佈於 2020-10-25 00:02
  • 閲讀 ( 66 )

哦(oop)和流行音樂(pop)的區別

...法稱為訊息傳遞。 OOP程式設計有四個主要特性:抽象、封裝、多型和繼承。抽象的目的是隻向用戶顯示相關資訊,從而降低問題的複雜性。封裝是在物件中對資訊進行本地化。一個類獲取另一個類的屬性和功能的過程稱為繼承...

  • 發佈於 2020-10-28 20:06
  • 閲讀 ( 53 )

摘要(abstract)和具體思路(concrete thinking)的區別

...這兩個術語,並找出它們之間的差異。 什麼是抽象思維(abstract thinking)? 首先,抽象思維可以解釋為一種思維方式,這種思維方式集中於對某一事物的概念化或概括化。一個抽象的思考者可以從別人看不到的角度來看待一個特定...

  • 發佈於 2020-11-04 10:41
  • 閲讀 ( 54 )

面向物件程式設計中抽象的初學者指南

... 什麼是抽象什麼(abstract and what)? ...

  • 發佈於 2021-03-30 04:01
  • 閲讀 ( 83 )

抽象類(abstract class)和c中的介面#(interface in c#)的區別

...讓我們詳細討論一下兩者的理論方面。 什麼是抽象類(an abstract class)? 抽象類是一種特殊型別的類,它充當其他類的基,不能例項化。抽象類的實現邏輯由其派生類提供。為了使一個類抽象,使用了“abstract”修飾符,這意味著...

  • 發佈於 2021-06-25 03:34
  • 閲讀 ( 56 )

抽象類(abstract class)和java介面(interface in java)的區別

...們詳細研究一下兩者的區別。 什麼是java中的抽象類(an abstract class in java)? Java中的抽象類是一個宣告為抽象的類——它可能包含也可能不包含抽象方法。它與Java介面非常相似,只是它可以包含預設的方法實現。與面向物件程式...

  • 發佈於 2021-06-25 03:52
  • 閲讀 ( 46 )