面向對象基本概念
面向對象是一種新興的程序設計方法,或者說是一種新的程序設計規范,其基本思想是使用對象、類、繼承、封裝、消息等基本概念來進行程序設計。它是從現實世界客觀存在的事物(即對象)出發來構造軟件系統的,並且在系統構造中盡可能運用人類的自然思維方式。
對象:對象是系統中用來描述客觀事物的一個實體,它是構成系統的一個基本單位。對象由屬性和對屬性進行操作的一組服務組成。
類:把眾多是事物歸納、劃分成一些是人類在認識客觀世界時經常采用的思維方式。分類的原則是抽象的。類是具有相同屬性和服務的一組對象的集合,它為屬於該類的所有對象提供了統一的抽象描述,其內部包括屬性和服務兩個主要部分。在面向對象編程語言中,類是一個獨立的程序單位,它應該有一個類名並包括屬性說明和服務說明兩個主要部分。類與對象的關系就如同模具與鑄件的關系,類的實例化的結果是對象,而對一類對象的抽象就是類。
消息:消息就是向對象發出的服務請求,它包括:提供服務的對象標識、服務標識、輸入信息、回答信息。服務通常被稱為方法或函數。
面向對象的基本特征:
1、封裝性:把對象的屬性和服務結合成一個獨立的相同單位,並盡可能隱藏對象的內部細節。
2、繼承性:特殊類的對象擁有其一般類的全部屬性與服務,稱為特殊類對一般類的繼承。例如:客輪可以繼承於輪船類、大人可以繼承於人類。此外,一個類可以從多個一般類中繼承屬性和服務,稱為多繼承。在java中,通常稱一般類為父類(SuperClass,超類),特殊類為子類(SubClass)。
3、多態性:指一般類中定義的屬性或服務被特殊類繼承之後,可以具有不同的數據類型或表現出不同的行為,這使得同一屬性或者服務在一般類及其各個特殊類中具有不同的語義。例如:“幾何圖形”的“繪圖”方法,“橢圓”和“多邊形”都是“幾何圖形”的子類,其“繪圖”方法功能不同。