1.1 什麼是物件導向程式設計?
物件導向程式設計是一種新的程式設計範型.這種範型的主要特徵是:
程式=對象+訊息
物件導向程式的基本元素是對象。
主要結構特點是:
第一, 程式一般由類的定義和類的使用兩部分組成;
第二, 程式中的一切操作都是通過向對象發送訊息來實現的。
1.2 什麼是對象?什麼是類?對象與類之間的關係是什麼?
對象是描述其屬性的資料以及對這些資料施加的一組操作封裝在一起構成的統一體。
類就是具有相同的資料和相同的操作的一組對象的集合,也就是說,類是對具有相同資料結構和相同操作的一類對象的描述。
類和對象之間的關係是抽象和具體的關係。類是多個對象進行綜合抽象的結果,一個對象是類的一個執行個體。
1.3 現實世界中的對象有哪些特徵?請舉例說明。
現實世界中的對象具有以下特徵:
1) 每一個對象必須有一個名字以區別於其他對象;
2) 用屬性來描述對象的某些特徵;
3) 有一組操作,每組操作決定對象的一種行為;
4) 對象的行為可以分為兩類:一類是作用於自身的行為,另一類是作用於其他對象的行為。
例如一個教師是一個對象。每個教師對象有自己的名字來和別的教師區別。教師具有編號,姓名,年齡,職稱,專業等屬性。教師擁有走路,吃飯,授課等行為操作。走路,吃飯是作用於自身的行為,授課是作用於其他對象的行為。
1.4 什麼是訊息?訊息具有什麼性質?
一個對象向另一個對象發出的請求成為“訊息”。
訊息具有以下3個性質:
1) 同一個對象可以接收不同形式的多個訊息,做出不同的相應;
2) 相同形式的訊息可以傳遞給不同的對象,所做出的響應可以是不同的;
3) 對訊息的響應並不是必須的,對象可以響應訊息,也可以不響應。
1.5 什麼是抽象和封裝?請舉例說明。
抽象是將有關事物的共性歸納、集中的過程。
例如:把所有具有大學生學籍的人歸為一類,成為“大學生”,這就是一個抽象。
封裝是指把資料和實現操作的代碼集中起來放在對象內部,並儘可能隱藏對象的內部細節。
例如:每一台洗衣機都有出廠日期、機器編號等屬性,也有啟動、暫停、選擇等操作。人們在使用洗衣機的時候只需要按下對應的按鈕,而不用關心具體的內部實現。這就是封裝。
1.6 什麼是繼承?請舉例說明。
繼承就是允許衍生類別使用基類的資料和操作,同時,衍生類別還可以增加新的操作和資料。
例如:哺乳動物是一種熱血、有毛髮、用奶哺育幼崽的動物; 狗是有犬牙、食肉、特定的骨骼結構、群居的哺乳動物。 狗就繼承了哺乳動物。
1.7 若類之間具有繼承關係,則他們之間具有什麼特徵?
若類之間具有繼承關係,則他們之間具有下列幾個特徵:
1) 類間具有共用特徵(包括資料和作業碼的共用);
2) 類間具有差別或新增部分(包括非共用的資料和作業碼);
3) 類具有階層。
1.8 什麼是單繼承、多繼承?請舉例說明。
單繼承是指每個衍生類別只直接繼承了一個基類的特徵。例如狗繼承自哺乳動物。
多繼承是指多個基類派生出一個衍生類別的繼承關係。比如玩具車同時繼承自玩具和車。
1.9 什麼是多態?請舉例說明。
多態是指不同的對象收到相同的訊息時執行不同的操作。
例如,有一個視窗類別對象,還有一個棋子類對象。當我們發出“移動”訊息時,兩個對象的行為不同。
1.10 物件導向程式設計的主要優點是什嗎?
- 可提高程式的重用性;
- 可控製程序的複雜性;
- 可改善程式的可維護性;
- 能夠更好地支援大型程式設計;
- 增強了電腦處理資訊的範圍;
能夠很好地適應新的硬體環境。