OOP思想

它強調對象的「抽象」、「封裝」、「繼承」、「多態」。編程

  OOP思想淺談 收藏
07年11月27號在校內舉辦了第一次技術講座,主題是Java now and future.和以往的同主題的講座不一樣,我在講座裏面着重講了一下我對OOP思想的理解並對比了Java和C++的區別,這也是不少編程愛好者所津津樂道的話題,至於你們喜歡哪一種編程語言我我的以爲主要決定於本身的性格,當初喜歡Java也是由於其跨平臺的特色,和外向興趣普遍的我同樣,能讓生活充滿更多的樂趣和顏色。編程語言

    下面淺談下我對OOP思想的理解,OOP思想中很重要的有五點,類,對象,還有面向對象的三大特徵:繼承,多態和封裝。函數

    類:對現實世界事物的抽象表示,包括事物的狀態信息(成員變量)和行爲信息(成員方法)。咱們要讓咱們的計算機程序設計更有意思,也更有邏輯性,則咱們的程序中對事物的描敘就必須符合真實狀況,同時符合人類的思惟習慣。所以,咱們若是在計算中要描敘人這個事物,也是一類事物,咱們就必須把該事物的全部特色包含進來,用成員變量描敘人的基本屬性,如:身高,體重,年齡,性別等。這樣就能夠描敘一個「靜態」的人了,所謂靜態的意思也就是該人並不參與任何社會活動,沒有任何行爲。可是這樣並不符合現實意義,那樣咱們必須爲人添上行爲,讓他參加社會活動有本身的行爲。因此咱們須要用成員方法來描敘人的活動,如:吃飯,洗澡,睡覺等。.net

    對象:對抽象事物的具體表示,使其具備自身的特色。類比如一個大的集合,裏面的元素都有共同的特色,可是比較每一個元素又能夠發現每一個有其自身的特色,對象就是這樣,它是一個類的具體化,也是實例化,類是泛指,而對象是特指。雖然人都有身高,體重,年齡,同時有行爲有吃飯,洗澡,睡覺等,可是當具體到某我的的時候就會有不一樣,例如:老人和小孩的年齡就有不一樣,因此,從類到對象是咱們把現實事物進行計算機描敘的過程,同時也是一個從抽象到具體的過程,這很符合咱們的真實思惟邏輯。設計

    下面淺談一下面向對象的三大特徵的基本思想。對象

    多態:用一種解決方案來解決對一類問題,對於不一樣的事物解決途徑和結果不一樣。在C++中實現多態性有三種方法,分別是:虛函數,函數重載和運算符重載。這三種方法你們均可以看到咱們解決問題的初衷是同樣的,都是利用同名函數,同名的運算符號,這抽象出來也就是解決問題的方法,可是對於不一樣的事物的反應倒是不一樣的,例如:當用一個getPadNumber()方法來獲得普通自行車和雙人自行車的坐墊數量的時候,返回的結果是一個和兩個,這就是具體的事物返回的結果不一樣。blog

    繼承:讓抽象出來的事物具備本應該具備的聯繫。咱們能用類來描敘一個抽象的事物,同時能用對象來描敘具體的事物,可是這些事物都是獨立的,彼此之間沒有應該有的聯繫,這樣的孤立設計並不符合現實邏輯,讓事物之間的聯繫獲得描敘,咱們就須要繼承,例如:發明自行車的人並非一開始就發明了多人自行車,這些都是從雙輪自行車演變和發展而來,可是他們都有共同的特色,有輪子,有車架子,等等。讓咱們用繼承的關係把這兩個現實的抽象聯繫起來,這樣咱們就能設計出不孤立的類,而是和其餘類有聯繫的類。繼承

    封裝:讓抽象的事物保護自身的狀態,防止非其餘事物對其進行錯誤的狀態改變操做。咱們抽象完一個事物後,可能在特定的條件下,其自己的狀態須要改變,可是這個改變並容許其餘的事物來進行,這樣的改變只容許這個事物認同的操做域來進行,能夠是該事物自己,也能夠是它信任的其餘事物。這樣咱們就能對咱們抽象完的每一個事物進行自身數據的保護。
---------------------
做者:zyyr365
來源:CSDN
原文:https://blog.csdn.net/zyyr365/article/details/4328536
版權聲明:本文爲博主原創文章,轉載請附上博文連接!get

相關文章
相關標籤/搜索