java面向?qū)ο笾R點總結(jié)_第1頁
java面向?qū)ο笾R點總結(jié)_第2頁
java面向?qū)ο笾R點總結(jié)_第3頁
已閱讀5頁,還剩7頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1 類和對象1.1 類:類是用來描述一類事物的共性內(nèi)容的, 類是抽象的 ;創(chuàng)建類 ,如何描述屬性功能用變量來描述屬性用方法來描述功能1.2 對象 :就是現(xiàn)實中具體的事物 ,對象是具體的 ;創(chuàng)建對象類名對象名=new 類名 ();如何通過對象訪問類中屬性和方法呢?對象名 .變量名對象名 .方法名 ();只要是 new 的對象 ,就是新創(chuàng)建的 ,就會在內(nèi)存中開辟一段單獨的空間1.2 匿名對象創(chuàng)建的對象沒有賦值給具體的變量;所以給匿名對象的屬性賦值是沒有任何意義的;匿名對象使用場景1 調(diào)用方法2 作為參數(shù)傳遞3 添加進容器中1.3This關(guān)鍵字This. 類中的普通方法訪問到的成員前邊都有this.

2、這個關(guān)鍵字This.就代表當前對象 ,普通方法 , 創(chuàng)建對象調(diào)方法 ,誰調(diào)用就代表誰This(); 可以用來在構(gòu)造函數(shù)中調(diào)用本類與之相對應(yīng)的構(gòu)造函數(shù)使用注意事項 :1 this() 只能是構(gòu)造函數(shù)的第一條執(zhí)行語句2 this()不能在構(gòu)造函數(shù)之間相互調(diào)用3 this()不能調(diào)用自己1.4 構(gòu)造函數(shù) (方法 )1.4.1 構(gòu)造函數(shù)的作用用來給對象進行初始話的(初始化就是指給對象的各個屬性賦值)1.4.2 構(gòu)造函數(shù)何時執(zhí)行對象一創(chuàng)建就會調(diào)用與之相對應(yīng)的構(gòu)造函數(shù)1.4.3 構(gòu)造函數(shù)語法修飾符沒有返回值類型類名 (參數(shù)列表 )具體執(zhí)行的代碼1.4.4 構(gòu)造函數(shù)自動添加當一個類中我們沒有明確指定構(gòu)造函數(shù)

3、的話,jvm 會自動幫我們添加一個空參數(shù)的構(gòu)造 ,如果我們指定了 ,就不添加了1.5.5 構(gòu)造函數(shù)和普通函數(shù)的區(qū)別5.1 執(zhí)行時機不同對象一創(chuàng)建就會調(diào)用與之相對應(yīng)的構(gòu)造函數(shù)普通函數(shù)只有被調(diào)用才會執(zhí)行1.5 return1 就是用來在方法中返回具體結(jié)果(結(jié)果類型必須和方法的返回值類型一致)2 即便方法的返回值類型是void,方法中也可以出現(xiàn)return;3 構(gòu)造函數(shù)中也可以有return 關(guān)鍵字1.6 成員變量和 局部變量1 作用范圍不同 , 成員變量是定義在類中的,在整個類中都起作用局部變量是定義在方法中的,在所在代碼塊起作用2 初始值不同 ,成員變量有默認初始值 ,不用賦值 ,也能直接時候局

4、部變量 ,沒有初始值 ,必須得賦值以后才能使用2 封裝2.1 staticStatic 是用來修飾類中成員成員變量成員方法被 static 修飾的成員 ,就多了一種調(diào)用方式 ,可以被類名直接調(diào)用了2.1.1 修飾成員變量該變量在內(nèi)存中只會保存一份 ,被類和所有對象共享 , 那么一個對象對其進行修改 ,會影響到其他對象 ,為了不影響其他對象 ,經(jīng)常會把靜態(tài)變量搞成常量 ,被 final 修飾 ;2.1.2 修飾成員方法靜態(tài)方法中只能訪問靜態(tài)成員普通方法中都能訪問 ;靜態(tài)方法中不能出現(xiàn)this,super 關(guān)鍵字Main 函數(shù)是靜態(tài)的 ;那么我們定義方法時 ,什么時候定義靜態(tài) ,什么時候定義非靜態(tài)

