




已閱讀5頁,還剩23頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
java中實(shí)現(xiàn)方法重載的條件:1、 在同一類中2、 方法名稱相同,參數(shù)不相同(類型、個(gè)數(shù)、順序)3、 與訪問修飾符和返回類型無關(guān)4、 如何區(qū)分所要調(diào)用方法呢? * 通過參數(shù)進(jìn)行區(qū)分 * 方法重載的適用場合:多個(gè)方法功能相同,只是參數(shù)不同,可以動(dòng)態(tài)根據(jù)參數(shù)從而區(qū)分調(diào)用不同的方法 * 好處: * 在調(diào)用時(shí)只需要記住 一個(gè)方法,從而通過參數(shù)進(jìn)行區(qū)分成員變量與局部變量的區(qū)分:1、所在位置不同: 成員變量在類中,但不在具體的方法中以及代碼塊中局部變量在方法中以及在代碼語句中2、初始值不同:成員變量聲明就可以使用,它會(huì)默認(rèn)進(jìn)行賦值操作局部變量就必須聲明、賦值才能使用(它不存在默認(rèn)值)3、在內(nèi)存中存儲(chǔ)位置不同 *成員變量分配到堆內(nèi)存中 *局部變量分配至棧中4、生命周期不同 * 成員變量隨著對象的存在而存在,隨對象的銷毀而銷毀 * 局部變量是隨著方法調(diào)用而存,隨著方法銷毀而銷毀 * 對于成員變量為int的默認(rèn)值為: 0 * 對于成員變量為string的默認(rèn)值為: null * 對于成員變量為double的默認(rèn)值為: 0.0構(gòu)造方法的特征:* 1、方法名稱與類名相同* 2、無返回類型(理解:調(diào)用構(gòu)造方法返回當(dāng)前的對象)* 構(gòu)造方法的作用:* 1、創(chuàng)建類的對象必須顯示調(diào)用構(gòu)造方法* 2、可以對類的成員進(jìn)行初始化 * 構(gòu)造方法可以進(jìn)行重載* 1、要注意不能無限制進(jìn)行重載* 2、一個(gè)類提供帶全參數(shù)與無參的構(gòu)造方法再加相應(yīng)的set實(shí)現(xiàn)面向?qū)ο蟮姆庋b* 1、屬性私有化* 2、提供對應(yīng)的public的setXxxx()與 getXxx()的方法相應(yīng)提供set與get的方法 * set與get的方法命名規(guī)則: * set + StuName = setStuName() * get + StuName = getStuName()3、對setXxx()方法進(jìn)行合理性限制靜態(tài)變量與非靜態(tài)變量的區(qū)別1、非靜態(tài)變量單獨(dú)屬于某個(gè)對象 2、而靜態(tài)變量則屬于整個(gè)類,多個(gè)對象共享的 3、靜態(tài)變量是存儲(chǔ)在靜態(tài)方法區(qū)中,而非靜態(tài)變量則是存儲(chǔ)在堆上(成員變量) 問題: * 1、靜態(tài)變量可以直接用類名調(diào)用也可以用對象名來調(diào)用(為什么) * 2、靜態(tài)變量又稱之為類變量,靜態(tài)方法又稱之為類方法 * static關(guān)鍵字能修飾哪些成員? * 1、可以修飾成員變量 * 2、可以修飾成員方法 * 3、可以修飾代碼塊java如何進(jìn)行調(diào)試,從而跟蹤代碼的執(zhí)行過程1、定義斷點(diǎn)2、起動(dòng)調(diào)用: Debug as (java application)3、進(jìn)行單步跟蹤(F6下一步,F(xiàn)5進(jìn)入里面進(jìn)行跟蹤)this關(guān)鍵字1、this關(guān)鍵代表當(dāng)前對象2、使用this關(guān)鍵字區(qū)分成員變量與局部變量同名3、在本類中使用this關(guān)鍵可以調(diào)用成員屬性與成員方法4、this關(guān)鍵字可以用來調(diào)用構(gòu)造方法5、在一個(gè)構(gòu)造方法中通過this關(guān)鍵在調(diào)用另一個(gè)構(gòu)造 方法時(shí)必須出現(xiàn)在第一句代碼位置構(gòu)造方法重寫的條件* 1、在繼承中(有父類與子類)* 2、子類中的方法與父類被重寫的方法保持簽名一致(方法名稱相同、參數(shù)相同、返回類型相同)* 3、子類重寫的方法的訪問修飾符要么與父類保持一致但可以大* 4、子類重寫的方法不能比父類被重寫的方法拋的異常更大,但可以小(要么是異常類的子類)super關(guān)鍵字* 1、super關(guān)鍵字指向父類對象* 2、通過super關(guān)鍵字可以在子類的構(gòu)造方法中通過它顯示調(diào)用父類的構(gòu)造 方法,* 但是必須在子類構(gòu)造方法的第一句代碼位置 * 3、通過super關(guān)鍵可以調(diào)用父類其他成員,當(dāng)位置可隨意java中的繼承 * 1、繼承的原則:要符合is-a關(guān)系 * 2、父類中是所有子類的共性的成員 * 3、子類通過extends父類 * 4、java中的繼承只支持單一繼承 * 5、子類繼承父類以下則不能繼承 * . 父類private成員不能繼承 * . 父類構(gòu)造方法不能繼承 * . 如果是默認(rèn)的訪問修飾符不同包的子類不能繼承(同包的子類可以繼承)繼承的好處:* 1、模擬實(shí)現(xiàn)世界中對象與對象之間的關(guān)系 * 2、提高了代碼的重用性訪問修飾符作用域* private : 本類* defalut or friendly: 本類 , 同包的子類, 不同包的子類不可* protected:本類,同包的子類可以 or 同包的非子類也可, 不同包的子類可以 or 不同包的非子類則不可* public : all抽象類abstract有什么作用:1、模擬現(xiàn)實(shí)世界中對象與對象之間的關(guān)系* 2、可以適當(dāng)提高代碼重用、對于擴(kuò)展與維護(hù)有利(1)把多個(gè)共性的東西提取到一個(gè)類中,這是繼承的做法。 但是呢,這多個(gè)共性的東西,在有些時(shí)候,方法聲明一樣,但是方法體。 也就是說,方法聲明一樣,但是每個(gè)具體的對象在具體實(shí)現(xiàn)的時(shí)候內(nèi)容不一樣。 所以,我們在定義這些共性的方法的時(shí)候,就不能給出具體的方法體。而一個(gè)沒有具體的方法體的方法是抽象的方法。 在一個(gè)類中如果有抽象方法,該類必須定義為抽象類。(2)抽象類的特點(diǎn)A:抽象類和抽象方法必須用關(guān)鍵字abstract修飾B:抽象類中不一定有抽象方法,但是有抽象方法的類一定是抽象類C:抽象類不能實(shí)例化D:抽象類的子類a:是一個(gè)抽象類。b:是一個(gè)具體類。這個(gè)類必須重寫抽象類中的所有抽象方法。(3)抽象類的成員特點(diǎn):A:成員變量有變量,有常量B:構(gòu)造方法有構(gòu)造方法C:成員方法有抽象,有非抽象(4)抽象類的幾個(gè)小問題A:抽象類有構(gòu)造方法,不能實(shí)例化,那么構(gòu)造方法有什么用?用于子類訪問父類數(shù)據(jù)的初始化B:一個(gè)類如果沒有抽象方法,卻定義為了抽象類,有什么用?為了不讓創(chuàng)建對象C:abstract不能和哪些關(guān)鍵字共存a:final沖突b:private 沖突c:static 無意義多態(tài)1、java中構(gòu)成多態(tài)的條件 * . 要有繼承 * . 要有重寫 * . 父類的引用指向子類的對象(也可以指向父類自身的對象)(1)同一個(gè)對象在不同時(shí)刻體現(xiàn)出來的不同狀態(tài)。(2)多態(tài)的前提:A:有繼承或者實(shí)現(xiàn)關(guān)系。B:有方法重寫。C:有父類或者父接口引用指向子類對象。多態(tài)的分類:a:具體類多態(tài)class Fu class Zi extends Fu Fu f = new Zi();b:抽象類多態(tài)abstract class Fu class Zi extends Fu Fu f = new Zi();c:接口多態(tài)interface Fu class Zi implements Fu Fu f = new Zi();(3)多態(tài)中的成員訪問特點(diǎn)A:成員變量編譯看左邊,運(yùn)行看左邊B:構(gòu)造方法子類的構(gòu)造都會(huì)默認(rèn)訪問父類構(gòu)造C:成員方法編譯看左邊,運(yùn)行看右邊D:靜態(tài)方法編譯看左邊,運(yùn)行看左邊為什么?因?yàn)槌蓡T方法有重寫。(4)多態(tài)的好處: 1、模擬了現(xiàn)實(shí)世界中對象與對象之間的關(guān)系 * 2、提高了代碼的可重用性 * 3、提高了程序可擴(kuò)展性(靈活性)A:提高代碼的維護(hù)性(繼承體現(xiàn))B:提高代碼的擴(kuò)展性(多態(tài)體現(xiàn)) (5)多態(tài)的弊端:父不能使用子的特有功能?,F(xiàn)象:子可以當(dāng)作父使用,父不能當(dāng)作子使用。多態(tài)中的轉(zhuǎn)型A:向上轉(zhuǎn)型從子到父從子類到父類的類型適用于自動(dòng)類型轉(zhuǎn)換 * 向上轉(zhuǎn)型:從子類到父類的類型(前提:要有繼承) * 特點(diǎn) :子類能夠訪問的層面只能站在父類對象來看,來能看到的只是被子類重寫的方法, * 自身所特殊的方法則調(diào)用不到。B:向下轉(zhuǎn)型從父到子向下轉(zhuǎn)型(強(qiáng)制類型轉(zhuǎn)換) * (子類)父類對象 * 存在問題:可能會(huì)產(chǎn)生classcastException(類型轉(zhuǎn)換異常) * 如何避免:使用instanceof運(yùn)算符final關(guān)鍵字使用final關(guān)鍵字修飾成員屬性(常量)final可以修飾成員方法(表示該方法不能重寫)如果某個(gè)類被final修飾了,表示該類不能繼承(1)是最終的意思,可以修飾類,方法,變量。(2)特點(diǎn):A:它修飾的類,不能被繼承。B:它修飾的方法,不能被重寫。C:它修飾的變量,是一個(gè)常量。(3)面試相關(guān):A:局部變量a:基本類型 值不能發(fā)生改變b:引用類型 地址值不能發(fā)生改變,但是對象的內(nèi)容是可以改變的B:初始化時(shí)機(jī)a:只能初始化一次。b:常見的給值定義的時(shí)候。(推薦)構(gòu)造方法中。綁定的類型1、動(dòng)態(tài)綁定:一定在運(yùn)行過程中,通過具體的傳參才能決定的(后期綁定)2、靜態(tài)綁定:在編譯期間就能夠決定的(前期綁定)第4章 Java中的接口1、 Java中接口語法2、 語法1:3、 修飾符 interface 接口名 extends 父接口1,父接口2,4、 常量定義5、 方法定義6、 7、 語法2:8、 class 類名 extends 父類名 接口1,接口2,9、 類的內(nèi)容10、 接口說明A. 接口和類、抽象類是一個(gè)層次的概念,命名規(guī)則相同。如果修飾符是public,則該接口在整個(gè)項(xiàng)目中可見。如果省略修飾符,則該接口只在當(dāng)前包中可見。B. 接口中可以定義常量,不能定義變量。接口中屬性都會(huì)自動(dòng)用public static final修飾,即接口中屬性都是全局靜態(tài)常量。接口中的常量必須在定義時(shí)指定初始值。1. public static final PI = 3.14;2. int PI = 3.14;/在接口中,這兩個(gè)定義語句效果完全相同3. int PI;/錯(cuò)誤,在接口中必須指定初始值,在類中會(huì)有默認(rèn)值C. 接口之間可以通過extends實(shí)現(xiàn)繼承關(guān)系,一個(gè)接口可以繼承多個(gè)接口,但接口不能繼承類。D. 一個(gè)類只能有一個(gè)直接父類,但可以通過implements實(shí)現(xiàn)多個(gè)接口。類必須實(shí)現(xiàn)接口的全部方法,否則必須定義為抽象類。類在繼承父類的同時(shí)又實(shí)現(xiàn)多個(gè)接口時(shí),extends必須位于implements之前。E. 接口是一種特殊的抽象類抽象類與接口的區(qū)別A. 成員區(qū)別:1. 抽象類:a) 成員變量:可以變量,也可以常量b) 構(gòu)造方法:有c) 成員方法:可以抽象,也可以非抽象2. 接口:a) 成員變量:只可以為常量b) 成員方法:只可以抽象B. 關(guān)系區(qū)別:3. 類與類:繼承,單繼承4. 類與接口:實(shí)現(xiàn),單實(shí)現(xiàn),多實(shí)現(xiàn)5. 接口與接口:繼承,單繼承,多繼承C. 設(shè)計(jì)理念區(qū)別:6. 抽象類:被繼承體現(xiàn)的是is-a的關(guān)系。抽象類中定義的是該繼承體系的共性功能。7. 接口:被實(shí)現(xiàn)體現(xiàn)的是like-a的關(guān)系。接口中定義的是該繼承體系的擴(kuò)展功能。(在許多框架中都采用面向接口編程的思想)理解如果說子類繼承超類是“is a”,即“是”的關(guān)系,類和支持類之間是“has a”,即“有”的關(guān)系,或稱“組合”,那么類和接口則是“l(fā)ike a”,即“像是”的關(guān)系。接口表示,所有實(shí)現(xiàn)了我這個(gè)接口的類都具有我規(guī)定的協(xié)議,即“看起來都像我”,確切地說,“看起來都像我的簽名”第7章 Java中的常用類包裝類(1)java八個(gè)基本數(shù)據(jù)類型: byte , char , short , int , long , float , double , boolean(2)對應(yīng)的八個(gè)包裝類型:Byte , Character , Short , Integer , Long , Float , Double , Boolean 都位于java.lang包中(3)裝箱與拆箱:(JDK1.5(java5.0)開始支持裝箱與拆箱)A:裝箱: 基本類型 - 包裝類型 (Integer a = 12)B:拆箱: 包裝類型 - 基本類型 ( int c = a;) int c = Value();C:包裝類方法: .xxxValue() 拆箱 , .valueOf() 裝箱 (4)包裝類擴(kuò)展題:A: Integer a = new Integer(12) ; Integer b = new Integer(13); System.out.println(a = b);String類 (字符串起來形成字符串 or 字符串是字符的數(shù)組)(1) public final class String . :該類不能派生子類(不能繼承) (2) String對象不可變 (3) 頻繁拼接效率低 (4) 常用方法 . int length(): 返回字符串的長度方法(字符的個(gè)數(shù)),注意與數(shù)組length屬性區(qū)別; . boolean equals(Object object): 將此字符串與指定的對象比較;該方法是繼承自O(shè)bject中,String類中對該方法進(jìn)行了重寫,用于比較兩字符串對象的值是否相等; ( = 進(jìn)行說明). int indexOf(.) : 返回指定的字符或字符串在該字符串第一次出現(xiàn)的索引位置如果存在則返回具體的索引位置,否則返回-1(-1表示不存在) 例如:郵箱地址中是否存在 與 . 符號(hào)則可以使用indexOf()方法;. int lastIndexOf(.):. char charAt(int index): 在指定的位置提取單個(gè)字符;. String subString(.) : 截取字符串方法;. String concat(String str) : 拼接字符串(使用+做連接). String replace(.): 替換方法. String trim();過濾該字符串前后空格. String toLowerCase() : 轉(zhuǎn)換為小寫. String toUpperCase() : 轉(zhuǎn)換為大寫. int compareTo(String anotherString) : 按字典順序比較兩字符串. static String format(.) : 格式化字符串StringBuffer類String , StringBuffer(JDK1.0) , StirngBuilder(JDK5.0)區(qū)別 A:string不可變,后二者可變; B:stringbuffer就線程安全的,而StirngBuilder是線程不安全的; C:效率: StirngBuilder StringBuffer String D: String、StringBuffer、StringBuilder都是被final修飾的,是不能夠被繼承改寫的第8章 Java中的集合CollectionList集合1、List-ArrayList(實(shí)現(xiàn)類):一個(gè)有序集合,可以允許重復(fù)元素、可以存null元素有序(存儲(chǔ)有先后順序)ArrayList在哪些場合下使用:在循環(huán)遍歷與隨機(jī)訪問時(shí)推薦使用Set集合set集合的特點(diǎn): * 1、它是無序 * 2、只能存一個(gè)null * 3、不許重復(fù)泛型集合LinkedListLinkedList集合適應(yīng)場合:對于頻繁插入與刪除則選它Map集合(key,value)HashMap:特點(diǎn) * 1、用于key-value對應(yīng)的關(guān)系 * 2、鍵不允許重復(fù)(如果重復(fù)會(huì)發(fā)生覆蓋),值可以重復(fù)第9章 JAVA中的流1、File類2、java中的流(1)java中操作流的類都位于: java.io中(2)流的分類A: 按照流的流向分: 輸入流與輸出流. 輸入流:只能從中讀取數(shù)據(jù),而不能向其寫出數(shù)據(jù); . 輸出流:只能向其寫出數(shù)據(jù),而不能從中讀取數(shù)據(jù); . 說明:數(shù)據(jù)從內(nèi)存到硬盤,通常稱為輸出流,這里的輸入、輸出都是從程序運(yùn)行所在內(nèi)存的角度來劃分的。B: 按照處理的數(shù)據(jù)單元不同: . 字節(jié)流:字節(jié)流操作的最小數(shù)據(jù)單元是8位字節(jié)。 . 字符流:而字符流操作的最小數(shù)據(jù)單元是16位字符。C: 按照流的角色: . 節(jié)點(diǎn)流:節(jié)點(diǎn)流也被稱為低級流;(可以從/向一個(gè)特定的IO設(shè)備如磁盤、網(wǎng)絡(luò))讀/寫數(shù)據(jù)的流) . 處理流:用于對一個(gè)已存在的流進(jìn)行連接或封裝,通過封裝后流來實(shí)現(xiàn)數(shù)據(jù)讀/寫功能。(3)字節(jié)流與字符流A:字節(jié)流 .InputStream:字節(jié)輸入流; .OutputStream:字節(jié)輸出流;B:字符流 .Reader:字符輸入流; .Write:字符輸出流;3、字節(jié)流與字符流的具體類 (1)FileInputStream (2)FileReader (3)FileOutputStream (4)FileWrite4、轉(zhuǎn)換流(1)輸入/輸出流體系里還提供了2個(gè)轉(zhuǎn)換流,這兩個(gè)轉(zhuǎn)換流用于實(shí)現(xiàn)將字節(jié)流轉(zhuǎn)成字符流, 其中InputStreamReader將字節(jié)輸入流轉(zhuǎn)換成字符輸入流,OutputStreamWriter將字節(jié) 輸出流轉(zhuǎn)換成字符輸出流。序列化 (1)序列化的含義: 序列化機(jī)制允許將實(shí)現(xiàn)序列化的java對象轉(zhuǎn)換為字節(jié)序列,這些字節(jié)序列可以保存至磁盤上或通過網(wǎng)絡(luò)傳輸,以備以后重新恢復(fù)成原來對象。序列化機(jī)制使得對象可以脫離程序的運(yùn)行而獨(dú)立存在。 (2)如何實(shí)現(xiàn)對象序列化序列化操作: A:將類實(shí)現(xiàn)序列化接口(Serializable) B:創(chuàng)建一個(gè)ObjectOutputStream輸出流 ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(Object.txt); C:調(diào)用ObjectOutputStream對象的writeObject方法輸出可序列化對象 Person per = new Person(.); oos.writeObject(per);反序列化: A:創(chuàng)建一個(gè)ObjectInputStream輸入流 ObjectInputStream ois = new ObjectInputStream(new FileInputStream(object.txt); B:調(diào)用ObjectInputStream的readObject方法讀取流中的對象 Person person = (Person) ois.readObject();sysout(person.getPerName() + t + person.getPerAge)第10章 Java GUI和swingswing體系: (1)JFrame: Object|-Component|-Container|-windo
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 跨境電商直播背景板租賃與產(chǎn)品展示解決方案合同
- 親子樂園內(nèi)場攤位租賃與管理合同
- 地震后橋梁裂縫排查技術(shù)與管理體系
- 智慧醫(yī)院門禁一卡通解決方案
- ??谱o(hù)理人才隊(duì)伍的建設(shè)
- 店鋪安全生產(chǎn)培訓(xùn)
- 客戶溝通技巧培訓(xùn)體系構(gòu)建
- 二個(gè)月嬰兒護(hù)理
- CRRT護(hù)理質(zhì)量持續(xù)改進(jìn)
- 自己的事情自己做心理健康教育
- 鐵路施工安全培訓(xùn)
- 《造林綠化落地上圖操作技術(shù)規(guī)范》
- 國企基金公司招聘考試題
- 燒傷科普講座課件
- KALLER基本的氮?dú)鈴椈衫碚撝R(shí)
- 《狼性企業(yè)文化》課件
- 智慧能源管理平臺(tái)建設(shè)方案書
- 周轉(zhuǎn)材料管理制度范本
- 《線性代數(shù)》課程思政的案例及思考
- 免疫規(guī)劃媽媽課堂培訓(xùn)
- 江西管理職業(yè)學(xué)院教師招聘考試歷年真題
評論
0/150
提交評論