亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

封裝還是抽象?

封裝還是抽象?

C#
嗶嗶one 2019-12-06 14:06:27
這是封裝和抽象的簡要定義。抽象:Java中的抽象過程用于隱藏某些細節,僅顯示對象的基本功能。換句話說,它處理對象(接口)的外部視圖。我在不同站點上看到的唯一好的示例是界面。封裝形式:它的基本目的是借助諸如private,public,protected等修飾符隱藏對象的狀態。只有在需要時,我們才通過public方法公開狀態。我們與像修飾實現什么private,public也隱藏了一方天地這只不過又是抽象的概念不必要的細節因此,從上面的解釋看來,封裝是抽象的一部分,或者我們可以說它是抽象的子集。但是為什么當我們只能用抽象來處理封裝術語時呢?我確信應該有一些主要的區別來區分它們,但是網上的大多數材料對兩者都表示相同的意思。盡管這個問題早些時候也曾在這個論壇上提出過,但是我再次提出具體疑問。一些答復還說抽象是一個概念,封裝是實現。但是我不買這個-如果是真的,那么我可以認為提供了這兩個不同的概念來使我們感到困惑。
查看完整描述

3 回答

?
青春有我

TA貢獻1784條經驗 獲得超8個贊

封裝是用作抽象的一部分的策略。封裝是指對象的狀態-對象封裝其狀態并將其從外部隱藏起來;類的外部用戶通過其方法與之交互,但無法直接訪問類的狀態。因此,該類抽象出了與狀態相關的實現細節。

抽象是一個更通用的術語,它也可以通過(以及其他)子類實現。例如,該接口List在標準庫是用于項的序列,可以通過位置索引的抽象,的具體實例List是一個ArrayList或一個LinkedList。與List摘要交互的代碼,它使用的是哪種列表的詳細信息。

如果不通過封裝隱藏基礎狀態,則通常不可能實現抽象-如果類公開其內部狀態,則它無法更改其內部工作方式,因此無法抽象。



查看完整回答
反對 回復 2019-12-07
?
一只名叫tom的貓

TA貢獻1906條經驗 獲得超3個贊

抽象是用更簡單的術語描述事物的概念,即抽象出細節,以便專注于重要的事物(例如,在抽象藝術中也可以看到,例如,藝術家專注于圖像的基本組成部分,例如顏色或形狀)。同一思想通過使用繼承層次結構轉換為OOP,在繼承層次中,更多抽象概念位于頂部,更具體的思想位于底部,它們基于抽象。在其最抽象的級別上,根本沒有實現細節,也許只有很少的共性,隨著抽象性的降低而增加了這些共性。

例如,最頂層可能是帶有單個方法的接口,而下一層則提供了幾個抽象類,這些抽象類可能會也可能不會填寫有關頂層的某些細節,而是通過添加自己的抽象方法進行分支,那么對于這些抽象類中的每一個,都是提供所有其余方法的實現的具體類。

封裝是一種技術。它可能是也可能不是用于輔助抽象,但是肯定是關于信息隱藏和/或組織的。它要求以某種方式對數據和功能進行分組-當然,良好的OOP實踐要求應將它們按抽象分組。但是,還有其他用途僅有助于維護性等。



查看完整回答
反對 回復 2019-12-07
?
長風秋雁

TA貢獻1757條經驗 獲得超7個贊

封裝是抽象的一部分,或者我們可以說它是抽象的子集


它們是不同的概念。


抽象是完善對象的所有不需要/不重要屬性并僅保留最適合您的域的特征的過程。


例如,對于一個人:您決定保留名字和姓氏以及SSN。年齡,身高,體重等無關緊要。


抽象是設計開始的地方。


封裝是下一步,它將識別在抽象過程中接受的要保留的屬性上適合的操作。數據與作用于它們的操作的關聯。

即數據和方法捆綁在一起。



查看完整回答
反對 回復 2019-12-07
  • 3 回答
  • 0 關注
  • 368 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號