5、 ?當方法中使用到了普通 (非靜態(tài) )成員的話 ,就不能定義成靜態(tài)的 ;2.1.3 static 代碼塊(靜態(tài)代碼塊 )用來給類進行初始話(給類中的靜態(tài)成員進行初始化)會隨著類的加載而執(zhí)行 (只會執(zhí)行一次 )2.2 封裝就是隱藏類中的某些成員;僅對外提供公共的訪問方式封裝三步走 :1 私有屬性2 提供 set 和 get 方法供外界給對象設(shè)置值和獲取值3 在方法中添加具體的存取限制2.3 包和權(quán)限修飾符2.3.1 類權(quán)限修飾符可以用來修飾兩種東西:Public該類在其他包中也可以訪問(首先要導(dǎo)包import)默認2.3.2類中成員Publicprotected默認 private本類中是否能訪

6、問本包其他類其他包Public能能能默認能能不能Private能不能不能包1 創(chuàng)建包包的作用1 便于管理2 防止命名沖突 ;3 包 也是封裝的一種方式 ,可以在更廣的范圍保護類3 繼承某個類可以 通過extends 繼承其他的類一個類繼承了另外一個類以后,就繼承了所有的非私有的屬性和方法注意事項1 java 中只允許單繼承 ; 不允許多繼承 , 但是允許多層繼承2 何時繼承 ?AisB;繼承發(fā)生以后類中成員的特點1 成員變量當子類和父類的成員變量同名是 ,子類中優(yōu)先使用子類自己的 . 可以通過 super.調(diào)用父類的成員變量和成員方法 ;2 成員方法子父類具有相同的功能 ,但是子類有自己具體的

7、實現(xiàn) ,這個時候子類是沒有必要重新定義一個方法的 ,只需要重寫父類就行了 ;重寫 (覆蓋 )1 前提 ,存在繼承和 實現(xiàn)關(guān)系2 方法名一樣 ,參數(shù)列表一樣 ,返回值類型一樣 (jdk5 以后要求子類的返回值類型是父類返回值類型的子類也行 )3 子類方法的權(quán)限不能小于父類4 子類方法不能拋出比父類更多的異常重載同一個類中 ,方法名一樣 ,參數(shù)列表不一樣 (參數(shù)數(shù)量 , 參數(shù)類型 ),與返回值類型無關(guān)3 構(gòu)造函數(shù)1 構(gòu)造函數(shù)是不能繼承的 ;2 但是子類可以在構(gòu)造函數(shù)中通過super()調(diào)用父類與之相對應(yīng)的構(gòu)造3 如果子類構(gòu)造函數(shù)首行沒有明確指定 this(), super(“”);這樣的語句的話

8、,其實是有一天隱式語句 super(),調(diào)用父類空參數(shù)構(gòu)造 ,如果父類沒有空參數(shù)構(gòu)造的話 ,子類是會報錯的 ;4 如果子類首行有 this() 這樣的語句的話 ,就沒有隱式語句super();5 不論子類的第一行有沒有this(),super(); 創(chuàng)建子類對象的時候一定會調(diào)用到父類的某個構(gòu)造 ;4 與上帝相關(guān)Object1 任何類 java 中自帶的類 ,或者是我們自定義的類 , 都直接或間接的繼承自O(shè)bject;2 如果某個類沒有明確指定父類的話 ,那么這個類就默認繼承自O(shè)bject;3 所有 Object 中定義的方法所有 java 對象都可以調(diào)用4 比如 toString()equal

9、s(Object object)5 直接打印對象的話 .我們發(fā)現(xiàn)出現(xiàn)的是對象的內(nèi)存地址值 ,因為打印對象就是打印的對象的 toString()方法的返回值 . 而 Object 身上定義的 toString 方法返回的就是對象的內(nèi)存地址值 ,這個時候這需要我們重寫toString 方法以后 ,調(diào)用的就是子類自己的toString 方法了5 抽象類1 發(fā)現(xiàn)該類事物都具備該功能,但是不確定如何實現(xiàn) ,就可以定義成抽象方法2 抽象方法特點沒有方法體 , 被 abstract 修飾3 如果一個類中有抽象方法,這個類也必須得是抽象類4 如果一個類繼承了抽象類以后 ,這個類要么是抽象的 ,要么必須實現(xiàn)抽象

