您好,登錄后才能下訂單哦!
這篇文章主要講解了“Java對象的知識點有哪些”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Java對象的知識點有哪些”吧!
1、問題的復雜性直接取決于抽象的類型和質量,同一個問題,如果抽象的方法不同或質量不同,解決時的復雜性可能有很大差距
2、面向對象思想的實質是:程序可以通過添加新類型的對象使自身適用于某個特定問題
3、面向對象程序設計方式的五個基本特性(最初來自smalltalk)
a、萬物皆為對象/Everything is an object.
b、程序是對象的集合,它們彼此通過發送消息來調用對方/A program is a bunch of objects telling each other what to do by sending messages.
c、每個對象都擁有由其它對象所構成的存儲/Each object has its own memory made up of other objects.
d、每個對象都擁有其類型(type)/Every object has a type.
e、某一個特定類型的所有對象都可以接收(receive)同樣的消息/All objects of a particular type can receive the same messages
[@more@]
4、類:具有相同特性(數據元素)和行為(功能)的對象集合。
5、接口定義了你能夠對某一特定對象發出的請求
6、對象應被看作服務提供者
7、訪問控制的原因:
a、讓客戶端程序員(類消費者)無法觸及他們不應該觸及的部分
b、允許庫設計者(類創建者)可以改變類內部的工作方式而不用擔心是否會影響到客戶端程序員
8、三個訪問指定詞(access specifier):public、private、protected
9、public:任何人都可以使用;
private:除了類創建者和類的內部方法外,任何人都不能訪問;
protected:與private類似,差別在于繼承類可以訪問父類的protected成員,但不能訪問private成員;
還有一種缺省訪問權限為package,此權限下,類可以訪問在同一個包中的其它類成員,但是在包外,這些成員如同private一樣
10、試圖訪問private成員,會得到編譯時錯誤
11、組合,即使用現有類來合成新的類;聚合,即動態發生的組合;
12、建立新類時,應優先考慮組合,之后才是繼承
13、繼承一個類而不去重新定義繼承到的方法(即不去重載),那么在基類接口中的方法將會被直接繼承到導出類中
14、子類與父類相比,沒有添加新方法,則稱二者關系為"is-a";如果添加了新方法,則為"is-like-a"
15、非面向對象編譯器產生函數調用都是使用前期綁定的,即鏈接器將這個調用解析到將要被執行代碼的絕對地址;而在OOP中,程序直到運行時刻才能確定代碼的地址,編譯時只是確保被調用的方法存在,并對調用參數和返回值執行類型檢查(能夠提供此類保證的為強類型語言,不能提供的為弱類型語言-weakly typed),但并不知道將會被執行的確切代碼。
16、C++中,使用virtual關鍵字來明確聲明希望某個方法使用動態綁定,而缺省狀況下不是動態綁定的;在JAVA中,動態綁定是缺省行為
17、abstract關鍵字把類標識為抽象類,抽象類不能創建對象,否則會產生編譯時錯誤
18、abstract關鍵字還可以用來描述尚未被實現的方法,即抽象方法,它的含義為:這是一個從此類中繼承出的所有類型都具有的接口方法,但是此刻我沒有為它設計任何具體實現;抽象方法只能在抽象類內部創建,該類被繼承時,抽象方法必須被實現,否則繼承類仍然是抽象類(即繼承類也必須由abstract關鍵字修飾,編譯器將會檢查這一點)。抽象方法的意義在于:你可以將一個方法置于接口中,而不必被迫為此方法提供可能毫無意義的方法體。
19、接口(interface)中不允許有任何方法體定義,即所有方法都是抽象的,但并不需要特別聲明abstract關鍵字,抽象程序的順序為:普通類<抽象類<接口
20、一般來說在JAVA中,需要多少對象,對象的生命周期,以及對象的具體類型,都要到運行時才能真正確定
21、容器,是一種很有用的概念,也可以說是一種思考方式,對象的個數、類型、生命周期,都可以通過為對象設置容器的方法來控制,簡單來說,一個數組就是數組中每個元素的容器。這種方式在各種語言中都被普遍使用,在C++中,容器是標準C++類庫(也叫做標準模板類庫,Standard Template Library,STL)的一部分
22、List類,列表,用于存儲序列;Map類,散列表,也叫作關聯數組,用于建立對象之間的關聯;Set類,集,用于存儲一類對象
23、單根繼承結構:所有的類最終都繼承自單一的基類,即Object類,所以可以存儲Object的容器可以存儲任何東西(不包括基本類型)
24、因為有了單根繼承結構和通過引用來操作對象的系統特性,垃圾回收器才能夠實現
25、我們不知道垃圾回收何時啟動并將持續多久,所以同一個JAVA程序的執行速度可能會出現前后不一致的情況,因此在某些強調程序執行速度一致的場合就不能使用它,比如較嚴格的實時程序
26、JAVA的異常處理是內置的、強制使用的,如果沒有編寫正確的異常處理代碼,將會得到編譯時錯誤
27、異常處理不是面向對象的特征,在面向對象語言出現前,異常處理就已經存在了
28、通常,多線程只是一種為單一處理器分配執行時間的手段,但是如果是在多處理器環境,那么每個線程都可以被指派給不同的處理器,那樣才是真正的并行執行;語言級別上多線程的好處之一就是程序員不用關心機器上有多個還是一個處理器
29、Java提供對輕量級持久性(lightweight persistent)的支持,稱為輕量級,是因為仍然需要創建顯式的調用來執行存儲和取回操作,輕量級持久性是通過對象序列化(object serialization)或Java數據對象(JDO,Java Data Object)來實現的
30、客戶/服務器系統的核心思想是:系統具有一個中央信息存儲池(central repository of information),用來存儲某種數據,它通常存在于數據庫中,信息與軟件的宿主機器(或機器集群)被稱為服務器(server),信息可以根據需要被分發給某個人員或機器集群(client)
31、插件,客戶端下載一段代碼,并將其插入到瀏覽器中適當的位置,以此來為瀏覽器添加新功能。
32、腳本語言,可以將客戶端程序的源代碼直接嵌入到HTML頁面中去,解釋這種語言的插件在HTML頁面被顯示時將自動激活(需要瀏覽器支持此種腳本語言才行),優點是當服務器收到要獲取該個頁面的請求時,它們可以被快速加載,缺點是這些代碼將被暴露給任何人看
33、Java applet勝過腳本語言的優勢是,它是以編譯過的形式存在的,因此源代碼對于客戶端來說是不可見的,當然,如果你真的想反編譯它,也不需要花費多少力氣;注意如果applet編譯后很大的話,可能需要額外的時間去下載它,而腳本語言程序是集成到Web頁面中的,通常比較小,因此在需要考慮網站相應能力時,應該優先使用腳本語言
感謝各位的閱讀,以上就是“Java對象的知識點有哪些”的內容了,經過本文的學習后,相信大家對Java對象的知識點有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。