




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
張孝祥IT課堂
-Java就業培訓教程主講老師:□□□張孝祥IT課堂
-Java就業培訓教程主講老師:□□□1第四講面向對象(下)第四講2類的繼承通過繼承可以簡化類的定義。Java只支持單繼承,不允許多重繼承。可以有多層繼承,即一個類可以繼承某一個類的子類,如類B繼承了類A,類C又可以繼承類B,那么類C也間接繼承了類A。子類繼承父類所有的成員變量和成員方法,但不繼承父類的構造方法。在子類的構造方法中可使用語句super(參數列表)調用父類的構造方法。如果子類的構造方法中沒有顯式地調用父類構造方法,也沒有使用this關鍵字調用重載的其它構造方法,則在產生子類的實例對象時,系統默認調用父類無參數的構造方法。類的繼承通過繼承可以簡化類的定義。3子類對象的實例化過程分配成員變量的存儲空間并進行默認的初始化,就是用new關鍵字產生對象后,對類中的成員變量按第三章的表3.1中的對應關系對對象中的成員變量進行初始化賦值。綁定構造方法參數,就是newPerson(實際參數列表)中所傳遞進的參數賦值給構造方法中的形式參數變量。如有this()調用,則調用相應的重載構造方法(被調用的重載構造方法又從步驟2開始執行這些流程),被調用的重載構造方法的執行流程結束后,回到當前構造方法,當前構造方法直接跳轉到步驟6執行顯式或隱式追溯調用父類的構造方法(一直到Object類為止,Object是所有Java類的最頂層父類,在本章后面部分有詳細講解),父類的構造方法又從步驟2開始對父類執行這些流程,父類的構造方法的執行流程結束后,回到當前構造方法,當前構造方法繼續往下執行。進行實例變量的顯式初始化操作,也就是執行在定義成員變量時就對其進行賦值的語句,如:執行當前構造方法的方法體中的程序代碼子類對象的實例化過程分配成員變量的存儲空間并進行默認的初始4子類對象的實例化過程思考:1).為什么super(…)和this(…)調用語句不能同時在一個構造函數中出現? 2).為什么super(…)或this(…)調用語句只能作為構造函數中的第一句出現?子類對象的實例化過程思考:1).為什么super(…)和th5覆蓋父類的方法覆蓋方法必須和被覆蓋方法具有相同的方法名稱、參數列表和返回值類型。如果在子類中想調用父類中的那個被覆蓋的方法,我們可以用super.方法的格式。覆蓋方法時,不能使用比父類中被覆蓋的方法更嚴格的訪問權限。覆蓋父類的方法覆蓋方法必須和被覆蓋方法具有相同的方法名稱、6final關鍵字在Java中聲明類、屬性和方法時,可使用關鍵字final來修飾。final標記的類不能被繼承。final標記的方法不能被子類重寫。final標記的變量(成員變量或局部變量)即成為常量,只能賦值一次。方法中定義的內置類只能訪問該方法內的final類型的局部變量,用final定義的局部變量相當于是一個常量,它的生命周期超出方法運行的生命周期,將一個形參定義成final也是可以的,這就限定了我們在方法中修改形式參數的值。publicstaticfinal共同標記常量時,這個常量就成了全局的常量。final關鍵字在Java中聲明類、屬性和方法時,可使用關7抽象類java中可以定義一些不含方法體的方法,它的方法體的實現交給該類的子類根據自己的情況去實現,這樣的方法就是抽象方法,包含抽象方法的類就叫抽象類。抽象類必須用abstract關鍵字來修飾;抽象方法也必須用abstract來修飾。抽象類不能被實例化,也就是不能用new關鍵字去產生對象。抽象方法只需聲明,而不需實現。含有抽象方法的類必須被聲明為抽象類,抽象類的子類必須覆蓋所有的抽象方法后才能被實例化,否則這個子類還是個抽象類。抽象類java中可以定義一些不含方法體的方法,它的方法體的8接口(interface)如果一個抽象類中的所有方法都是抽象的,我們就可以將這個類用另外一種方式來定義,也就是接口定義。接口是抽象方法和常量值的定義的集合,從本質上講,接口是一種特殊的抽象類,這種抽象類中只包含常量和方法的定義,而沒有變量和方法的實現。接口中的成員都是public訪問類型的。接口里的變量默認是用publicstaticfinal標識的。我們可以定義一個新的接口用extends關鍵字去繼承一個已有的接口
我們也可以定義一個類用implements關鍵字去實現一個接口中的所有方法,我們還可以去定義一個抽象類用implements關鍵字去實現一個接口中定義的部分方法。一個類可以繼承一個父類的同時,實現一個或多個接口,extends關鍵字必須位于implemnets關鍵字之前。接口(interface)如果一個抽象類中的所有方法都是抽9對象的類型轉換子類對象可以自動轉換成父類父類轉換成子類必須使用強制轉換。instanceof操作符可以用它來判斷一個實例對象是否屬于一個類。Object類及equals方法對象的類型轉換子類對象可以自動轉換成父類10面向對象的多態性1).應用程序不必為每一個派生類(子類)編寫功能調用,只需要對抽象基類進行處理即可。這一招叫“以不變應萬變”,可以大大提高程序的可復用性。2).派生類的功能可以被基類的引用變量引用,這叫向后兼容,可以提高程序的可擴充性和可維護性。以前寫的程序可以被后來程序調用不足為奇,現在寫的程序(如callA方法)能調用以后寫的程序(以后編寫的一個類A的子類,如類D)就了不起了。面向對象的多態性1).應用程序不必為每一個派生類(子類)編11匿名內部類abstractclassA{ abstractpublicvoidfun1();}classOuter{publicstaticvoidmain(String[]args){newOuter().callInner(newA(){ publicvoidfun1() { System.out.println("implementforfun1"); }});}publicvoidcallInner(Aa){ a.fun1();}}匿名內部類abstractclassA12異常
異常定義了程序中遇到的非致命的錯誤,而不是編譯時的語法錯誤,如程序要打開一個不存的文件、網絡連接中斷、操作數越界、裝載一個不存在的類等。try,catch語句throws關鍵字
自定義異常與Throw關鍵字
如何對多個異常作出處理我們可以在一個方法中使用throw,try…catch語句來實現程序的跳轉一個方法被覆蓋時,覆蓋它的方法必須扔出相同的異常或異常的子類。如果父類扔出多個異常,那么重寫(覆蓋)方法必須扔出那些異常的一個子集,也就是說不能扔出新的異常。異常異常定義了程序中遇到的非致命的錯誤,而不是編譯時的語13包
package語句及應用package語句作為Java源文件的第一條語句。如果沒有package語句,則為缺省無名包。import語句及應用jdk中常用的包java.lang----包含一些Java語言的核心類,如String、Math、Integer、System和Thread,提供常用功能。java.awt----包含了構成抽象窗口工具集(abstractwindowtoolkits)的多個類,這些類被用來構建和管理應用程序的圖形用戶界面(GUI)。java.applet----包含applet運行所需的一些類。----包含執行與網絡相關的操作的類。java.io----包含能提供多種輸入/輸出功能的類。java.util----包含一些實用工具類,如定義系統特性、使用與日期日歷相關的函數。包package語句及應用14訪問控制
類本身也有訪問控制,即在定義類的class關鍵字前加上訪問控制符,但類本身只有兩種訪問控制,即public和默認,父類不能是private和protected,否則子類無法繼承。public修飾的類能被所有的類訪問,默認修飾(即class關鍵字前沒有訪問控制符)的類,只能被同一包中的所有類訪問。
訪問控制類本身也有訪問控制,即在定義類的class關鍵字前15java的命名習慣下面是java中的一些命名習慣,假設xxx,yyy,zzz分別是一個英文單詞的拼寫。包名中的字母一律小寫,如:xxxyyyzzz。類名、接口名應當使用名詞,每個單詞的首字母大寫,如:XxxYyyZzz。方法名,第一個單詞小寫,后面每個單詞的首字母大寫,如:xxxYyyZzz。變量名,第一個單詞小寫,后面每個單詞的首字母大寫,如:xxxYyyZzz。常量名中的每個字母一律大寫,如:XXXYYYZZZ。java的命名習慣下面是java中的一些命名習慣,假設xx16使用jar文件jar–cvfjar–tvfjar–xvfjar–tvf>a.txt用rar查看jar文件中的內容注意壓縮后的jar文件中的目錄結構快速查看jar包中是否有我們想找的類使用jar文件jar–cvf17演講完畢,謝謝觀看!演講完畢,謝謝觀看!18張孝祥IT課堂
-Java就業培訓教程主講老師:□□□張孝祥IT課堂
-Java就業培訓教程主講老師:□□□19第四講面向對象(下)第四講20類的繼承通過繼承可以簡化類的定義。Java只支持單繼承,不允許多重繼承。可以有多層繼承,即一個類可以繼承某一個類的子類,如類B繼承了類A,類C又可以繼承類B,那么類C也間接繼承了類A。子類繼承父類所有的成員變量和成員方法,但不繼承父類的構造方法。在子類的構造方法中可使用語句super(參數列表)調用父類的構造方法。如果子類的構造方法中沒有顯式地調用父類構造方法,也沒有使用this關鍵字調用重載的其它構造方法,則在產生子類的實例對象時,系統默認調用父類無參數的構造方法。類的繼承通過繼承可以簡化類的定義。21子類對象的實例化過程分配成員變量的存儲空間并進行默認的初始化,就是用new關鍵字產生對象后,對類中的成員變量按第三章的表3.1中的對應關系對對象中的成員變量進行初始化賦值。綁定構造方法參數,就是newPerson(實際參數列表)中所傳遞進的參數賦值給構造方法中的形式參數變量。如有this()調用,則調用相應的重載構造方法(被調用的重載構造方法又從步驟2開始執行這些流程),被調用的重載構造方法的執行流程結束后,回到當前構造方法,當前構造方法直接跳轉到步驟6執行顯式或隱式追溯調用父類的構造方法(一直到Object類為止,Object是所有Java類的最頂層父類,在本章后面部分有詳細講解),父類的構造方法又從步驟2開始對父類執行這些流程,父類的構造方法的執行流程結束后,回到當前構造方法,當前構造方法繼續往下執行。進行實例變量的顯式初始化操作,也就是執行在定義成員變量時就對其進行賦值的語句,如:執行當前構造方法的方法體中的程序代碼子類對象的實例化過程分配成員變量的存儲空間并進行默認的初始22子類對象的實例化過程思考:1).為什么super(…)和this(…)調用語句不能同時在一個構造函數中出現? 2).為什么super(…)或this(…)調用語句只能作為構造函數中的第一句出現?子類對象的實例化過程思考:1).為什么super(…)和th23覆蓋父類的方法覆蓋方法必須和被覆蓋方法具有相同的方法名稱、參數列表和返回值類型。如果在子類中想調用父類中的那個被覆蓋的方法,我們可以用super.方法的格式。覆蓋方法時,不能使用比父類中被覆蓋的方法更嚴格的訪問權限。覆蓋父類的方法覆蓋方法必須和被覆蓋方法具有相同的方法名稱、24final關鍵字在Java中聲明類、屬性和方法時,可使用關鍵字final來修飾。final標記的類不能被繼承。final標記的方法不能被子類重寫。final標記的變量(成員變量或局部變量)即成為常量,只能賦值一次。方法中定義的內置類只能訪問該方法內的final類型的局部變量,用final定義的局部變量相當于是一個常量,它的生命周期超出方法運行的生命周期,將一個形參定義成final也是可以的,這就限定了我們在方法中修改形式參數的值。publicstaticfinal共同標記常量時,這個常量就成了全局的常量。final關鍵字在Java中聲明類、屬性和方法時,可使用關25抽象類java中可以定義一些不含方法體的方法,它的方法體的實現交給該類的子類根據自己的情況去實現,這樣的方法就是抽象方法,包含抽象方法的類就叫抽象類。抽象類必須用abstract關鍵字來修飾;抽象方法也必須用abstract來修飾。抽象類不能被實例化,也就是不能用new關鍵字去產生對象。抽象方法只需聲明,而不需實現。含有抽象方法的類必須被聲明為抽象類,抽象類的子類必須覆蓋所有的抽象方法后才能被實例化,否則這個子類還是個抽象類。抽象類java中可以定義一些不含方法體的方法,它的方法體的26接口(interface)如果一個抽象類中的所有方法都是抽象的,我們就可以將這個類用另外一種方式來定義,也就是接口定義。接口是抽象方法和常量值的定義的集合,從本質上講,接口是一種特殊的抽象類,這種抽象類中只包含常量和方法的定義,而沒有變量和方法的實現。接口中的成員都是public訪問類型的。接口里的變量默認是用publicstaticfinal標識的。我們可以定義一個新的接口用extends關鍵字去繼承一個已有的接口
我們也可以定義一個類用implements關鍵字去實現一個接口中的所有方法,我們還可以去定義一個抽象類用implements關鍵字去實現一個接口中定義的部分方法。一個類可以繼承一個父類的同時,實現一個或多個接口,extends關鍵字必須位于implemnets關鍵字之前。接口(interface)如果一個抽象類中的所有方法都是抽27對象的類型轉換子類對象可以自動轉換成父類父類轉換成子類必須使用強制轉換。instanceof操作符可以用它來判斷一個實例對象是否屬于一個類。Object類及equals方法對象的類型轉換子類對象可以自動轉換成父類28面向對象的多態性1).應用程序不必為每一個派生類(子類)編寫功能調用,只需要對抽象基類進行處理即可。這一招叫“以不變應萬變”,可以大大提高程序的可復用性。2).派生類的功能可以被基類的引用變量引用,這叫向后兼容,可以提高程序的可擴充性和可維護性。以前寫的程序可以被后來程序調用不足為奇,現在寫的程序(如callA方法)能調用以后寫的程序(以后編寫的一個類A的子類,如類D)就了不起了。面向對象的多態性1).應用程序不必為每一個派生類(子類)編29匿名內部類abstractclassA{ abstractpublicvoidfun1();}classOuter{publicstaticvoidmain(String[]args){newOuter().callInner(newA(){ publicvoidfun1() { System.out.println("implementforfun1"); }});}publicvoidcallInner(Aa){ a.fun1();}}匿名內部類abstractclassA30異常
異常定義了程序中遇到的非致命的錯誤,而不是編譯時的語法錯誤,如程序要打開一個不存的文件、網絡連接中斷、操作數越界、裝載一個不存在的類等。try,catch語句throws關鍵字
自定義異常與Throw關鍵字
如何對多個異常作出處理我們可以在一個方法中使用throw,try…catch語句來實現程序的跳轉一個方法被覆蓋時,覆蓋它的方法必須扔出相同的異常或異常的子類。如果父類扔出多個異常,那么重寫(覆蓋)方法必須扔出那些異常的一個子集,也就是說不能扔出新的異常。異常異常定義了程序中遇到的非致命的錯誤,而不是編譯時的語31包
package語句及應用package語句作為Java源文件的第一條語句。如果沒有package語句,則為缺省無名包。import語句及應用jdk中常用的包java.lang----包含一些Java語言的核心類,如String、Math、Integer、System和Thread,提供常用功能。java.awt----包含了構成抽象窗口工具集(abstractwindo
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年體育休閑廣場運動項目引進與推廣研究報告
- 藥品藥店安全管理制度
- 藥品銷售異常管理制度
- 藥店醫保網絡管理制度
- 藥店消毒制度管理制度
- 萊西中學資產管理制度
- 設備臺賬資料管理制度
- 設備客戶報修管理制度
- 設備更新維護管理制度
- 設備申請購買管理制度
- 中國血脂管理指南理論知識考核試題及答案
- 教考結合·必修上冊文言知識梳理- 備考
- 血管活性藥物靜脈輸注護理
- 2024年機關事業單位工人汽車駕駛員高級技師國家題庫練習題答案
- 村級積分制管理
- Nikon尼康D3100中文說明書
- 國家開放大學2024春《1494員工勞動關系管理》期末考試真題及答案-開
- DBJ∕T 13-234-2024 不發火建筑地面應用技術標準
- 2024年新疆中考地理真題卷及答案
- 人教版初三物理總復習電學專題復習教學設計
- 項目風險記錄及跟蹤表
評論
0/150
提交評論