對java語言"完全"面向對象的理解

java語言是面向對象的語言,也可以表示爲java是面向類和接口編程的語言,就我而言,我個人認爲
java裏面static方法和引用不是面向對象的,java裏面的引用容易理解就相當於c語言的指針,java裏面的對象就是指針,只是換了個名字而已,只是操作起來效率沒有c語言中指針高.
而對於static方法,我們在使用static方法時,由於不存在this,所以java不是通過向對象發送消息
的方式來完成,這樣理解的話,我認爲java裏面的static方法,並不是完全面向對象的.
Java是非常“面向對象”的語言(尤其和現在同樣非常火的C++相比,Java是單根繼承結構),static
方法,卻不是“面向對象”的。因爲它們具有全局函數的語義,使用static方法時,由於不存在this,
所以不是通過“向對象發送消息”的方式來完成的。所以我認爲,因爲存在static方法,Java並不是完全的“面向對象”語言。如果一段代碼中出現了太多的static方法,那就該重新考慮自己的設計.

Java是單繼承,但它有接口(interface),解決C++裏面多重繼承帶來的問題.main方法必須是static,
因爲只有使用main方法是入口,也就是說,jvm要執行,就必須從 main方法開始,static可以不用創建實例就可以調用該方法。那麼,JVM就可以在沒有初始化這個類的任何實例前就調用main.所以這個不是OO設計的問題,因爲一個程序肯定要有入口.static一般是向其他類提供工具,所以經常把許多static函數封裝到一個類裏面,比如說常用的System.out.println....等都是封裝好的靜態方法,用來提供一些常用功能,避免自己的重複實現.

綜上所述,對java裏會出現一些非面向對象的東西和一些非他所宣傳的東西,例如指針,實際上是
存在的,只是換了個名字而已,叫引用,並且操作不像C那麼自由了,而且效率也沒有C高,之前從`博客上面看到然有部分人對這個的理解,然後自己拓展開來談一下自己的理解.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章