抽象資料型別和物件導向是什麼關係?

時間 2021-06-05 16:57:24

1樓:xbkw

可以按照陳碩大佬書中的小方法辨別,把乙個物件拷貝,看是否有意義。

物件導向的『物件』是有屬性的,比如乙個員工拷貝出去,它不會變成兩個員工。

資料抽象是針對資料的,你可以把資料拷貝乙份。

2樓:浦東花澤類

處理 complexity 的方法有兩大類:1. procedural abstraction 2. data abstraction

Class/Object 是實現 Abstract Data Type 的一種方式。其它實現 ADT 的方式也可以用 dispatch 、高階函式

3樓:itwindgo

抽象資料型別是類的基礎. 廢話一點就是抽象出來的資料型別. 物件導向就是以物件的方式實現資料的抽象.

但是使用不好, 物件有可能不是"抽象資料型別", 只是一堆雜亂的方法和資料屬性的堆砌. 比如 class Dog算是adt, 但是 class Utils 這種完全算不上adt.

4樓:豪伊

物件導向程式設計的四大思想:1) 封裝2) 繼承3) 多型4)抽象

ADT剛好也體現了封裝和抽象兩個程式設計思想。想要實現ADT和具體實現語言無關(不管你用什麼語言都可以體現某種程式設計思想)。因此你問題中「實現了物件導向程式設計中的封裝」這種說法本身就有問題,不能說「實現」某種思想,只能說「體現」。

再乙個,ADT(抽象資料型別)只是一種資料型別,這種資料型別是一種數學模型和定義在該模型上的一組操作。封裝、繼承、多型、抽象是物件導向程式設計所使用的思想,ADT根本不是一門語言,只是一種模型,二者不能相提並論。「C語言實現的ADT沒有繼承和多型」這種說法也有問題。

什麼叫「有」繼承和多型呢?人家ADT只是一種資料型別罷了,又不是一門語言。個人理解,僅供參考。

javascript資料型別到底怎麼應該怎麼去表達?

這些說法都大同小異,只是分類和細化程度不同。一切還是以ES規範為準。根據ES6規範 http www.ecma international.org ecma 262 7.0 sec ecmascript language types 有7大型別 Undefined,Null,Boolean,Stri...

javascript的基本資料型別有具體哪幾種?

陳好人 基本型別 Undefined Null String Number Boolean 引用型別 Object 當然引用型別可以引申出子型別 Array Date Function等等 亦俊 一般來說 typeof 返回值有7種,當然這裡指的是瀏覽器中的 string number boolea...

Lua 中的可變引數 是什麼資料型別?

馮東 首先糾正一下,Lua 裡不只有一種型別。Lua 有如下型別 nil 是的,這也是一種型別 boolean userdata function thread number 5.3 還引入了 integer 和 float 兩種 sub types table。Lua 還有一種 built in ...