JAVA初學:關於“面對對象”的一些理解與感悟

       從C語言開始接觸編程,“面向過程”的程序設計思想已經深深地刻在了腦海中。凡着手一個問題,必會不由自主地把它給分成幾步,考慮到每一個數據、每一步要得到的結果,剖析其中的邏輯結構。至此應該也算是入了門,但是未曾做過一些比較大的程序,對C/C++的理解還停留在比較淺薄的層次。

       剛開始接觸JAVA時也總是寫得一團糟。因爲沒有“面對對象”的思想,總是把JAVA當作C語言來寫,而且也理解不透對象的“實例化”以及衆多實用對象(如文件流、監聽器等)的使用方法。直到自己獨立做了一箇中小型的程序,其中涉及了多個類、窗口還有多線程等東西,漸漸地對“面對對象”的思想有了些瞭解。

       當我們打開了編譯器,就像是打開了一個新世界的大門,這裏各種各樣的東西我們都稱之爲”對象“。而我們要做的就是:

       1、就是先給這個世界”下定義“——什麼是貓,什麼是狗?貓會幹什麼?狗呢?它們的共同點是什麼?也就是寫好每一個類的類體,包括數據(屬性)、構造函數(基因)和方  法(行爲)等。

       2、把他們”實例化“——”定義“僅僅是一個概念而已,並不是實際存在的。正如你說這個世界裏有貓這種動物,它有毛髮會跑會叫,但是在你把它“實例化”之前,它只是存在於你腦海中的一個概念,一個畫稿上的設計圖。 這一步要做的就是把他們創造出來,這隻貓叫小黑,皮毛是黃色的,跑的速度是3米每秒,會“喵喵喵”地叫;那隻貓叫呆瓜,皮毛是灰色的,跑的速度是1米每秒,也會“喵喵”地叫……這樣他們才活蹦亂跳地“誕生了”。

       3、在函數中指示他們做一些事情——比如我讓小黑和呆瓜都叫兩聲聽聽,就可以通過他們的名字加方法名讓他們去完成這個任務而完全不用管他們到底是怎麼叫出聲音來的,是先讓聲帶震動發出聲音,然後張大嘴巴讓聲音跑出來還是先張大嘴巴再讓聲帶振動發聲?我不用操這心,它們自己知道怎麼叫。正如馬士兵老師所說“面向過程和麪向對象,就好比開車,面對過程開車時你要做的是想好先點火再打轉向、然後踩下剎車放下手剎什麼的一步一步該怎麼辦,而面對對象就是我只要對車說我要開車,它自己就會替你完成這一系列動作”。(馬士兵老師的坦克大戰相關視頻讓我收益匪淺)

       

       其實這中間都離不開邏輯設計,有時候類與類之間需要相互調用,方法會有一些交叉,個人感覺這是最困難的部分,目前還沒有較爲深刻的體會。此外,JAVA本身也提供了非常多的類定義,需要用的時候只要把他們“實例化”就可以使用了,特別方便。多讀多寫。

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