freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

java基礎(chǔ)知識(shí)點(diǎn)總結(jié)(編輯修改稿)

2025-07-25 08:47 本頁面
 

【文章內(nèi)容簡介】 b extends Base{ public String color。 public Sub(double size,String name,String color){ //通過super調(diào)用父類構(gòu)造器的初始化過程 super(size,name)。 =color。 } public static void main(String[] args){ Sub s=new Sub(,測試,red)。 (+,++,+)。 }}Super調(diào)用的是其父類的構(gòu)造器,而this調(diào)用的是同一個(gè)類中重載的構(gòu)造器;因此,使用super調(diào)用父類的構(gòu)造器也必須出現(xiàn)在子類構(gòu)造器執(zhí)行體的第一行,所以this調(diào)用和super調(diào)用不會(huì)同時(shí)出現(xiàn)。當(dāng)調(diào)用子類構(gòu)造器來初始化子類對(duì)象時(shí),父類構(gòu)造器總會(huì)在子類構(gòu)造器之前執(zhí)行;不僅如此,執(zhí)行父類構(gòu)造器時(shí),系統(tǒng)會(huì)再次上溯執(zhí)行其父類的構(gòu)造器……依次類推,創(chuàng)建任何java對(duì)象。public class Creature { public Creature(){ (無參)。 }}public class Animal extends Creature { public Animal(String name){ (Animal帶一個(gè)參數(shù)的構(gòu)造器+name)。 } public Animal(String name,int age){ //this調(diào)用同一個(gè)重載構(gòu)造器 this(name)。 (Animal帶兩個(gè)參數(shù)的構(gòu)造器+age)。 }}public class Wolf extends Animal { public Wolf(){ super(灰太狼,4)。 (wolf無參構(gòu)造器)。 } public static void main(String[] args){ Wolf wf=new Wolf()。 //雖然main方法只創(chuàng)建了一個(gè)Wolf對(duì)象,但系統(tǒng)在底層完成了復(fù)雜的操作,運(yùn)行將會(huì)得到// 無參// Animal帶一個(gè)參數(shù)的構(gòu)造器灰太狼// Animal帶兩個(gè)參數(shù)的構(gòu)造器4// wolf無參構(gòu)造器 }}創(chuàng)建任何對(duì)象總是從該類所在繼承樹最頂層類的構(gòu)造器開始執(zhí)行,然后依次向下執(zhí)行,最后才執(zhí)行本類的構(gòu)造器。如果某個(gè)父類通過this調(diào)用了同類中重載的構(gòu)造器,就會(huì)依次執(zhí)行此父類的多個(gè)構(gòu)造器。:Java引用變量有兩個(gè)類型:一個(gè)是編譯時(shí)類型,一個(gè)是運(yùn)行時(shí)類型。編譯時(shí)類型由聲明該變量時(shí)使用的類型決定,運(yùn)行時(shí)類型由實(shí)際賦給該變量的對(duì)象決定。如果編譯時(shí)類型和運(yùn)行時(shí)類型不一致,就可能出現(xiàn)所謂的多態(tài)。public class BaseClass { public int book=6。 public void base(){ (父類的普通方法)。 } public void test(){ (父類被覆蓋的方法)。 }}public class SubClass extends BaseClass { //重寫定義一個(gè)book實(shí)例變量隱藏父類的book實(shí)例變量 public String book=abc。 public void test(){ (子類的覆蓋父類的方法)。 } public void sub(){ (子類的普通方法)。 } public static void main(String[] args){ //編譯時(shí)類型和運(yùn)行時(shí)類型完全一樣,因此不存在多態(tài) BaseClass bc=new BaseClass()。 //輸出父類bc對(duì)象的成員變量值:6 ()。 ()。 ()。 //編譯時(shí)類型和運(yùn)行時(shí)類型完全一樣,因此不存在多態(tài) SubClass sbc=new SubClass()。 //輸出子類對(duì)象sbc的成員變量值:abc ()。 ()。 ()。 //下面調(diào)用將執(zhí)行從父類繼承到的base()方法 ()。 //編譯時(shí)類型和運(yùn)行時(shí)類型不一樣,發(fā)生多態(tài)發(fā)生 BaseClass ployBc=new SubClass()。 //訪問的是父類對(duì)象的實(shí)例變量 ()。 //執(zhí)行從父類繼承到的base()方法 ()。 //調(diào)用將執(zhí)行當(dāng)前類的test()方法 ()。// ()。 因?yàn)榫幾g時(shí)類型是BaseClass,沒有提供sub()方法,所以編譯會(huì)出現(xiàn)錯(cuò)誤 }}因?yàn)樽宇愂且环N特殊的父類,因此java允許把一個(gè)子類對(duì)象直接賦給一個(gè)父類引用變量,無須任何類型轉(zhuǎn)換,或者被稱為向上轉(zhuǎn)型,向上轉(zhuǎn)型由系統(tǒng)自動(dòng)完全。對(duì)象的實(shí)例變量不具備多態(tài)性。注:引用變量在編譯階段只能調(diào)用其編譯時(shí)類型所具有的方法,但運(yùn)行時(shí)則執(zhí)行它運(yùn)行時(shí)類型所具有的方法。因此在編寫Java代碼時(shí),引用變量只能調(diào)用聲明該變量時(shí)所用類里包含的方法。例如:Object p=new Person()代碼定義了一個(gè)變量P,則這個(gè)P只能調(diào)用Object類的方法,而不能調(diào)用Person類里的方法。如果需要讓這個(gè)引用變量調(diào)用它運(yùn)行時(shí)類型的方法,則必須把它強(qiáng)制類型轉(zhuǎn)化成運(yùn)行時(shí)的類型,強(qiáng)制類型轉(zhuǎn)換符需要借助于類型轉(zhuǎn)換運(yùn)算符,用法是(type)variable強(qiáng)制類型轉(zhuǎn)換需要注意:基本類型之間的轉(zhuǎn)換只能在數(shù)值類型之間進(jìn)行,這里所說的數(shù)值類型包括,整數(shù)型、字符型和浮點(diǎn)型;但數(shù)值類型和布爾類型之間不能進(jìn)行類型轉(zhuǎn)換。引用類型之間的轉(zhuǎn)換只能在具有繼承關(guān)系的兩個(gè)類型之間進(jìn)行,如果是兩個(gè)沒有任何繼承關(guān)系的類型,則無法進(jìn)行類型轉(zhuǎn)換??紤]到強(qiáng)制類型轉(zhuǎn)換時(shí)可能出現(xiàn)異常,因此進(jìn)行類型轉(zhuǎn)換之前應(yīng)先通過instanceof運(yùn)算符來判斷是否可以成功轉(zhuǎn)換。注意:當(dāng)把子類對(duì)象賦給父類引用變量時(shí),被稱為向上轉(zhuǎn)型,這種轉(zhuǎn)型總是可以成功的,這也從另一個(gè)側(cè)面證實(shí)了子類是一種特殊的父類。這種轉(zhuǎn)型只是表明這個(gè)引用變量的編譯時(shí)類型是父類,但實(shí)際執(zhí)行它的方法時(shí),依然表現(xiàn)出子類對(duì)象行為方式。但把一個(gè)父類對(duì)象賦給子類引用變量時(shí),就需要進(jìn)行強(qiáng)制類型轉(zhuǎn)換,而且還可能在運(yùn)行時(shí)產(chǎn)生ClassCastException異常,使用instanceof運(yùn)算符可以讓強(qiáng)制類型轉(zhuǎn)換更安全。Instanceof運(yùn)算符:Instanceof運(yùn)算符前一個(gè)操作數(shù)通常是一個(gè)引用類型變量,后一個(gè)操作數(shù)通常是一個(gè)類(也可以是接口),它用于判斷前面的對(duì)象是否是后面的類,或者其子類、實(shí)現(xiàn)的實(shí)例。如果是,則返回ture,否則返回false.在使用instanceof運(yùn)算符時(shí)需要注意:instanceof運(yùn)算符前面操作數(shù)的編譯時(shí)類型要么與后面的類相同,要么與后面的類具有父子繼承關(guān)系,否則會(huì)引起編譯錯(cuò)誤。public class instanceofTest { public static void main(String[] args){ //聲明hello時(shí)使用Object類,則hello的編譯類型是Object //Object是所有類的父類,但hello變量的實(shí)際類型是String Object hello=hello。 ((hello instanceof Object))。 //String和Object類存在繼承關(guān)系,可以進(jìn)行instanceof運(yùn)算,返回true ((hello instanceof String))。 //Math和Object類存在繼承關(guān)系,可以進(jìn)行instanceof運(yùn)算,返回false ((hello instanceof Math))。 //String 實(shí)現(xiàn)了Comparabel接口,所以返回true ((hello instanceof Comparable))。 String a=hello。 //String類和Math類沒有繼承關(guān)系,所以下面的代碼編譯無法通過// ((a instanceof Math))。 }}4.8初始化塊:初始化塊是一段固定執(zhí)行的代碼,它不能接受任何參數(shù)。因此初始化塊對(duì)同一個(gè)類的所有對(duì)象所進(jìn)行的的初始化處理完全相同。如果兩個(gè)構(gòu)造器中有相容的初始化代碼,且這些初始化代碼無須接收參數(shù),就可以把它們放在初始化塊中定義。當(dāng)創(chuàng)建java對(duì)象時(shí),系統(tǒng)總是先調(diào)用該類里定義的初始化塊,相同類型的初始化塊之間按順序執(zhí)行。初始化塊在執(zhí)行構(gòu)造器之前執(zhí)行。與構(gòu)造器類型,創(chuàng)建一個(gè)java對(duì)象時(shí),不僅會(huì)執(zhí)行該類的普通初始化塊和構(gòu)造器,,依次向下執(zhí)行其子類的初始化塊,再開始執(zhí)行其子類的構(gòu)造器…最后才執(zhí)行該類的初始化塊和構(gòu)造器,返回該類的對(duì)象。靜態(tài)初始化塊:如果定義初始化塊時(shí)使用了static修飾符,則這個(gè)初始化塊就變成了靜態(tài)初始化塊,也被稱為類初始化塊(普通初始化塊負(fù)責(zé)對(duì)對(duì)象執(zhí)行初始化,類初始化塊則負(fù)責(zé)對(duì)類進(jìn)行初始化)。靜態(tài)初始化塊總是類相關(guān)的,系統(tǒng)將在類初始化階段執(zhí)行靜態(tài)初始化塊,而不是在創(chuàng)建對(duì)象時(shí)才執(zhí)行。因此靜態(tài)初始化塊總是比普通初始化塊先執(zhí)行。通常靜態(tài)初始化塊用于對(duì)類變量執(zhí)行初始化處理。與普通初始化塊類型,系統(tǒng)在類初始化階段執(zhí)行靜態(tài)初始化塊時(shí),不僅會(huì)執(zhí)行本類的靜態(tài)初始化塊,從最高父類開始一直到本類結(jié)束,依次執(zhí)行每個(gè)類中的靜態(tài)初始化塊。public class Test { public static void main(String[] args){ new Leaf()。 new Leaf()。 }}class Root{ static{ (Root的靜態(tài)初始化塊)。 } { (Root的初始化塊)。 } public Root(){ (Root 的無參構(gòu)造器)。 }}class Mid extends Root{ static{ (Mid的靜態(tài)初始化塊)。 } { (Mid的初始化塊)。 } public Mid(){ (Mid的無參構(gòu)造器)。 } public Mid(String msg){ //通過this調(diào)用同一類中重載的構(gòu)造器 this()。 (Mid的帶有參數(shù)的構(gòu)造器)。 }}class Leaf extends Mid{ static{ (Leaf的靜態(tài)初始化塊)。 } { (Leaf的初始化塊)。 } public Leaf(){ super(abc)。 (執(zhí)行Leaf的構(gòu)造器)。 }}Root的靜態(tài)初始化塊Mid的靜態(tài)初始化塊Leaf的靜態(tài)初始化塊Root的初始化塊Root 的無參構(gòu)造器Mid的初始化塊Mid的無參構(gòu)造器Mid的帶有參數(shù)的構(gòu)造器Leaf的初始化塊執(zhí)行Leaf的構(gòu)造器Root的初始化塊Root 的無參構(gòu)造器Mid的初始化塊Mid的無參構(gòu)造器Mid的帶有參數(shù)的構(gòu)造器Leaf的初始化塊執(zhí)行Leaf的構(gòu)造器類初始化階段,先執(zhí)行最頂層父類的靜態(tài)初始化塊,然后依次向下,直到執(zhí)行當(dāng)前類的初始化塊。對(duì)象初始化階段,先執(zhí)行最頂層父類的初始化塊、最頂層父類的構(gòu)造器,然后依次向下,直到執(zhí)行當(dāng)前類的初始化塊、當(dāng)前類的構(gòu)造器Java系統(tǒng)加載并初始化某個(gè)類時(shí),總是保證該類的所有父類(包括直接父類和間接父類)全部加載并進(jìn)行初始化。靜態(tài)初始化塊和靜態(tài)成員變量的執(zhí)行順序與在源程序中排列順序相同。第五章 面向?qū)ο笙?java增強(qiáng)的包裝類為了解決8種基本類型的變量不能當(dāng)成Object類型變量使用的問題,java提供了包裝類的概念。除了int和char有點(diǎn)例外,其他的基本數(shù)據(jù)類型對(duì)應(yīng)的包裝類都是將其首字母大寫即可。自動(dòng)裝箱和自動(dòng)拆箱用法:public class AutoBoxingUnboxing { public static void main(String[] args){ //直接把一個(gè)基本類型變量賦給Integer對(duì)象 Integer inObj=5。 //直接把一個(gè)boolean類型變量賦給Object類型變量 Object boolObj=true。 //直接把一個(gè)Integer對(duì)象賦給int類型變量
點(diǎn)擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1