官术网_书友最值得收藏!

2.2.2 面向對象的基本概念

系統開發是一個問題求解的過程,開發軟件系統的目的就是解決某個(或某一組)特定的問題領域中的問題。所謂問題領域,就是指軟件系統所模擬的真實世界中的系統,如銀行的自動存取款系統、學校的學籍管理系統、制造企業的生產管理系統等。

1.對象

對象是指要研究的任何事物。從一輛車到一個車庫,從一條信息到一個數據庫,甚至航天飛機或空間站都可看作對象。對象不僅能表示有形的實體,也能表示無形的(抽象的)規則、計劃或事件。對象是由數據(描述事物的屬性)和作用于數據的操作(體現事物的行為)構成的一個獨立封裝體。從程序設計者的角度看,對象是一個程序模塊;從用戶的角度看,對象為他們提供相應的功能。對對象的操作通常稱為方法。一個對象請求另一個對象為其服務的方式是發送消息。

2.類

類是對象的模板,即類是對一組有相同數據和相同操作的對象的定義,一個類所包含的方法和數據描述一組對象的共同屬性和行為。類是在對象之上的抽象;對象則是類的具體化,是類的實例,類的層次圖如圖2-2所示。

圖2-2 類的層次圖

3.消息

消息是對象之間進行通信的一種規格說明,其一般由3個部分組成,即接收消息的對象、消息名及傳遞的數據。

4.封裝

封裝是一種信息隱蔽技術,它體現為類的說明,是對象的重要特性。封裝是將數據和加工該數據的方法(函數)封裝為一個整體,以實現獨立性很強的模塊功能,使用戶只能見到對象的外部特性(對象能接收哪些消息,具有哪些處理能力),而無法知道對象的內部特性(保存內部狀態的私有數據和實現加工能力的算法)。封裝的目的在于把對象的設計者和對象的使用者分開,使用者不必知曉行為實現的細節,只需用設計者提供的消息來訪問該對象。

封裝、繼承性和多態性

5.繼承性

繼承性是子類自動共享父類數據和方法的機制,它由類的派生功能體現。一個類可直接繼承其他類的全部描述,還可修改和擴充。繼承具有傳遞性。繼承分為單繼承(一個子類只有一個父類)和多重繼承(一個子類有多個父類)。類的對象是各自封閉的,如果沒有繼承性機制,則類的對象中的數據、方法就會出現大量重復。繼承不僅支持系統的可重用性,還促進系統的可擴充性。

6.多態性

多態性對象可根據所接收的消息做出動作。同一消息被不同的對象接收時可產生完全不同的行動,這種現象稱為多態性。利用多態性,用戶可發送一個通用消息,而將所有的實現細節都留給接收消息的對象自行決定,如此,同一消息即可調用不同的方法。例如,Print消息被發送給一張圖或表時調用的打印方法與將同樣的Print消息發送給一份正文文件而調用的打印方法完全不同。多態性的實現會受到繼承性的支持,利用類繼承的層次關系,把具有通用功能的協議存放在類層次中盡可能高的地方,而將實現這一功能的不同方法置于較低層次,這樣,在這些低層次上生成的對象就能給通用消息以不同的響應。在面向對象編程語言(Object-Oriented Programming Language,OOPL)中可通過在派生類中重定義基類函數(定義為重載函數或虛函數)來實現多態性。

主站蜘蛛池模板: 昭觉县| 宜川县| 如皋市| 武鸣县| 全南县| 岐山县| 洛隆县| 招远市| 泰和县| 资源县| 南皮县| 云安县| 宁晋县| 田阳县| 洛南县| 当涂县| 永兴县| 娄烦县| 库车县| 宁远县| 静海县| 兰坪| 祥云县| 凤山市| 民勤县| 吉木萨尔县| 平度市| 齐河县| 大余县| 博爱县| 涟源市| 平阴县| 昆山市| 屯留县| 栾城县| 雅安市| 册亨县| 钟山县| 阿克| 大埔区| 石棉县|