物件導向(Object Oriented,OO)是軟體開發方法。物件導向的概念和應用已超越了程式設計和軟體開發,擴展到如資料庫系統、互動式介面、應用結構、應用平台、分散式系統、網路管理結構、CAD技術、人工智慧等領域。物件導向是一種對現實世界理解和抽象的方法,是電腦程式設計技術發展到一定階段後的產物
推薦教程:java開發教程
概念
⑴物件。
對像是人們要進行研究的任何事物,從最簡單的整數到複雜的飛機等均可看作對象,它不僅能表示具體的事物,還能表示抽象的規則、計劃或事件。
⑵物件的狀態和行為。
物件具有狀態,一個物件用資料值來描述它的狀態。
物件還有操作,用來改變物件的狀態,物件及其操作就是物件的行為。
物件實現了資料和操作的結合,使資料和操作封裝於物件的統一體中
⑶類別。
具有相同特性(資料元素)和行為(功能)的物件的抽象就是類別。因此,對象的抽像是類,類的具體化就是對象,也可以說類的實例是對象,類其實就是一種資料型態。
類別具有屬性,它是物件的狀態的抽象,用資料結構來描述類別的屬性。
類別具有操作,它是物件的行為的抽象,以操作名稱和實作該操作的方法來描述。
⑷類別的結構。
在客觀世界中有若干類,這些類別之間有一定的結構關係。通常有兩種主要的結構關係,即一般--具體結構關係,整體--部分結構關係。
①一般--具體結構稱為分類結構,也可以說是「或」關係,或是「is a」關係。
②整體--部分結構稱為組裝結構,它們之間的關係是一種「與」關係,或是「has a」關係。
⑸訊息和方法。
物件之間進行通訊的結構叫做訊息。在物件的操作中,當一個訊息傳送給某個物件時,訊息包含接收物件執行某種操作的訊息。發送一則訊息至少要包含說明接受訊息的物件名稱、傳送給該物件的訊息名稱(即物件名稱、方法名稱)。一般也要對參數加以說明,參數可以是認識該訊息的物件所知道的變數名,或是所有物件都知道的全域變數名。
類別中操作的實作過程叫做方法,一個方法有方法名稱、傳回值、參數、方法體。
特徵
⑴物件唯一性。
每個物件都有自己唯一的標識,透過這種標識,可以找到對應的物件。在物件的整個生命期中,它的標識都不改變,不同的物件不能有相同的標識。
⑵抽象。
抽象性是指將具有一致的資料結構(屬性)和行為(操作)的物件抽象化成類別。一個類別就是這樣一種抽象,它反映了與應用相關的重要性質,而忽略其他一些無關內容。任何類別的劃分都是主觀的,但必須與具體的應用有關。
⑶繼承性。
繼承性是子類別自動共享父類別資料結構和方法的機制,這是類別之間的一種關係。在定義和實作一個類別的時候,可以在一個已經存在的類別的基礎之上來進行,把這個已經存在的類別所定義的內容當作自己的內容,並加入若干新的內容。
繼承性是物件導向程式設計語言不同於其它語言的最重要的特點,是其他語言所沒有的。
在類別層次中,子類別只繼承一個父類別的資料結構和方法,則稱為單重繼承。
在類別層次中,子類別繼承了多個父類別的資料結構和方法,則稱為多重繼承。
多重繼承,JAVA、VB、NET、Objective-C皆僅支援單繼承,注意在C 多重繼承時,需小心二義性。
在軟體開發中,類別的繼承性使所建立的軟體具有開放性、可擴充性,這是資訊組織與分類的行之有效的方法,它簡化了物件、類別的創建工作量,增加了程式碼的可重用性。
採用繼承性,提供了類別的規範的等級結構。透過類別的繼承關係,使公共的特性能夠共享,提高了軟體的重用性
⑷多態性(多形性)
多態性是指相同的操作或函數、過程可作用於多種類型的物件上並獲得不同的結果。不同的對象,收到相同訊息可以產生不同的結果,這種現象稱為多態性。
多態性允許每個物件以適合自身的方式去回應共同的訊息。
多態性增強了軟體的靈活性和重複使用性。
以上是什麼是物件導向編程的詳細內容。更多資訊請關注PHP中文網其他相關文章!