面向对象之个人见解
?
?? 面向對象之個人見解
星期三聽了大家的討論,讓我對面向對象的概念有的更深刻的認識。但也有不同的想法,從低級語言到高級語言的變化是適應“懶人”的需求的,每一種語言的出現必須就有新技術的加入,要不就沒有什么實際意義。面向對象語言出現是在面向對象這種技術的支撐下出現的。機器語言難讀難懂,出現了匯編語言,匯編語言比機器語言更容易理解,但是可擴展性移植性很差,各種指令不符合人們的生活習慣,于是出現了高級語言c、pascal、fortran等,讓程序員以接近問題本質的方式去思考和描述問題。隨著軟件規模的擴大,維護成本的增加,軟件危機的出現,人們開始尋找新的思維方式,于是面向對象技術出現了,相關的語言有c++、Delphi、 java 、ruby等。
我把我想要說的總結為以下三點:
第一點:面向對象技術是未來的趨勢,是對事物認知的一種方式。
在think in java的第二章說Everything is an Object,即萬物皆對象。從細小的分子到巨大的天體這些實物,到人的思想、感情、態度這些無形的東西,都是對象,是人對客觀世界的認知。我認為這是最基本的,如果不能理解,就無法再繼續進行下去了。
第二點:無論是靜止的還是運動的對象,都具有屬性和方法。如果說那個對象沒有方法或屬性,那是因為你沒用到或者沒發現。曾經聽一個老師說,對象是對客觀事物的認識,類是對對象的抽象,而接口是對對象的二次抽象。那天在討論中,做c++的好像不怎么同意這個觀點,說黑板擦就沒行為。后來想想也許跟具體的語言有關,畢竟c++和java還是有區別的,java是全面向對象的語言,而c++是c的變種,不是完全的面向對象語言(說的不太正確,java的老本還是c呢 ,呵呵~)。
?
最近看了《超越java---探討程序設計語言的未來》英文《Beyond java》一書,讓我更深刻了解程序設計的過去、現在和未來。講了c++,java各自的優劣,并討論了ruby的設計思想及其它的框架ruby on rails。分析了當今的主要流行語言,說面向對象是當今主導的技術,但并不代表著未來不會不回歸到面向過程的編程當中去。于是產生了我自己的觀點
第三點:不論面向對象還是面向過程,適合實際開發的需要就行。這點在那天的討論中很明確,劉剛也講的很清楚。
還有一點我有不同的看法,我對多態的理解是這樣的,多態即多種表態,同一種事物在不同壞境下的不同形態。在java中分方法的重寫Overriding和重載Overloading兩種。記得老師曾經是這么舉例的,說你小的時候你沒見過馬,也沒聽說過馬,不知道馬這個動物的概念,有一天你爸爸牽了一匹馬來,你爸爸讓你去喂馬,你不知道用什么喂,你喂過狗,所以你就拿個骨頭去喂了,你對著馬說馬你吃你吃啊,它怎么都不會吃,你也見過牛也喂過牛,你嘗試著拿青草去,對著馬說你吃吃啊,它就吃了,你很疑惑不是!其實這就是多態。你并不知道它是馬,你把它當狗看了,所以你喂骨頭,但是它并不吃骨頭(它沒有吃骨頭的方法,你調不了),你把它當??戳?#xff0c;你喂它草,它吃了(是它有吃草的這個方法給你調)。具這個例子的目的是說,多態重在看待事物的形態,而不在說它調什么方法做出的反應。
轉載于:https://www.cnblogs.com/alaricblog/p/3278346.html
總結
- 上一篇: vb光环褪去java、c/c++/c#成
- 下一篇: [置顶] 删除:大数据取舍之道读书笔记