抽象資料型別(Abstract Data Type,ADT)是指一個數學模型以及定義在這個模型上的一組操作。
抽象資料型別的定義僅僅取決於它的一組邏輯特性,而與它在計算機中的表示和實現無關。
例如,int型別的資料表示的是整數,可以進行加減乘除模等一些運算,int型別資料的這些數學特性保持不變,那麼在程式設計者來看,他們都是相同的。
因此,資料抽象的意義在於資料型別的數學抽象特性。
抽象資料型別和資料型別在實質上是一個概念,只不過是對資料型別的進一步抽象,不僅限於各種不同的計算機處理器中已經實現的資料型別,還包括為解決更為複雜的問題而由使用者自定義的複雜資料型別。
例如,在統計學生資訊時,經常使用姓名、學號、成績等資訊,我們可以定義這樣的一個抽象資料型別student,它封裝了姓名、學號、成績三個不同型別的變數,這樣操作student的變數就能夠很方便的知道這些資訊了。C語言中的結構體以及C++、java語言中的類等都是這種形式。
##通俗的講
抽象資料型別,泛指除基本資料型別以外的資料型別。
什麼叫型別?就是一類資料。基本資料型別被人做是最基本地,不可再劃分的資料,一般就是整形、浮點型、以及字元型。抽象資料型別是由若干基本資料型別歸併之後形成的一種新的資料型別,這種型別由使用者定義,功能操作比基本資料型別更多,一般包括結構體和類。其實說白了,抽象資料型別就是把一些有一定關聯的基本資料型別打包,然後當做新的資料型別使用。
至於有什麼用,這個用處可大了。比如你要實現對一個人地資訊管理,如果你只用基本資料型別那麼你需要定義很多資料型別的變數比如名字、性別、出生地、生日之類的,並且操作起來不方便。如果用抽象資料來實現就簡單了,直接把這些資訊放包裝在一個新的資料型別中,然後就可以直接定義這樣的一個變數就可以了。
C++中的類更好的實現了封裝功能,這就是類。類使得抽象資料型別的可操作性更強了,真正實現了物件導向。至於用法,只要學過C++肯定知道類地用法吧?那就是如何用。也許你現在覺得這樣的操作更麻煩了,還不如C語言簡潔的好。但是當你有一天真正的進入了公司,你才發現物件導向程式設計是多麼棒的一種程式設計方式,他可以讓你更高效的去開發。
同時告訴你,你對負責操作不是很瞭解只能證明你的程式設計數量不夠,在程式設計領域中永遠要記住一句話:鋼是打出來的。程式設計僅僅靠看書或是聽老師講解是行不通的,必須親自躬行才能真正掌握它