2015-04-01 57 views
-5

我還想引用來自我閱讀並且無法理解的來源。什麼是算法中的抽象數據類型,爲什麼我們需要它們?

我們都知道默認情況下,所有的原始數據類型(int,float等)都支持基本的操作,比如加法和子類。系統爲原始數據類型提供實現。對於用戶定義的類型,我們需要定義操作。這些算法的實現是在我們使用它們時完成的。 這意味着,用戶定義的數據類型與其操作一起定義。

爲了簡化解決問題的過程,我們將dataStructures和它們的操作結合起來,並稱之爲AbstractDataType。

任何人都可以解釋一個很好的例子和現實世界的情況嗎? 爲什麼你需要他們?

來源納西·卡曼徹書數據結構與算法

+1

檢查這些http://stackoverflow.com/questions/1692933/what-is-an-abstract-data-type-in​​-object-oriented-programming http://interactivepython.org/courselib/static/pythonds/ Introduction/WhyStudyDataStructuresandAbstractDataTypes.html – Abhi 2015-04-01 08:35:18

+0

您應該閱讀[OOD]上的資源(http://en.wikipedia。org/wiki/Object-oriented_design)和[OOP](http://en.wikipedia.org/wiki/Object-oriented_programming)。有很多書籍和現實世界的例子。 – 2015-04-01 08:47:01

回答

1

問得好!

在應用程序基礎架構和設計方面,抽象數據類型對於使類和數據模型具有清晰易懂的層次結構很有用。 正如您所要求的一個實際示例,請使用任何使用數據庫的應用程序:說一個在線eshop。 原始數據類型是有用的,當然,我們使用雙打來存儲價格,整數來存儲項目和字符串的數量來顯示和存儲項目名稱/描述,但我們如何處理購物籃/購物車?最簡單和最值得推薦的方法是通過一個單獨的類來創建購物車的抽象表示,說購物車,其中將包含它的屬性:

class shoppingCart{ 
int numOfItems; 
double totalPrice; 
List<Product> products; 
etc. 
} 

而且,我們需要的類代表產品和類別,如:

class Product{ 
double price; 
string name; 
etc. 
} 

認爲你創建您自己對象,用自己的方法等任何抽象數據類型。

我們將使用抽象類來定義擴展它們的某些子類的一般行爲,例如:抽象類Vehicle和類Car,Bike擴展Vehicle。 的結構將是:

abstract class vehicle{ 
public void drive(); 
public int getNumberOfWheels(); 
} 

這樣,我們確保汽車和自行車的所有實例將實施抽象類車輛中列出的2種方法:

class car extends vehicle{ 
//we have to implement the 2 methods and provide an implementation for it 
} 

另一個開發創想一種新型的車輛(比如說「飛機」),所以他現在可以看到他有來實施2種方法,不管是什麼。

我希望我能幫助你。

相關問題