在UML中,了解到了面向對象,所以對面向對象有個初步的認識,為以后能夠更加方便的理解面向對象打下一個好的基
在UML中,了解到了面向對象,所以對面向對象有個初步的認識,為以后能夠更加方便的理解面向對象打下一個好的基礎。
抽象、封裝、繼承和多態,這是面向對象技術的四大基本特征,也是面向對象程序設計思想的組成。正是這些特征,使得程序的安全性、可靠性和可重用性得到保證,并且經過發展,面向對象的思想應用范圍更加廣泛,不光是軟件,在硬件、人工智能、分布式計算、操作系統等領域的應用也越來越重要。
抽象
抽象可以忽略事物中與當前目標無關的非本質特征、強調與當前目標有關的特征。比如地球儀,我們的目標是通過地球儀來認識地球的全貌,而不考慮地球儀上的部分與地球對應部分的比例是多少。這只是一個地球的模型,抽象的模型越簡單、展露的特點越少,模型就越通用。我們通過觀察地球儀,可以找到大家公認的七大洲四大洋,并不一定要知道每個大洲或大洋的具體模樣,在地球儀上都有,隨便一看就可以分辨出來。
抽象也可以對信息進行分類處理,將對象按照一定的標準進行劃分,實現抽象模型的層次結構,更加通用和易處理。這樣,抽象出來的類就為對象的重用提供了保障。
封裝
把對象的狀態和行為綁到一起的機制,使對象形成一個獨立的整體,并且盡可能的隱藏對象的內部細節。封裝的信息屏蔽作用反應了事物的相對獨立性,幫助保護數據的完整性。綁定有兩個含義:一時把對象的全部狀態和行為結合在一起,形成一個不可分割的整體。對象的私有屬性只能夠由對象的行為來修改和讀取;二是盡可能隱蔽對象的內部細節,與外界的聯系只能通過外部接口來實現。封裝的結果是使對象以外的部分不能隨意更改對象的內部屬性或狀態,可以通過公共訪問控制器來控制對象封裝了的屬性或狀態的改變。
在面向對象的程序設計中,不能一味的限制對象的屬性被外部直接讀取,否則將增加很多無用的操作,要對對象的屬性進行分析后再設置。
繼承
各種事物之間不光有它們的共性,還有各個事物自己的特性,如果忽略了事物的特性,那么世界就會變得一層不變,失去了特色的精彩世界。事物的各自的特色和個性是這個層次的世界穩固的原因,這些特色也是來區別事物共性的部分,相輔相成。
與抽象對比,抽象是把事物間的特性舍棄,抽象出事物間的共性成為一個類;而繼承則是提取了事物間的不同特性形成的多個類,這個類具有前一個類的全部特征,是前一個類的子集,形成了一個層次的結構。這樣就可以看出,繼承和抽象是兩個相逆的過程,抽象是從多個對象中抽象出來了共性的類,是一個由多到少的過程;繼承則是從對象類中分層為多個具有自己特性的子類,是一個由少到多的過程。
特別的,繼承意味著“自動擁有”,即在特殊類中不必重新對已經存在一般類中的所定義過的屬性和行為進行定義,而是特殊類自動的,隱含的擁有其一般類的屬性和行為,且繼承后這些屬性和行為都是自己確實存在的。一般類稱為基類,特殊類稱為派生類。以上圖為例,小學生和中學生,大學生,研究生這四個特殊類是學生類這個一般類的子類,也是從學生類中繼承來的新類,它們自動的擁有了所有屬于學生類的屬性和方法,而同時它們又有自己的特性,不用再重新定義在學生類中已經定義過的屬性和方法。學生類是基類,小學生等類是派生類。
繼承在面向對象軟件的開發過程中有如下目的,或者可以說是優勢:1.對類的描述更加簡潔;2.能夠重用和擴展現有類庫資源;3.是軟件易于維護和修改。
多態
多態是指兩個或多個屬于不同類的對象,對于同一個消息或方法調用所作出的不同相應的能力。在面向對象的程序設計中,多態性是指在兩個或多個屬于不同類的同一函數名對應于多個具有相似功能的不同函數,可以使用相同的調用方式來調用這些具有不同功能的同名函數。這個可以這樣理解,在一個圖形的基類中有一個方法是畫圖,派生類矩形和派生類橢圓中也有畫圖的方法,但是通過同一個畫圖動作,矩形類畫出來的圖形是矩形,橢圓中畫圖畫出來的是橢圓。
繼承性和多態性的結合,實現了軟件的個性化設計。面向對象中的抽象和繼承更加重要,對面向對象的理解非常有幫助,當對面向對象陌生的時候可以以這兩個為突破點,全面理解面向對象。
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com