JAVA程式員必讀:基礎篇(2)物件導向編程概念
來源:互聯網
上載者:User
如果你以前從來沒有使用物件導向語言,你需要在開始編寫JAVA代碼之前先理解這個概念。你需要理解什麼是對象、什麼是類、對象和類的關係怎樣以及使用訊息怎樣在對象之間進行通訊。本教程的前面部分將描述物件導向編程的概念,而後面的教程將教你怎樣將這個概念編成代碼。
2.1什麼是對象
對象是一些相關的變數和方法的軟體集。軟體對象經常用於模仿現實世界中我們身邊的一些對象。對象是理解物件導向技術的關鍵。你在學習之前可以看看現實生活中的對象,比如狗、桌子、電視、單車等等。你可以發現現實世界中的對象有兩個共同特徵:它們都有狀態和行為。比如狗有自己的狀態(比如名字、顏色、生育以及饑餓等等)和行為(比如搖尾巴等等)。同樣單車也有自己的狀態(比如當前檔位、兩個輪子等等)和行為(比如刹車、加速、減速以及改變檔位等等)。
而軟體對象實際上是現實世界對象的造型,因為它同樣有狀態和行為。一個軟體對象利用一個或者多個變數來維持它的狀態。變數是由使用者識別碼來命名的資料項目。軟體對象用它的方法來執行它的行為。方法是跟對象有關聯的函數(子程式)。
你可以利用軟體對象來代表現實世界中的對象。你可能想用一個動畫程式來代表現實世界中的狗,或者用可以控制電子單車的程式來代表現實世界的單車。同樣你可以使用軟體對象來造型抽象的概念,比如,事件是一個用在GUI視窗系統的公用對象,它可以代表使用者按下滑鼠按鍵或者鍵盤上的按鍵的反應。
如圖1是一個軟體對象的公用可視代表。
(圖1)
軟體對象的狀態和行為都可以用在對象中的變數和方法來表達。構造現實世界的單車的軟體對象要有指示單車的目前狀態的變數:速度為20mph,它的當前檔位為第三檔。這些變數就是我們熟知的執行個體變數,因為它們包含了用於特殊單車對象的狀態,並且在物件導向技術中,特殊的對象稱為執行個體。
如圖2所示,是作為軟體對象的單車造型。
(圖2)
2.1什麼是對象
除了變數,軟體單車同樣有用於刹車、改變踏板步調以及改變檔位的方法。這些方法就是熟知的執行個體方法因為它們檢查或者改變特殊單車執行個體的狀態。
以上的對象圖顯示了對象的變數組成了圓心部分。方法處在變數的四周並且在程式中從其它對象隱藏了對象的核心。用保護方法的方法來封裝對象的變數稱為封裝。這個對象圖就是對象理想的標記法,也是物件導向系統設計者努力的最後目標。然而這並不是全部的內容。通常,出於某種現實的理由,對象可能暴露它的一些變數或者隱藏一些方法。在JAVA程式設計語言中,一個對象可以為變數和方法指定四種訪問等級中的一種。這個訪問等級決定哪個對象和類可以訪問變數或者方法。在JAVA中訪問變數和方法可以轉換為控制訪問類的成員函數。封裝相關的變數和方法到一個簡潔的軟體集是一個簡單而且強有力的方法,它為軟體開發人員提供了兩個主要好處: