java基础知识1---面向对象及final,finally,finalize区别
1、面向對象(OOP)的特征
?抽象 :就是把現實世界中的某一方面提取出來,用程序代碼表示,抽象出來的一般叫做類或接口。
?????抽象包括兩個方面,一個數據抽象,另一個是過程抽象.?
?????過程抽象 :表示功能的操作,可理解為行為就是方法.
?????數據抽象 :表示數據類型和施加于該類型對象的操作,可理解為對象的屬性.
?
?封裝 :是對象和類概念的主要特性,是把過程和數據包圍起來,對數據的訪問只能通過已定 義的界面。封裝保證了模塊具有較好的獨立性,使得程序維護修改較為容易。如私有變量,用set,get方法獲取。
?
?繼承:是一種聯結類的層次模型,并且允許和鼓勵類的重用,提供一種明確表達共性的方法。新類繼承原始類的特性,新類可以從它的基類那里繼承方法和實例變量,并且類可以修改或增加新的方法使之更適合特殊的需要。因此可以說,繼承為了重用父類代?碼,同時為實現多態性作準備.
?多態:是指允許不同類的對象對同一消息做出響應.多態性包括參數化多態性和包含多態性. 多態性語言具有靈活/抽象/行為共享/代碼共享的優勢,很好的解決了應用程序函數同名問題.總的來說,方法的重寫,重載與動態鏈接構成多態性.java引入多態的概念。原因之一就是彌補類的單繼承帶來的功能不足.。
動態鏈接 :對于父類中定義的方法,如果子類中重寫了該方法,那么父類類型的引用將調用子類中的這個方法,這就是動態鏈接.
以上就是面向對象的基本特征。
繼承與重載:子類與父類的關系,重載方法的調用問題。
子類對象可以直接當成父類對象用,但是反過來就不行.
比如:人是父類,學生是人的子類,所以學生對象一定具備人對象的屬性,但是人對象就未必具有學生對象的特性.但是子類對象當做父類來用,將失去子類所有特性,只保留與父類同名的屬性和方法,此時可以對父類方法進行重寫。
一個類中如果定義了重載的方法,則系統在調用方法時,會根據參數的類型自動選擇調用合適的方法
2、final, finally, finalize 的區別。
?final :修飾符(關鍵字)如果一個類被聲明為final,意味著它不能再派生出新的子類,不能作為父類被繼承。因此一個類不能既被聲明為abstract的,又被聲明為final的。
將變量或方法聲明為final,可以保證它們在使用中不被改變。被聲明為搜索final的變量必須在聲明時給定初值,而在以后的引用中只能讀取,不可修改。
?被聲明為final的方法也同樣只能使用,不能重載。
?finally:再異常處理時提供 finally 塊來執行資源釋放。如果拋出一個異常,那么相匹配的catch 子句就會執行,然后控制就會進入 finally 塊(如果有的話)。
?finalize:方法名。Java 技術允許使用 finalize() 方法在垃圾收集器將對象從內存中清除出去之前做必要的清理工作。這個方法是由垃圾收集器在確定這個對象沒有被引用時對這個對象調用的。它是在 Object 類中定義的,因此所有的類都繼承了它。子類覆蓋finalize() 方法以整理系統資源或者執行其他清理工作。finalize() 方法是在垃圾收集器刪除對象之前對這個對象調用的。
?
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的java基础知识1---面向对象及final,finally,finalize区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 到底是把甲方当爸爸还是当甲方爸爸
- 下一篇: Java基础知识学习巩固2--int和I