10、類中的所有抽象方法5 抽象類和普通類的不同 ;抽象類不能被實例化對象;6 為什么不能實例化對象因為創(chuàng)建對象以后就可以通過對象調(diào)用抽象類中沒有方法體的抽象方法了 ,這樣是沒有意義的 ,為了不讓調(diào)用 ,干脆就不讓創(chuàng)建對象了 ;7 抽象類有沒有構(gòu)造函數(shù) ?抽象類天生就是被繼承的,然后創(chuàng)建子類對象的時候一定會調(diào)用到父類構(gòu)造8 抽象類中可以沒有抽象方法;6 Final1常量不能重新賦值2類該類不能被繼承不能派生子類3方法該方法不能被重寫 (覆蓋 )7 Abstract修飾方法和三個關(guān)鍵字沖突1 final2 static3 private8 super關(guān)鍵字1super. 指代父類對象的引用可以通過 s

11、uper.調(diào)用父類的屬性和方法2 可以通過 super() 在構(gòu)造函數(shù)中調(diào)用父類與之相對應(yīng)的構(gòu)造函數(shù)4 多態(tài)4.1 多態(tài)的體現(xiàn)Animal animal = new Pig();父類的引用指向了子類對象左邊聲明的是父類 ,右邊創(chuàng)建的是子類 ;4.2 多態(tài)的前提存在繼承或?qū)崿F(xiàn)關(guān)系4.3 多態(tài)的好處簡化了代碼 ;大大提高了程序擴張性 ;4.4 多態(tài)的弊端只能調(diào)用父類共有的方法,不能調(diào)用子類特有的方法4.5 多態(tài)的應(yīng)用Animal animal = new Pig();能不能調(diào)用看左邊 ,具體調(diào)用誰的看右邊 ;非要調(diào)用子類特有的方法需要強轉(zhuǎn),向下轉(zhuǎn)型 :強制把父類的應(yīng)用轉(zhuǎn)成子類對象;向下轉(zhuǎn)型容易出問

12、題 ,為了防止類型映射異常 ,最好在強轉(zhuǎn)以前進行類型判斷;Instanceof4.6 多態(tài)的應(yīng)用場景4.6.1 定義方法的時候 ,形式參數(shù)的類型聲明為父類 ,這樣調(diào)用方法的時候就可以傳遞該父類的任意子類對象進來了 ;4.6.2以父類作為方法的返回值類型,5 接口1 如何定義一個接口 , interface2 初期理解 ,接口就是里邊都是抽象方法的抽象類3 接口中成員 接口中只能有兩種成員3.1 抽象方法3.2 靜態(tài)常量4 接口中的成員都有固定的修飾符,可以省略抽象方法的public abstract靜態(tài)常量的public final static5 接口和抽象類都不能實例化對象6 接口是沒有構(gòu)

13、造函數(shù)的 ,7 接口支持多實現(xiàn) implements A,B,C ,D8 一個類在繼承了一個類的同 時還可以實現(xiàn)多個接口9 接口和接口之間也有關(guān)系 ,是繼承關(guān)系10 接口和接口之間支持多繼承2 何時使用接口2.1接口是額外的功能2.2接口預(yù)先定義好的規(guī)則6 異常程序運行中的不正常事件,會導(dǎo)致程序終止運行 ,1 tryTry可能出現(xiàn)異常的代碼2 catchCatch(要捕獲的異常對象 )捕獲住異常執(zhí)行的代碼 ;e.printStackTrace();3 finallyFinally不論是否發(fā)生異常 ;不論發(fā)生異常之后能不能捕獲住異常,都會執(zhí)行的代碼即便 try catch 中有 return 語句 ,也是先執(zhí)行完 finally 中的代碼 ,再 return;Finally 不執(zhí)行的唯一情況是try catch 中碰到 System.exit(1);4 多重 catch語句塊 ;Try 中代碼發(fā)生異常以后 ,會從上往下依次匹配 catch 代碼塊 ,匹配上某一個的話就不繼續(xù)往下匹配了 ;我們經(jīng)常會在多個 catch 的最后 catch 一個最大的 Exception, 起一個兜底的操作 , 就是即便發(fā)生了我們沒有預(yù)料到的異常 ,程序也不會終止掉 ,并且 最大的異常應(yīng)該放在最后一個 catch 塊;5throwsthrowThrows 用來在方法上拋出多個異常類的,各個異常類

溫馨提示

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

最新文檔

評論

0/150

提交評論