版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1 3、Static<1>、隨著類(lèi)的加載而加載。也就是說(shuō):靜態(tài)會(huì)隨著類(lèi)的而,說(shuō)明它生命周期最長(zhǎng)。<2>
<3><4><1>
<2>生命周期
而失而<1>靜態(tài)方法只能靜態(tài)成員非靜態(tài)方法既可以靜態(tài)也可以<2>靜態(tài)方法中不可以定義this,super中不可以出現(xiàn)this<3>利處:<1>對(duì)對(duì)象的共享數(shù)據(jù)盡享單獨(dú)空間的,節(jié)省空間,沒(méi)有必要沒(méi)一個(gè)對(duì)象都一份。弊端:<1>生命周期過(guò)長(zhǎng)。只能靜態(tài)public:代表著該函數(shù)的權(quán)限是最大的jvm
static:void:3jvm><2>對(duì)象中特有的數(shù)據(jù)要定義靜態(tài)存在于堆內(nèi)存中<1><2>過(guò)將構(gòu)造函數(shù)完成(private){}數(shù)。用于給類(lèi)進(jìn)行初始化。 = <1>因?yàn)閚ew用到 .class <2>執(zhí)行該類(lèi)中的static代碼塊如果有的話(huà) <3>><5><6><7><8>將內(nèi)存地址賦給棧內(nèi)存中的p對(duì)象立就運(yùn)行,而且優(yōu)先于構(gòu)造函數(shù)執(zhí)行。JVM加載類(lèi)時(shí)且在構(gòu)造方法執(zhí)行之前執(zhí)行,靜態(tài)代碼塊只在第一次new執(zhí)行一次,之后不再執(zhí)行,而非靜態(tài)代碼塊在每new一次就執(zhí)行一次。象<1>將構(gòu)造函數(shù)<2>在類(lèi)中創(chuàng)建一個(gè)本類(lèi)對(duì) <3>提供一個(gè)方privateStudent()privatestaticStudents=newpublicstaticStudent (延時(shí)加載Student只有調(diào)用了getInstance方法時(shí),才建立對(duì)象)privatestaticStudents=null;privateStudent(){}publicstaticStudent{}繼承
s=newStudent();returns;和工人與單獨(dú)描述的這個(gè)類(lèi)有關(guān)系,就可以了。1 提高了代碼的復(fù)用性2、 讓類(lèi)與類(lèi)之間產(chǎn)生了關(guān)系。有了這個(gè)關(guān)系,才有了多態(tài)特性。3、 注意千萬(wàn)不要為了獲取其他類(lèi)的功能簡(jiǎn)化代碼而繼承必須是類(lèi)與類(lèi)之間有所屬的關(guān)系才可以繼承。所屬關(guān)系is 4、 Java語(yǔ)言中Java只支持單繼承不支持多繼承。 因?yàn)槎嗬^承容易帶來(lái)安全隱患:當(dāng)多個(gè)父類(lèi)中定義了相同的功能,當(dāng)功能內(nèi)容不同時(shí),子類(lèi)對(duì)象不確定要運(yùn)行哪一個(gè)。但是java保留這另一種體現(xiàn)形式來(lái)完成(多5 java支持多層繼承。也就是一個(gè)繼承體如何使用一個(gè)繼承體系中的功能呢系的基本功能。那么這系已經(jīng)可以基本使用了那么在具體調(diào)用時(shí),要?jiǎng)?chuàng)建最子類(lèi)的對(duì)象,為什么<1>因?yàn)橛锌赡芨割?lèi)不能創(chuàng)建對(duì)<2>創(chuàng)建子類(lèi)對(duì)象可以使用的功能,包括基本的也包簡(jiǎn)單一句話(huà):查閱父類(lèi)功能,創(chuàng)建子類(lèi)對(duì)象使用功能 <1>變量本類(lèi)中的變量,用this;父類(lèi)中的同名變量用supe。super的使用和this的使用幾乎一super<2>函一樣。這種情況是函數(shù)的另一個(gè)特性:重寫(xiě)(覆蓋當(dāng)子類(lèi)繼承父類(lèi),沿襲了父類(lèi)的功能,到子類(lèi)中,但類(lèi)的功能定義,并重寫(xiě)功能的內(nèi)容。覆蓋(重寫(xiě))意事子類(lèi)覆蓋父類(lèi),必須保證子類(lèi)權(quán)限大于等于父類(lèi)權(quán)限,才可以覆蓋,否則編譯失敗。靜態(tài)只能覆蓋靜態(tài)<3>構(gòu)造函在對(duì)子類(lèi)對(duì)象進(jìn)行初始化時(shí),父類(lèi)的構(gòu)造函數(shù)也會(huì)運(yùn)行那是因?yàn)樽宇?lèi)的構(gòu)造函數(shù)默認(rèn)第一行有一條隱式的語(yǔ)super(super(:會(huì)父類(lèi)中的空參數(shù)構(gòu)造函數(shù)。而且子類(lèi)中所有的構(gòu)造函數(shù)默認(rèn)第一行都是super()。為什么子類(lèi)一定要父類(lèi)中的構(gòu)造函數(shù)在對(duì)象初始化時(shí)要先一下父類(lèi)中的構(gòu)造函數(shù)。如果要父類(lèi)中指定的構(gòu)造函數(shù),可以通過(guò)手動(dòng)定Super語(yǔ)句的方式來(lái)指注意:super語(yǔ)句一定定義在子類(lèi)構(gòu)造函數(shù)的第一行子類(lèi)的實(shí)例化過(guò)程結(jié)論:子類(lèi)的所有構(gòu)造函數(shù),默認(rèn)都會(huì)父類(lèi)中的空參數(shù)構(gòu)造函數(shù);因?yàn)樽宇?lèi)中每一個(gè)構(gòu)造函數(shù)內(nèi)的第一行都有一個(gè)隱式的super(;當(dāng)父類(lèi)中沒(méi)有空參數(shù)的構(gòu)造函數(shù)時(shí),子類(lèi)必須手動(dòng)通過(guò)語(yǔ)句的形式來(lái)指定要父類(lèi)中的構(gòu)造函數(shù)ths問(wèn)本類(lèi)構(gòu)造函數(shù)子類(lèi)中至少有一個(gè)構(gòu)造函數(shù)會(huì)父類(lèi)中的構(gòu)造函數(shù)。作為一個(gè)修飾1、可以修飾、函數(shù)、變量2final修飾的類(lèi)不可以被繼承。是為了避免被繼承,被子類(lèi)復(fù)3、final修飾的方法不可以被重寫(xiě)4final修飾的變量是一個(gè)常量,只能賦值一次,既可以修飾成當(dāng)在描述事物時(shí),一些數(shù)據(jù)的出現(xiàn)值是固定的,那么這是為了inal有字母都大寫(xiě),如果由多個(gè)單詞組成,單詞間通過(guò)_連接。5、內(nèi)部類(lèi)定義在類(lèi)中的局部位置上時(shí)只能該局部被final修1、抽象類(lèi)的特<1>抽象方法一定在抽象類(lèi)<2>抽象方法和抽象類(lèi)都必須 關(guān)鍵字修<3>抽象類(lèi)不可以用new創(chuàng)建對(duì)象,因?yàn)檎{(diào)用抽象方法沒(méi)<4>抽象類(lèi)中的抽象方法要被必須由子類(lèi)復(fù)寫(xiě)起所有的抽象方法后,建立子類(lèi)對(duì)象調(diào)用;如果子類(lèi)只覆蓋了部分的抽象方法,<5>抽象類(lèi)中可以有抽象方法也可以有非抽象方<6>抽象類(lèi)和一般類(lèi)沒(méi)有太大的不同:<7>抽象類(lèi)比一般類(lèi)多了個(gè)抽就是在類(lèi)中可以定義抽象方法;抽象類(lèi)不可以實(shí)例化。特殊:抽象類(lèi)中可以不定義抽象方法,這樣做僅僅是不讓改類(lèi)建立對(duì)象。模板方在定義功能時(shí),功能的一部分是確定的,但是有一部分是不確分出去。有該類(lèi)的子類(lèi)去實(shí)現(xiàn)。接初期理解:可以認(rèn)為是一個(gè)特殊的抽象類(lèi),當(dāng)抽象類(lèi)中的方法都是抽象的,那么該類(lèi)可以通過(guò)接口的形式來(lái)表示(ineace)接口定義時(shí),格式特1、接口中常見(jiàn)定義:常量,抽象方法2、接口中的成員都有固定修飾符。常量:publicstaticfinal方法記住:接口中的成員都是public的3、子類(lèi)對(duì)接口中的抽象方法全部覆蓋后,子類(lèi)才可以實(shí)例化。否則子類(lèi)是一個(gè)抽象類(lèi)。4、接口可以被類(lèi)多實(shí)現(xiàn),也是對(duì)多繼承不支持的轉(zhuǎn)換形式,Java可以理解為事物存在的多種形態(tài)1、多態(tài)的父類(lèi)的指向了自己的子類(lèi)對(duì)象父類(lèi)的也可以接受自己的子類(lèi)對(duì)象2、多態(tài)的通常還有一個(gè)前提:存在覆蓋。3、多態(tài)的多態(tài)的出現(xiàn)大大的提高了程序的擴(kuò)展性4、多態(tài)的弊提高了擴(kuò)展性,但是只能使用父類(lèi)的父類(lèi)中的成員5態(tài)的應(yīng)6、多態(tài)的出現(xiàn)代碼中的特點(diǎn)(多態(tài)的使用注意事項(xiàng)<1>在多態(tài)中成員函數(shù)的特點(diǎn)(非靜態(tài)在編譯時(shí)期:參閱型變量所屬的類(lèi)中是否有調(diào)用的方法。如在運(yùn)行時(shí)期:參閱對(duì)象所屬的類(lèi)中是否有調(diào)用的方簡(jiǎn)單總結(jié)就函數(shù)在多態(tài)調(diào)用看左看右<2>在多態(tài)中員變量的特點(diǎn)無(wú)論是編譯還是運(yùn)行,都參考左邊(型變量所屬的類(lèi)<3>在多態(tài)中,靜態(tài)成員函數(shù)的特點(diǎn):7、多態(tài)的例子Animala=new //類(lèi)型提升,向上a. //如果想要調(diào)用貓的特有方法時(shí),如何操作強(qiáng)制將父類(lèi)的,轉(zhuǎn)成子類(lèi)類(lèi)型,向下Catc=(Cat)a; //千萬(wàn)不要出現(xiàn)這樣的操作是講父類(lèi)的對(duì)象轉(zhuǎn)成子類(lèi)型我們能轉(zhuǎn)換的是父類(lèi)的指向了自己的子類(lèi)對(duì)象時(shí),該可多態(tài)自始至終都是子類(lèi)對(duì)象在坐著變化Object:是所有對(duì)象的直接或者間接父類(lèi),中的上帝Object類(lèi)中已經(jīng)提供了對(duì)對(duì)象是否相同的比較方法如果自定義類(lèi)中也有比較相同的功能,沒(méi)有必要重新定覆蓋。內(nèi)部類(lèi)的規(guī)則1、內(nèi)部類(lèi)可以直接外部類(lèi)中的成員,包括私有之所以可以直接外部類(lèi)中的成員,是因?yàn)閮?nèi)部類(lèi)中持有一個(gè)外部類(lèi)的,格式外部類(lèi)名.this2、外部類(lèi)要內(nèi)部類(lèi),必須要建立內(nèi)部類(lèi)對(duì)象3、格式<1>定義在外部類(lèi)的成員位置上,而且非私有,可以在外部其格式:外部類(lèi)名.內(nèi)部類(lèi)名量名=外部類(lèi)對(duì)象.內(nèi)部類(lèi)對(duì)Outer.Innerin=newOuter().newInner()<2>當(dāng)內(nèi)部類(lèi)在成員位置上時(shí),就可以被成員修飾符所修飾。比如:private:將內(nèi)部類(lèi)在外部類(lèi)中進(jìn)行封裝static:內(nèi)部類(lèi)就具備static當(dāng)內(nèi)部類(lèi)被static修飾后只能直接外部類(lèi)中的成員。出現(xiàn)了局限性<3>在外部其他類(lèi)中,如何直接static內(nèi)部類(lèi)的非靜態(tài)成new在外部其他類(lèi)中,如何直接static內(nèi)部類(lèi)的靜態(tài)成呢注意內(nèi)部類(lèi)中定義了靜態(tài)該內(nèi)部類(lèi)必須是static的。當(dāng)外部類(lèi)中的靜態(tài)方法內(nèi)部類(lèi)時(shí)內(nèi)部類(lèi)也必須是靜態(tài)4、在描述事物時(shí)的內(nèi)部還有事物用內(nèi)部類(lèi)來(lái)描述。5、內(nèi)部類(lèi)在定義局部時(shí)<1>不可以被成員修飾符修飾<2>可以直接外部類(lèi)中的成員因?yàn)檫€持有外部類(lèi)中的;但是不可以它所在的局部中的變量,只能被final修飾的內(nèi)部類(lèi):1、內(nèi)部類(lèi)其實(shí)就是內(nèi)部類(lèi)的簡(jiǎn)寫(xiě)格式2、定義內(nèi)部類(lèi)的前提內(nèi)部類(lèi)必須繼承一個(gè)類(lèi)或者實(shí)現(xiàn)接口3、內(nèi)部類(lèi)的格式new父類(lèi)或者接口( {定義子類(lèi)的內(nèi)容4、其實(shí)內(nèi)部類(lèi)就是一個(gè)子類(lèi)對(duì)象而且這個(gè)對(duì)象有點(diǎn)胖。5、內(nèi)部類(lèi)中定義的方法最好不要超過(guò)3個(gè)1、異常:就是程序在運(yùn)行時(shí)出現(xiàn)不正常情況異常由來(lái):?jiǎn)栴}也是現(xiàn)實(shí)生活中一個(gè)具體事務(wù),也可以通過(guò)java的類(lèi)的形式進(jìn)行描述,并封裝成對(duì)象。其實(shí)就是Java對(duì)不正常情對(duì)于問(wèn)題的劃分:兩種,一種是嚴(yán)重的問(wèn)題,一種是非嚴(yán)重問(wèn)<1>java通過(guò)Error類(lèi)進(jìn)行描述對(duì)于Error一般不編寫(xiě)針對(duì)性的代碼對(duì)其進(jìn)行處<2>對(duì)于非嚴(yán)重的,java通過(guò)Exception類(lèi)進(jìn)行描對(duì)于Exception可以使用針對(duì)性的處理方式進(jìn)行處理。無(wú)論Errror或者Exception都具有一些共性?xún)?nèi)容。比如:不正常情況的信息,原因等 2、異常處理Java提供了特有的語(yǔ)句進(jìn)行處理try{需要被檢測(cè);}3、對(duì)捕獲到的異常對(duì)象進(jìn)行常見(jiàn)方法操作StringgetMessage();獲取異常信息<1><2><3>4、在函數(shù)上異常:便于提高安全性,讓調(diào)用者進(jìn)行處理,不5、對(duì)多異常的處<1>異常時(shí),建議更為具體的異常,這樣處理的可以更余的catch如果多個(gè)catch塊中的異常出現(xiàn)繼承關(guān)父類(lèi)catch塊放在最建議catch處理catch定要定義具體處理方不要簡(jiǎn)單的定義一句e.printStackTrace();也不要簡(jiǎn)單的就寫(xiě)6、因?yàn)轫?xiàng)目中會(huì)出現(xiàn)特有的問(wèn)題,而這些問(wèn)題并未被java所描述,所以對(duì)這些特有的問(wèn)題可以按照java對(duì)問(wèn)題封裝的思想,自定義異常<1>:行運(yùn)算的,那么就需要對(duì)這個(gè)問(wèn)題進(jìn)行自定義描述。當(dāng)在函數(shù)內(nèi)部出現(xiàn)了throw拋出異常對(duì)象那么就必須要給出對(duì)應(yīng)要么在內(nèi)部trycatch要么在函數(shù)上生命讓調(diào)用者處理一般情況下,函數(shù)內(nèi)出現(xiàn)異常,函數(shù)上要如何定義異常信息因?yàn)楦割?lèi)中已經(jīng)把異常信息的操作都完成了,所以子類(lèi)只要在構(gòu)造時(shí),將異常信息傳遞給父類(lèi)通過(guò)super過(guò)getMessage方法獲取自定義的異常信息了。<3>自定義異常:必須是自定義類(lèi)繼承Exception。繼承Exception原因:異常體系有一個(gè)特點(diǎn):因?yàn)楫惓n?lèi)和異常對(duì)象都被拋出具備可拋性。這個(gè)可拋性是Throwable這系中的獨(dú)有特點(diǎn)。只有這系中的類(lèi)和對(duì)象才可以被throw和throws操作。<4>throwthrows區(qū)別throws在函;throw用在函數(shù)內(nèi)throw后跟的是異常對(duì)<5>Exception有一個(gè)特殊的子類(lèi)異RuntimeException運(yùn)行時(shí)異常。如果在函數(shù)內(nèi)拋出該異常,函數(shù)上可以不用,編譯一樣通過(guò)。如果再函數(shù)上了該異常,調(diào)用者可以不用進(jìn)行處理,之所以不用在函數(shù)上是因?yàn)椴恍枰屨{(diào)用者處理當(dāng)該異常發(fā)生,希望程序停止。因?yàn)樵谶\(yùn)行時(shí),出現(xiàn)了無(wú)法繼續(xù)運(yùn)算的情況,希望停止程序后,對(duì)代碼進(jìn)行修正。么就讓自定義異常繼承RuntimeException。<7>對(duì)于異常分兩種:編譯時(shí)被檢測(cè)的異編譯時(shí)不被檢測(cè)的(運(yùn)行時(shí)的RuntimeException以及1、finally代碼塊:定義一定執(zhí)行的代碼。2、記住一點(diǎn):catch是用于處理異catch就代表異常沒(méi)有被處理過(guò),如果該異常時(shí)檢測(cè)時(shí)異常,那么就必須。異常在父類(lèi)覆蓋中的體現(xiàn)1、子類(lèi)在覆蓋父類(lèi)時(shí),如果父類(lèi)的方法拋出異常,那么子類(lèi)的覆2、如果父類(lèi)方法拋出多個(gè)異常,那么子類(lèi)在覆蓋該方法時(shí),只能3、如果父類(lèi)或者接口的方法中沒(méi)有異常拋出,那么子類(lèi)在覆蓋方如果子類(lèi)方法發(fā)生了就必須要進(jìn)行try不能異常1、異常是什么對(duì)問(wèn)題進(jìn)行描述,講問(wèn)題進(jìn)行對(duì)象的封裝2、異常體------3、異常體系的特點(diǎn):異常體系中的所有類(lèi)以及建立的對(duì)象都具備可拋性,也就是說(shuō)可以被thow和thows關(guān)鍵字所操作只有異常體系具備這個(gè)特4、throwthrows的用法throw定義在函數(shù)內(nèi),用于拋出異常對(duì)象Throws定義在函數(shù)上,用于拋出異常類(lèi),可以?huà)伋龆鄠€(gè),用5、當(dāng)函數(shù)內(nèi)有throw拋出異常對(duì)象,并未進(jìn)行try處理。必須要在函數(shù)上,否則編譯失敗。注意RuntimeException除外,也就是說(shuō)函數(shù)內(nèi)如果拋RuntimeException異常,函數(shù)上可以不用如果函數(shù)了異常,調(diào)用者需要進(jìn)行處理。處理方法可以可以try6、異常有兩種<1>編譯時(shí)被檢測(cè)異該異常在編譯時(shí),如果沒(méi)有處理(沒(méi)有拋,也沒(méi)有try)那么編該異常被標(biāo)識(shí),代表這可以被處理<2>運(yùn)行時(shí)異常(編譯時(shí)測(cè)在編譯時(shí),不需要處理,編譯器查該異常發(fā)生,建議不處理,讓程序停止。需要對(duì)代碼進(jìn)行休7、異常處理的語(yǔ){需要被檢測(cè)的代碼 Finally{一定會(huì)執(zhí)行的代碼3個(gè)結(jié)合格式<1> <2><3>Catch(){}注意:<1>finally中定義的通常是關(guān)閉資源的為資源必須放<2>finally只有一種情況不會(huì)執(zhí)行。當(dāng)執(zhí)行到System.exti(0);finally不會(huì)執(zhí)行。8、自定義異常 定義繼承Exception或者<1>為了讓改自定義類(lèi)具備可拋<2>讓該類(lèi)具備操作異常的共性方法將異常信息傳遞給父類(lèi)的構(gòu)造函數(shù)。ClassMyExceptionextends{MyException(String{super}}自定義是按照java的面向?qū)ο笏汲绦蛑谐霈F(xiàn)的特有問(wèn)題9、異常的好處<1>將問(wèn)題進(jìn)行封裝<2>
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 儲(chǔ)備糧庫(kù)人力資源管理方案
- 消防演習(xí)組織協(xié)調(diào)方案
- 道路排水管道清淤方案
- 水庫(kù)水位調(diào)控技術(shù)方案
- 隧道支護(hù)結(jié)構(gòu)設(shè)計(jì)方案
- 土石方工程施工反饋機(jī)制方案
- 外墻接縫漏水檢測(cè)方案
- 土建工程質(zhì)量管理方案
- 消防水管道防腐蝕處理方案
- 社交媒體應(yīng)用大賽活動(dòng)方案
- 廠轉(zhuǎn)讓合同范本
- 《肝臟手術(shù)的麻醉》課件
- GB/T 45026-2024側(cè)掃聲吶海洋調(diào)查規(guī)范
- 零星維修工程施工組織設(shè)計(jì)方案
- 新建加油站現(xiàn)場(chǎng)核查表
- 三年級(jí)數(shù)學(xué)五千以?xún)?nèi)加減法題能力作業(yè)口算題大全附答案
- 臨床診斷學(xué)-胸部檢查課件
- 三力測(cè)試題70歲以上老人換領(lǐng)駕照
- 婦女保健之孕期運(yùn)動(dòng)與體重管理護(hù)理課件
- 職工食堂餐飲服務(wù)投標(biāo)方案(技術(shù)方案)
- (銀川市直部門(mén)之間交流)2022事業(yè)單位工作人員調(diào)動(dòng)表
評(píng)論
0/150
提交評(píng)論