天天看點

進入面向對象的世界:類就是代碼,對象是記憶體。

從今天開始,我們要逐漸的接觸和了解面向對象。

首先我們先了解一下抽象的意思。我不讨論理論意義上對于抽象的名詞解釋,我隻通過我的了解來描述。

1

進入面向對象的世界:類就是代碼,對象是記憶體。

int i = 7;

這行代碼非常非常地簡單,但就蘊含着抽象。抽象了什麼呢?int抽象了一個4個位元組的空間,7抽象了兩進制111。

進入面向對象的世界:類就是代碼,對象是記憶體。

public class Car

2

進入面向對象的世界:類就是代碼,對象是記憶體。

3

進入面向對象的世界:類就是代碼,對象是記憶體。

4

進入面向對象的世界:類就是代碼,對象是記憶體。

}

5

進入面向對象的世界:類就是代碼,對象是記憶體。

6

進入面向對象的世界:類就是代碼,對象是記憶體。

public class Warehouse

7

進入面向對象的世界:類就是代碼,對象是記憶體。

8

進入面向對象的世界:類就是代碼,對象是記憶體。

9

進入面向對象的世界:類就是代碼,對象是記憶體。

看上面的代碼,如果你對單詞的了解沒有歧義的話,那麼也許就能在你的大腦中映射出汽車和倉庫。瞧,這就是抽象的意義。封裝内部的具體執行細節。

是以我們先記住第一點:

抽象指的是類(Class)。

類僅僅是文字上的描述,相當于圖紙。是以我們有一份QQ汽車的設計圖紙,我們可以稱這個圖紙為類,因為他抽象了将來被生産出來的汽車所具有的所有價值展現。這份圖紙被轉到流水線後,就生産出了汽車,那麼汽車和圖紙有什麼差別呢?我認為汽車是真正消耗了社會資源的實際物品,就是說汽車是圖紙的執行個體。

是以我們記住第二點:

執行個體指的是對象(Object)。

總結一下:類就是代碼,對象是記憶體。

那為什麼我們要進入面向對象的世界呢?我們以前的C,VB等開發語言,還記得我們要背函數嗎?記不住函數,要去幫助找相關資料操作的函數。比如我要去MSDN查字元串函數。找起來還很不友善,是以我們要買書,書上對各函數作了分類:字元串、日期、數學。我們發現函數被有序的組合起來,我們學習和查找都友善的多。是以産生了類,類把相關自身資料類型的函數聚集在一起,便于我們使用。

是以第三點:

函數是無序世界,類是有序世界。

C#中所有的類型都是對象類型,類僅支援單繼承

System.Object

所有其他類型的最高類型

System.String

字元串類型

System.ValueType

值類型的基類

System.Enum

枚舉類型的基類

System.Array

所有數組類型基類

System.Delegate

所有委托類型基類

System.Exception

所有異常類型基類

類是一組資料的集合,我們将他們分類看下

資料成員

常數

字段

函數成員

方法

屬性

事件

索引器

運算符

執行個體構造函數

靜态構造函數

析構函數

類允許修飾,有類聲明修飾、通路修飾、成員修飾

本文轉自shyleoking 51CTO部落格,原文連結:http://blog.51cto.com/shyleoking/806301