前面說到計算機是如何在記憶體中儲存程式執行時資料的,這裡說的資料抽象,則是允許資料的使用者將資料集視為一種抽象的工具來訪問,它稱為資料結構。高階程式語言所提供的技術使得程式設計師能夠表示演算法,使得所操作的資料感覺好像並不是按照乙個個單元在記憶體中存放的,這種高階語言所支援的資料結構稱之為基本結構。將基本結構進行組裝,形成更複雜的資料結構,現在物件導向語言還支援類這中自定義資料結構。
資料結構基礎:
陣列:同構陣列,異構陣列。
表,棧,佇列,樹,etc。
抽象:計算機的記憶體就是簡單的順序組織成一組可定址的儲存單元,每個單元8
位,也就是
1byte
。那麼我們所說的陣列,表等資料結構想要儲存在計算機記憶體中,那麼就要進行模擬,用演算法模擬出這些資料結構的意義,使得資訊以一種更好的便利形式(適合的資料結構)進行儲存,便於使用者訪問。
靜態結構與動態結構:就是說該模擬出的資料結構,其大小是否固定。
指標:資料總要存檔到記憶體的儲存單元中的,儲存資料的記憶體位址就是該資料的指標。個人考慮下:指標就是資料的記憶體位址,指標指向一種資料結構的記憶體內容時,就已經指定了指標的指向資料型別,所以,給定乙個指標時,就知道了記憶體位址,和記憶體位址裡是什麼資料,是不是呢?。。。。
資料結構的實現:
真要去實現這些陣列,表,棧,數等資料結構,還是很複雜的,大學裡有一本書「資料結構」,整本書就是講如何實現這些資料結構,並實現資料結構上的操作。這裡不再講述,後面還有一節,是以乙個簡單的實用案例去講解如何選擇並構建乙個資料結構,完成功能需求。
定製的資料型別:
程式語言,除了提供基本資料型別外,再除了我們模擬資料結構外,還提供了一種稱為「使用者自定義資料型別」的特性,去幫助程式設計師快速的構建合適的資料結構,然而這種使用者自定義資料型別僅僅是允許程式設計師定義乙個新的儲存系統,並沒有提供對這些結構的資料進行處理的操作。為了可以操作使用者自定義資料型別裡的資料,進而又有了抽象資料型別,其實就是在使用者自定義資料型別的基礎上,在資料結構裡增加了「資料處理操作」。
類和物件:
這裡完全可以說「類」就是「抽象資料型別」,物件就是類的例項變數。有了類這種新的資料結構,我們並不能說它就是物件導向了,因為在此之前,完全可以人為的模擬出類這種資料結構。應用類的封裝的特性,加上繼承,多型,我們才能說,這是物件導向的開發方式。
後面還說到機器語言中的指標,如果對程式執行的過程很感興趣,那麼可以看看嘍,沒怎麼看。
物件導向 八 抽象類
抽象類 用abstract關鍵字宣告的類為抽象類 很多具有相同特徵和行為的物件可以抽象為乙個類 很多具有相同特徵和行為的類可以抽象為乙個抽象類 1 抽象類可以沒有抽象方法,有抽象方法的類必須是抽象類 2 非抽象類繼承抽象類必須實現所有抽象方法 3 抽象類可以繼承抽象類,可以不實現父類抽象方法 4 抽...
C 資料抽象
資料抽象是指,只向外界提供關鍵資訊,並隱藏其後台的實現細節,即只表現必要的資訊而不呈現細節。資料抽象是一種依賴於介面和實現分離的程式設計 設計 技術。在之後,我們可能接觸api呼叫,介面,就是類似這些概念。在 c 中,我們使用類來定義我們自己的抽象資料型別 adt 您可以使用類 ostream 的 ...
c 資料抽象
比如說一架飛機,我們知道它會飛,但是怎麼飛 飛行原理我們並不清楚。因此,我們可以說飛機把它的內部實現和外部介面分離開了,我們無需知道它的內部實現原理,直接通過它的外部介面 機票 就可以登機起飛。就 c 程式設計而言,c 類為資料抽象提供了可能。它們向外界提供了大量用於操作物件資料的公共方法,也就是說...