您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關如何理解java 知識點的集合分析,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
1 、對象的初始化
?。? )非靜態(tài)對象的初始化
在創(chuàng)建對象時,對象所在類的所有數(shù)據(jù)成員會首先進行初始化。
基本類型:int 型,初始化為0.
如果為對象:這些對象會按順序初始化。
※在所有類成員初始化完成之后,才調(diào)用本類的構(gòu)造方法創(chuàng)建對象。
構(gòu)造方法的作用就是初始化。
?。? )靜態(tài)對象的初始化
程序中主類的靜態(tài)變量會在main方法執(zhí)行前初始化。
不僅第一次創(chuàng)建對象時,類中的所有靜態(tài)變量都初始化,并且第一次訪問某
類(注意此時未創(chuàng)建此類對象)的靜態(tài)對象時,所有的靜態(tài)變量也要按它們在類
中的順序初始化。
2 、繼承時,對象的初始化過程
?。? )主類的超類由高到低按順序初始化靜態(tài)成員,無論靜態(tài)成員是否為private.
(2 )主類靜態(tài)成員的初始化。
?。? )主類的超類由高到低進行默認構(gòu)造方法的調(diào)用。注意,在調(diào)用每一個
超類的默認構(gòu)造方法前,先進行對此超類進行非靜態(tài)對象的初始化。
?。? )主類非靜態(tài)成員的初始化。
?。? )調(diào)用主類的構(gòu)造方法。
3 、關于構(gòu)造方法
(1 )類可以沒有構(gòu)造方法,但如果有多個構(gòu)造方法,就應該要有默認的構(gòu)
造方法,否則在繼承此類時,需要在子類中顯式調(diào)用父類的某一個非默認的構(gòu)造
方法了。
?。? )在一個構(gòu)造方法中,只能調(diào)用一次其他的構(gòu)造方法,并且調(diào)用構(gòu)造方
法的語句必須是第一條語句。
4 、有關public、private 和protected
?。? )無public修飾的類,可以被其他類訪問的條件是:a.兩個類在同一文
件中,b.兩個類在同一文件夾中,c.兩個類在同一軟件包中。
?。? )protected :繼承類和同一軟件包的類可訪問。
?。? )如果構(gòu)造方法為private ,那么在其他類中不能創(chuàng)建該類的對象。
5 、抽象類
?。? )抽象類不能創(chuàng)建對象。
?。? )如果一個類中一個方法為抽象方法,則這個類必須為abstract抽象類。
?。? )繼承抽象類的類在類中必須實現(xiàn)抽象類中的抽象方法。
?。? )抽象類中可以有抽象方法,也可有非抽象方法。抽象方法不能為private.
?。? )間接繼承抽象類的類可以不給出抽象方法的定義。
6 、final 關鍵字
(1 )一個對象是常量,不代表不能轉(zhuǎn)變對象的成員,仍可以其成員進行操
作。
?。? )常量在使用前必須賦值,但除了在聲明的同時初始化外,就只能在構(gòu)
造方法中初始化。
?。? )final 修飾的方法不能被重置(在子類中不能出現(xiàn)同名方法)。
?。? )如果聲明一個類為final ,則所有的方法均為final ,無論其是否被
final 修飾,但數(shù)據(jù)成員可為final 也可不是。
7 、接口interface (用implements來實現(xiàn)接口)
?。? )接口中的所有數(shù)據(jù)均為static和final 即靜態(tài)常量。盡管可以不用這
兩個關鍵字修飾,但必須給常量賦初值。
?。? )接口中的方法均為public,在實現(xiàn)接口類中,實現(xiàn)方法必須可public
關鍵字。
?。? )如果使用public來修飾接口,則接口必須與文件名相同。
8 、多重繼承
?。? )一個類繼承了一個類和接口,那么必須將類寫在前面,接口寫在后面,
接口之間用逗號分隔。
?。? )接口之間可多重繼承,注意使用關鍵字extends.
?。? )一個類雖只實現(xiàn)了一個接口,但不僅要實現(xiàn)這個接口的所有方法,還
要實現(xiàn)這個接口繼承的接口的方法,接口中的所有方法均須在類中實現(xiàn)。
9 、接口的嵌入
(1 )接口嵌入類中,可以使用private 修飾。此時,接口只能在所在的類
中實現(xiàn),其他類不能訪問。
?。? )嵌入接口中的接口一定要為public.
10、類的嵌入
?。? )類可以嵌入另一個類中,但不能嵌入接口中。
(2 )在靜態(tài)方法或其他方法中,不能直接創(chuàng)建內(nèi)部類對象,需通過手段來
取得。
手段有兩種:
class A { class B {} B getB () { B b = new B(); return b ; }
} static void m () { A a = new A(); A.B ab = a.getB(); // 或者
是 A.B ab = a.new B (); }
(3 )一個類繼承了另一個類的內(nèi)部類,因為超類是內(nèi)部類,而內(nèi)部類的構(gòu)
造方法不能自動被調(diào)用,這樣就需要在子類的構(gòu)造方法中明確的調(diào)用超類的構(gòu)造
方法。接上例:
class C extends A.B { C () { new A()。super (); // 這一句就
實現(xiàn)了對內(nèi)部類構(gòu)造方法的調(diào)用。 } }
構(gòu)造方法也可這樣寫:
C (A a ) { a.super(); } // 使用這個構(gòu)造方法創(chuàng)建對象,要寫成C
c = new C (a ); a是A 的對象。
11、異常類
JAVA中除了RunTimeException類,其他異常均須捕獲或拋出。
看完上述內(nèi)容,你們對如何理解java 知識點的集合分析有進一步的了解嗎?如果還想了解更多知識或者相關內(nèi)容,請關注億速云行業(yè)資訊頻道,感謝大家的支持。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。