java面向對象

Java被稱爲是一種更"純粹"的面向對象程序設計語言。在java中幾乎一切都是對象。
Alan Kay(艾倫凱):天才計算機大師阿倫凱,他是Smalltalk面向對象編程環境語言的發明人之一,
也是面向對象編程思想的創始人之一,他還是筆記本電腦最早的構想者和現代Windows GUI的最初嘗試者。
Alan Kay(艾倫凱)總結了面向對象的程序設計五個基本特徵:
1)萬物皆對象。
2)程序是對象的集合,它們通過發送消息來告知彼此所要做的。
3)每個對象都有自己郵其他對象所構成的存儲。
4)每個對象都擁有其類型。
5)某一特定類型的所有對象都可以接收同樣的消息。
對象的創建和生命週期:Java內部採用動態內存分配方式,每當想要創建新對象是,就要使用new關鍵字來構建此對象的動態實例。
生命週期,通俗講就是從生到死的過程,java內部提供了被稱爲垃圾回收機制,她可以自動發現對象何時不再被使用,並繼續銷燬它。

更重要的是垃圾回收器可以避免暗藏的內存泄漏問題。垃圾回收器知道對象何時不再被使用,並自動釋放對象佔用的內存。

1.java面向對象特徵有哪些?
答:衆所周知,Java中的面向對象的三大基本特徵是:【封裝】,【繼承】,多態】
封裝: 對象有一個明確的邊界,對象各司其職,
1.1)屬性(私有private,提供set,get方法)。
1.2)方法:公開或私有public、private。
1.3)方法聲明(公開),方法實現(隱藏)。
繼承:
1.1):子類繼承父類的共性,例如:狗繼承動物(dog extends animal{}),關鍵字extends.
1.2):在java中一個類最多最能有一個直接的父類,單繼承(簡單性,樹狀結構),c++中是單繼承。
1.3):java中藥實現多繼承,需要通過接口來實現。
1.4):父類中所有的屬性和方法都能繼承給子類,私有方法除外。
多態:
1.1):父類的引用指向子類的實例,例如:Animal a = new Dog();
原則:對象類型不變,引用調用其類型中定義的方法。
2.接口和抽象類的區別是什麼?
答:接口是公開的,裏面不能有私有的方法或變量,是用於讓別人使用的,
而抽象類是可以有私有方法或私有變量的,另外,實現接口的一定要實現接口裏定義的所有方法,
而實現抽象類可以有選擇地重寫需要用到的方法,一般的應用裏,最頂級的是接口,
然後是抽象類實現接口,最後纔到具體類實現。還有,接口可以實現多重繼承,而一個類只能繼承一個超類,
但可以通過繼承多個接口實現多重繼承,
3.final,finally,finalize的區別?
答:
final—修飾符(關鍵字)如果一個類被聲明爲final,意味着它不能再派生出新的子類,
不能作爲父類被繼承。因此一個類不能既被聲明爲 abstract的,又被聲明爲final的。
將變量或方法聲明爲final,可以保證它們在使用中不被改變。
被聲明爲final的變量必須在聲明時給定初值,而在以後的引用中只能讀取,不可修改。
被聲明爲final的方法也同樣只能使用,不能重載。 
finally—再異常處理時提供 finally 塊來執行任何清除操作。如果拋出一個異常,那麼相匹配的 catch 子句就會執行,然後控制就會進入 finally 塊(如果有的話)。 
finalize—方法名。Java 技術允許使用 finalize() 方法在垃圾收集器將對象從內存中清除出去之前做必要的清理工作。
這個方法是由垃圾收集器在確定這個對象沒有被引用時對這個對象調用的。它是在 Object 類中定義的,
因此所有的類都繼承了它。子類覆蓋 finalize() 方法以整理系統資源或者執行其他清理工作。
finalize() 方法是在垃圾收集器刪除對象之前對這個對象調用的。

發佈了75 篇原創文章 · 獲贊 9 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章