什麼是對象

面向對象的編程的一個基本原理 - 隱藏內部狀態和要求的所有交互通過對象的方法被稱爲數據封裝來執行。

翻譯自ORACLE Java Tutorials –What Is an Object?

  • 對象是理解面向對象技術的關鍵。 現在看看,你會發現很多真實世界的例子:你的狗,你的桌子,你的電視機,你的自行車。

  • 現實世界的對象共有兩個特徵:它們都有狀態和行爲。 狗有狀態(名稱,顏色,品種,飢餓)和行爲(吠叫,抓取,搖擺尾巴)。 自行車還具有狀態(當前檔位,當前踏板節奏,當前速度)和行爲(改變檔位,改變踏板節奏,施加剎車)。 識別現實世界對象的狀態和行爲是開始面向對象編程思考的好方法。

  • 現在要花一點時間來觀察你眼前的現實世界中的物體。 對於你看到的每個對象,問自己兩個問題:“這個對象可能在哪些狀態?” 和“該對象執行什麼可能的行爲?”。 確保寫下你的觀察。當你這樣做,你會注意到,現實世界的對象在複雜中變化。你的臺式電腦燈可能只有兩種可能的狀態(開啓和關閉)和兩種可能的行爲(打開,關閉),但你的臺式電臺可能具有其他狀態(開,關,當前音量,當前電臺)和行爲(打開 ,關閉,增加音量,減小音量,尋找,掃描和調諧)。 你還可能會注意到,一些對象反過來也將包含其他對象。 這些現實世界的觀察全部轉化爲面向對象編程的世界。

(圖)

  • 軟件對象在概念上類似於現實世界對象:它們也包括狀態和相關行爲。 對象將其狀態存儲在字段(某些編程語言中的變量)中,並通過方法(某些編程語言中的函數)公開其行爲。方法(Methods )對對象的內部狀態進行操作,並作爲對象同對象通信的主要機制。

    面向對象的編程的一個基本原理 - 隱藏內部狀態和要求的所有交互通過對象的方法被稱爲數據封裝來執行。

  • 考慮一輛自行車,例如:

(圖)

  • 通過歸因於狀態(當前速度,當前踏板節奏和當前檔位),並提供改變狀態的方法,該對象仍然控制外部世界如何被允許使用它。 例如,如果自行車只有6檔,則改變齒輪的方法可以拒絕小於1或大於6的任何值。

將代碼捆綁到各個軟件對象中提供了許多好處,包括:

  1. 模塊化:
    對象的源代碼可以與其他對象的源代碼獨立編寫和維護。 一旦創建,一個對象可以很容易地傳遞到系統內部。
  2. 信息隱藏:
    僅通過與對象的方法進行交互,其內部實現的細節將從外部世界隱藏起來。

  3. 代碼重用:
    如果對象已經存在(也許由另一個軟件開發人員編寫),你可以在程序中使用該對象。 這允許專家實現/測試/調試(implement/test/debug)複雜的,任務特定的對象,然後你可以信任地在自己的代碼中運行他們。

  4. 可插拔性和調試(Pluggability and debugging)簡便性:
    如果特定的對象變得有問題,您可以將其從應用程序中刪除,並插入不同的對象作爲替換。 這類似於在現實世界中修復機械問題。 如果螺栓斷裂,則更換它,而不是整個機器。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章