java面向?qū)ο笾R(shí)點(diǎn)總結(jié)_第1頁
java面向?qū)ο笾R(shí)點(diǎn)總結(jié)_第2頁
java面向?qū)ο笾R(shí)點(diǎn)總結(jié)_第3頁
java面向?qū)ο笾R(shí)點(diǎn)總結(jié)_第4頁
java面向?qū)ο笾R(shí)點(diǎn)總結(jié)_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

學(xué)習(xí)資料收集于網(wǎng)絡(luò),僅供參考類和對(duì)象1.1類:類是用來描述一類事物的共性內(nèi)容的 ,類是抽象的;創(chuàng)建類,如何描述屬性 功能用變量來描述屬性用方法來描述功能1.2對(duì)象:就是現(xiàn)實(shí)中具體的事物,對(duì)象是具體的;創(chuàng)建對(duì)象類名 對(duì)象名 = new類名();如何通過對(duì)象訪問類中屬性和方法呢 ?對(duì)象名.變量名對(duì)象名.方法名();只要是new的對(duì)象,就是新創(chuàng)建的,就會(huì)在內(nèi)存中開辟一段單獨(dú)的空間1.2匿名對(duì)象創(chuàng)建的對(duì)象沒有賦值給具體的變量 ;學(xué)習(xí)資料學(xué)習(xí)資料收集于網(wǎng)絡(luò),僅供參考所以給匿名對(duì)象的屬性賦值是沒有任何意義的 ;匿名對(duì)象使用場景調(diào)用方法作為參數(shù)傳遞添加進(jìn)容器中1.3 This 關(guān)鍵字This.類中的普通方法訪問到的成員前邊都有 this.這個(gè)關(guān)鍵字This. 就代表當(dāng)前對(duì)象,普通方法,創(chuàng)建對(duì)象調(diào)方法, 誰調(diào)用就代表誰This();可以用來在構(gòu)造函數(shù)中調(diào)用本類與之相對(duì)應(yīng)的構(gòu)造函數(shù)使用注意事項(xiàng):1this()只能是構(gòu)造函數(shù)的第一條執(zhí)行語句2this() 不能在構(gòu)造函數(shù)之間相互調(diào)用3this() 不能調(diào)用自己1.4構(gòu)造函數(shù)(方法)構(gòu)造函數(shù)的作用用來給對(duì)象進(jìn)行初始話的 (初始化就是指給對(duì)象的各個(gè)屬性賦值 )學(xué)習(xí)資料學(xué)習(xí)資料收集于網(wǎng)絡(luò),僅供參考構(gòu)造函數(shù)何時(shí)執(zhí)行對(duì)象一創(chuàng)建就會(huì)調(diào)用與之相對(duì)應(yīng)的構(gòu)造函數(shù)構(gòu)造函數(shù)語法修飾符 沒有返回值類型 類名(參數(shù)列表){具體執(zhí)行的代碼}構(gòu)造函數(shù)自動(dòng)添加當(dāng)一個(gè)類中我們沒有明確指定構(gòu)造函數(shù)的話,jvm會(huì)自動(dòng)幫我們添加一個(gè)空參數(shù)的構(gòu)造,如果我們指定了,就不添加了構(gòu)造函數(shù)和普通函數(shù)的區(qū)別5.1執(zhí)行時(shí)機(jī)不同對(duì)象一創(chuàng)建就會(huì)調(diào)用與之相對(duì)應(yīng)的構(gòu)造函數(shù)普通函數(shù)只有被調(diào)用才會(huì)執(zhí)行1.5return1就是用來在方法中返回具體結(jié)果 (結(jié)果類型必須和方法的返回值類型一致 )2即便方法的返回值類型是 void,方法中也可以出現(xiàn) return;3構(gòu)造函數(shù)中也可以有 return關(guān)鍵字學(xué)習(xí)資料學(xué)習(xí)資料收集于網(wǎng)絡(luò),僅供參考1.6成員變量 和局部變量1作用范圍不同,成員變量是定義在類中的 ,在整個(gè)類中都起作用局部變量是定義在方法中的 ,在所在代碼塊起作用2初始值不同,成員變量有默認(rèn)初始值,不用賦值,也能直接時(shí)候局部變量,沒有初始值,必須得賦值以后才能使用封裝2.1staticStatic是用來修飾類中成員 成員變量 成員方法被static修飾的成員,就多了一種調(diào)用方式,可以被類名直接調(diào)用了修飾成員變量該變量在內(nèi)存中只會(huì)保存一份,被類和所有對(duì)象共享,那么一個(gè)對(duì)象對(duì)其進(jìn)行修改,會(huì)影響到其他對(duì)象,為了不影響其他對(duì)象,經(jīng)常會(huì)把靜態(tài)變量搞成常量,被final修飾;修飾成員方法靜態(tài)方法中只能訪問靜態(tài)成員普通方法中都能訪問;靜態(tài)方法中不能出現(xiàn) this,super關(guān)鍵字Main函數(shù)是靜態(tài)的;學(xué)習(xí)資料學(xué)習(xí)資料收集于網(wǎng)絡(luò),僅供參考那么我們定義方法時(shí),什么時(shí)候定義靜態(tài),什么時(shí)候定義非靜態(tài)?當(dāng)方法中使用到了普通(非靜態(tài))成員的話,就不能定義成靜態(tài)的;代碼塊 (靜態(tài)代碼塊)用來給類進(jìn)行初始話 (給類中的靜態(tài)成員進(jìn)行初始化 )會(huì)隨著類的加載而執(zhí)行(只會(huì)執(zhí)行一次)2.2封裝就是隱藏類中的某些成員 ;僅對(duì)外提供公共的訪問方式封裝三步走:私有屬性提供set和get方法供外界給對(duì)象設(shè)置值和獲取值在方法中添加具體的存取限制2.3包和權(quán)限修飾符類權(quán)限修飾符可以用來修飾兩種東西 :Public 該類在其他包中也可以訪問 (首先要導(dǎo)包 import)默認(rèn)類中成員Public protected 默認(rèn) private學(xué)習(xí)資料學(xué)習(xí)資料收集于網(wǎng)絡(luò),僅供參考本類中是否能訪問本包其他類其他包Public能能能默認(rèn)能能不能Private能不能不能包創(chuàng)建包聲明包導(dǎo)入包包的作用便于管理防止命名沖突;包也是封裝的一種方式,可以在更廣的范圍保護(hù)類繼承某個(gè)類 可以通過 extends繼承其他的類一個(gè)類繼承了另外一個(gè)類以后 ,就繼承了所有的非私有的屬性和方法注意事項(xiàng)java中只允許單繼承;不允許多繼承,但是允許多層繼承何時(shí)繼承?AisB;學(xué)習(xí)資料學(xué)習(xí)資料收集于網(wǎng)絡(luò),僅供參考繼承發(fā)生以后類中成員的特點(diǎn)成員變量當(dāng)子類和父類的成員變量同名是,子類中優(yōu)先使用子類自己的.可以通過super.調(diào)用父類的成員變量和成員方法;成員方法子父類具有相同的功能,但是子類有自己具體的實(shí)現(xiàn),這個(gè)時(shí)候子類是沒有必要重新定義一個(gè)方法的,只需要重寫父類就行了;重寫(覆蓋)1前提, 存在繼承 和實(shí)現(xiàn)關(guān)系2方法名一樣,參數(shù)列表一樣,返回值類型一樣(jdk5以后要求子類的返回值類型是父類返回值類型的子類也行)子類方法的權(quán)限不能小于父類子類方法不能拋出比父類更多的異常重載同一個(gè)類中,方法名一樣,參數(shù)列表不一樣(參數(shù)數(shù)量,參數(shù)類型),與返回值類型無關(guān)構(gòu)造函數(shù)1構(gòu)造函數(shù)是不能繼承的;2但是子類可以在構(gòu)造函數(shù)中通過 super()調(diào)用父類與之相對(duì)應(yīng)的構(gòu)造3如果子類構(gòu)造函數(shù)首行沒有明確指定this(),super(“”);這樣的語句的話,其實(shí)是有一天隱式語句super(),調(diào)用父類空參數(shù)構(gòu)造,如果父類沒有空參數(shù)構(gòu)造的話,子類是會(huì)報(bào)錯(cuò)的;學(xué)習(xí)資料學(xué)習(xí)資料收集于網(wǎng)絡(luò),僅供參考4如果子類首行有this()這樣的語句的話,就沒有隱式語句 super();5不論子類的第一行有沒有this(),super();創(chuàng)建子類對(duì)象的時(shí)候一定會(huì)調(diào)用到父類的某個(gè)構(gòu)造;4與上帝相關(guān) Object任何類java中自帶的類,或者是我們自定義的類,都直接或間接的繼承自O(shè)bject;2如果某個(gè)類沒有明確指定 父類的話,那么這個(gè)類就默認(rèn)繼承自 Object;所有Object中定義的方法所有java對(duì)象都可以調(diào)用4比如toString() equals(Objectobject)5直接打印對(duì)象的話.我們發(fā)現(xiàn)出現(xiàn)的是對(duì)象的內(nèi)存地址值,因?yàn)榇蛴?duì)象就是打印的對(duì)象的toString()方法的返回值.而Object身上定義的toString方法返回的就是對(duì)象的內(nèi)存地址值,這個(gè)時(shí)候這需要我們重寫toString方法以后,調(diào)用的就是子類自己的toString方法了抽象類1發(fā)現(xiàn)該類事物都具備該功能 ,但是不確定如何實(shí)現(xiàn),就可以定義成抽象方法2抽象方法特點(diǎn) 沒有方法體,被abstract修飾3如果一個(gè)類中有抽象方法 ,這個(gè)類也必須得是抽象類4如果一個(gè)類繼承了抽象類以后,這個(gè)類要么是抽象的,要么必須實(shí)現(xiàn)抽象類中的所有抽象方法5抽象類和普通類的不同;抽象類不能被實(shí)例化對(duì)象 ;學(xué)習(xí)資料學(xué)習(xí)資料收集于網(wǎng)絡(luò),僅供參考為什么不能實(shí)例化對(duì)象因?yàn)閯?chuàng)建對(duì)象以后就可以通過對(duì)象調(diào)用抽象類中沒有方法體的抽象方法了,這樣是沒有意義的,為了不讓調(diào)用,干脆就不讓創(chuàng)建對(duì)象了;7抽象類有沒有構(gòu)造函數(shù)?抽象類天生就是被繼承的 ,然后創(chuàng)建子類對(duì)象的時(shí)候一定會(huì)調(diào)用到父類構(gòu)造8抽象類中可以沒有抽象方法 ;6Final1常量不能重新賦值2類該類不能被繼承不能派生子類3方法該方法不能被重寫(覆蓋)7Abstract 修飾方法 和三個(gè)關(guān)鍵字沖突finalstaticprivate8super 關(guān)鍵字1 super.指代父類對(duì)象的引用 可以通過super.調(diào)用父類的屬性和方法2可以通過super()在構(gòu)造函數(shù)中調(diào)用父類與之相對(duì)應(yīng)的構(gòu)造函數(shù)學(xué)習(xí)資料學(xué)習(xí)資料收集于網(wǎng)絡(luò),僅供參考多態(tài)4.1多態(tài)的體現(xiàn)Animalanimal=newPig();父類的引用指向了子類對(duì)象左邊聲明的是父類,右邊創(chuàng)建的是子類;4.2多態(tài)的前提存在繼承或 實(shí)現(xiàn)關(guān)系4.3多態(tài)的好處簡化了代碼;大大提高了程序擴(kuò)張性;4.4多態(tài)的弊端只能調(diào)用父類共有的方法 ,不能調(diào)用子類特有的方法4.5多態(tài)的應(yīng)用Animalanimal=newPig();能不能調(diào)用看左邊, 具體調(diào)用誰的看右邊;非要調(diào)用子類特有的方法需要強(qiáng)轉(zhuǎn) , 向下轉(zhuǎn)型:強(qiáng)制把父類的應(yīng)用轉(zhuǎn)成子類對(duì)象 ;學(xué)習(xí)資料學(xué)習(xí)資料收集于網(wǎng)絡(luò),僅供參考向下轉(zhuǎn)型容易出問題, 為了防止類型映射異常,最好在強(qiáng)轉(zhuǎn)以前進(jìn)行類型判斷 ;Instanceof4.6多態(tài)的應(yīng)用場景定義方法的時(shí)候,形式參數(shù)的類型聲明為父類,這樣調(diào)用方法的時(shí)候就可以傳遞該父類的任意子類對(duì)象進(jìn)來了; 以父類作為方法的返回值類型 ,接口如何定義一個(gè)接口,interface初期理解,接口就是里邊都是抽象方法的抽象類接口中成員接口中只能有兩種成員3.1抽象方法3.2靜態(tài)常量4接口中的成員都有固定的修飾符 ,可以省略抽象方法的 publicabstract靜態(tài)常量的 publicfinalstatic接口和抽象類都不能實(shí)例化對(duì)象接口是沒有構(gòu)造函數(shù)的,接口支持多實(shí)現(xiàn)implementsA,B,C,D學(xué)習(xí)資料學(xué)習(xí)資料收集于網(wǎng)絡(luò),僅供參考8一個(gè)類在繼承了一個(gè)類的同 時(shí)還可以實(shí)現(xiàn)多個(gè)接口9接口和接口之間也有關(guān)系 ,是繼承關(guān)系接口和接口之間支持多繼承何時(shí)使用接口2.1 接口是額外的功能2.2 接口預(yù)先定義好的規(guī)則異常程序運(yùn)行中的不正常事件 ,會(huì)導(dǎo)致程序終止運(yùn)行,1tryTry{可能出現(xiàn)異常的代碼}2catchCatch(要捕獲的異常對(duì)象){捕獲住異常執(zhí)行的代碼;e.printStackTrace();}學(xué)習(xí)資料學(xué)習(xí)資料收集于網(wǎng)絡(luò),僅供參考3finallyFinally{不論是否發(fā)生異常;不論發(fā)生異常之后能不能捕獲住異常 ,都會(huì)執(zhí)行的代碼即便trycatch中有return語句,也是先執(zhí)行完finally中的代碼,再return;Finally不執(zhí)行的唯一情況是 trycatch中碰到System.exit(1);’}4多重catch 語句塊;Try中代碼發(fā)生異常以后,會(huì)從上往下依次匹配catch代碼塊,匹配上某一個(gè)的話就不繼續(xù)往下匹配了;我們經(jīng)常會(huì)在多個(gè)catch的最后catch一個(gè)最大的Exception,起一個(gè)兜底的操作,就是即便發(fā)生了我們沒有預(yù)料到的異常,程序也不會(huì)終止掉,并且最大的異常應(yīng)該放在最后一個(gè)catch塊;5 throws throwThrows用來在方法上拋出多個(gè)異常類的 ,各個(gè)異常類之間用 逗號(hào)分隔開Throw用來在方法內(nèi)部拋出一個(gè)異常對(duì)象學(xué)習(xí)資

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論