C++用類來描述對象,類是對現(xiàn)實世界中相似事物的抽象,同是“雙輪車”的摩托車和自行車,有共同點,也有許多不同點,
類的概念
。“車”類是對摩托車、自行車、汽車等相同點和不同點的提取與抽象,如所示。類的定義分為兩個部分:數(shù)據(jù)(相當(dāng)于屬性)和對數(shù)據(jù)的操作(相當(dāng)于行為)。從程序設(shè)計的觀點來說,類就是數(shù)據(jù)類型,是用戶定義的數(shù)據(jù)類型,對象可以看成某個類的實例(某個類的變量),類和對象的關(guān)系與前面介紹的“結(jié)構(gòu)”和“結(jié)構(gòu)體變量”的關(guān)系相似,但又有不同,在本章稍后類的定義一節(jié)中后具體說明這一問題。
類是分層的
每一大類中可分成若干小類,也就是說,類是分層的,如圖8.2所示?蓪⑺械膱D形抽象成“圖形”類,該類中共同的屬性有很多,這里只取“顏色”這個屬性,對所有圖形而言,都可定義“顯示”操作。同時,“圖形”類可進一步分為“一維圖形”類、“二維圖形”類和其他類,根據(jù)形狀的不同,“一維圖形”類可進一步分為“直線”類和“折線”類,“二維圖形”類又可分為“正方形”類和“圓”類,
電腦資料
《類的概念》(http://www.msguai.com)。下層的類除了“繼承”了上層類中定義的屬性和行為外,還可增加新的屬性和行為(如“圓”類相比“二維圖形”類增加了“圓心”和“半徑”屬性,增加了“求面積”這一行為),甚至可以在下層類中重新定義上層類已定義的屬性和行為(如“直線”類、“折線類”、“正方形”類和“圓”類中都重新定義了“圖形”類中已定義的“顯示”操作)。
類和對象的關(guān)系
對象需要從屬性和行為兩個方面進行描述,類是對象的封裝。類的使用主要有以下幾個步驟:
定義類:C++中,分別用數(shù)據(jù)成員和函數(shù)成員來表現(xiàn)對象的屬性和行為。類的定義強調(diào)“信息隱藏”,將實現(xiàn)細(xì)節(jié)和不允許外部隨意訪問的部分屏蔽起來。因此,在類定義中,需要用public或private將類成員區(qū)分開(此外,還有protected型的數(shù)據(jù)成員,后面課程會有介紹),外界不能訪問程序的private成員,只能訪問public數(shù)據(jù)成員,對象間的信息傳送也只能通過public成員函數(shù),保證了對象的數(shù)據(jù)安全。
實現(xiàn)類:即進一步定義類的成員函數(shù),使各個成員函數(shù)相互配合以實現(xiàn)接口對外提供的功能,類的定義和實現(xiàn)是由類設(shè)計者完成的。
使用類:通過該類聲明一個屬于該類的變量(即對象),并調(diào)用其接口(即public型的數(shù)據(jù)成員或函數(shù)成員),這是使用者的工作。