版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Java 基礎(chǔ)課第 9 天課件一、接口繼承1、 一個(gè)接口,可以繼承多個(gè)接口2、 用于接口的數(shù)據(jù)類型重新組合3、 示例如下二、接口中的所有方法,自動(dòng)為 public abstract 1、 接口方法,前面沒(méi)有默認(rèn)地為 public abstract2、 示例如下publicerface IAdd add(a,b); /缺省了public abstractpublic class ImplAdd_1implements IAdd Override/通過(guò)下面的方法,說(shuō)明父類的add(a,b)必須是public abstractpublicadd(a,b) return 0;publicerface
2、IAdd add(a,b); /缺省了public abstractpublicerface ISub sub(a,b);publicerface IAddSub extends IAdd,ISub publicerface IMul mul(a,b);publicerface IDiv div(a,b);publicerface IMulDiv extends IMul,IDiv /ICal有7+1(Object)=8個(gè)數(shù)據(jù)類型publicerface ICal extends IAddSub,IMulDiv,IAdd,ISub, IMul,IDiv三、關(guān)于接口中的屬性1、 接口的所有屬性,
3、缺省類型為public sic final 2、 示例如下四、關(guān)于強(qiáng)制轉(zhuǎn)換原理分析public abstract class AbsAdd 。public class ImplAdd_1 extends AbsAdd 。檢測(cè)/強(qiáng)制轉(zhuǎn)換的原理分析public sic void main(String args) ImplAdd_1 obj=new ImplAdd_1(); Log.getLog().info(obj=+obj);b1=obj instanceof ImplAdd_1; Log.getLog().info(b1=+b1);b2=obj instanceof AbsAdd; Log.
4、getLog().info(b2=+b2);b3=obj instanceof Object; Log.getLog().info(b3=+b3); AbsAdd obj2=obj;check=obj2=obj; Log.getLog().info(check=+check);ImplAdd_1 obj3=(ImplAdd_1) obj2; /此時(shí),需要強(qiáng)制轉(zhuǎn)換/Object obj4=obj;/不需要強(qiáng)轉(zhuǎn) Object obj4=obj2;/不需要強(qiáng)轉(zhuǎn)ImplAdd_1 obj5=(ImplAdd_1) obj4; /此時(shí),需要強(qiáng)制轉(zhuǎn)換Log.getLog().info(上面有錯(cuò)嗎?);pu
5、blicerface IAdd num=10;/缺省了 public sic final,為常量String NAME=java基礎(chǔ);add(a,b); /缺省了public abstract/ public sic final String NAME=java基礎(chǔ); /這一行代碼下面等效五、關(guān)于覆蓋方法的定位1、 抽象父類2、 實(shí)現(xiàn)子類 13、 實(shí)現(xiàn)子類 2public class ImplAdd_2 extends AbsAddpublic ImplAdd_2() Log.getLog().info(this=+this);Overrideadd(a,b) Log.getLog().inf
6、o(a= + a + ,b= + b); return a + b+100;public class ImplAdd_1 extends AbsAdd/,AbsAdd2/有錯(cuò),類的繼承,只能繼承一個(gè)父類public ImplAdd_1() super(); Log.getLog().info(this=+this);Overrideadd(a,b) Log.getLog().info(a= + a + ,b= + b); return a + b;/下面sub也是一個(gè)覆蓋方法,并且作用域是不寫的 Overridepublicsub(a,b) Log.getLog().info(a= + a +
7、 ,b= + b); return a - b;public abstract class AbsAdd public AbsAdd() Log.getLog().info(this=+this);abstractadd(a,b);/問(wèn)題:如果這個(gè)方法是覆蓋方法,這里的方法,不能運(yùn)行 sub(a,b) Log.getLog().info(a=+a+,b=+b);return a-b-10;/下面sub也是一個(gè)覆蓋方法,并且作用域是不寫的Overridepublicsub(a,b) Log.getLog().info(a= + a + ,b= + b); return a - b-1;4、 覆蓋
8、方法檢測(cè)定位原理重點(diǎn)中重點(diǎn),要精通父類數(shù)據(jù)類型 obj=new實(shí)現(xiàn)子類(。);1)上面等號(hào)左邊決定 obj 是否有可以運(yùn)行的方法或者:obj 的方法是否存在或者:obj 是否上面等號(hào)右邊限運(yùn)行相應(yīng)的方法2)決定方法的具體執(zhí)行六、關(guān)于抽象類的總結(jié)1、 定義抽象類時(shí)public abstract class 抽象類名稱abstract 數(shù)據(jù)類型 抽象方法(類型 1參數(shù) 1,類型 2參數(shù) 2,類型 n 參數(shù) n);/作用域可以是 3 個(gè):不寫、protected、public2、 實(shí)現(xiàn)子類,只能繼承一個(gè)抽象父類3、 抽象類可以有抽象方法,也可以無(wú)4、 抽象類可以具體方法,也可以無(wú)5、 抽象可能有多實(shí)
9、現(xiàn)子類每個(gè)實(shí)現(xiàn)類,可能產(chǎn)了一個(gè)多態(tài)public sic void main(String args) AbsAdd obj=new ImplAdd_1();/AbsAdd obj=new ImplAdd_2();n1=obj.add(2, 3); Log.getLog().info(n1=+n1);n2=obj.sub(2, 3); Log.getLog().info(n2=+n2);public sic void main(String args) /Object obj=new ImplAdd_1();/這一句,沒(méi)有意義,此時(shí)obj隱含存在 add,sub方法,只是能不使用AbsAdd o
10、bj=new ImplAdd_1();/AbsAdd obj=new ImplAdd_2();n1=obj.add(2, 3); Log.getLog().info(n1=+n1);n2=obj.sub(2, 3); Log.getLog().info(n2=+n2);七、關(guān)于 final 的總結(jié)作用于變量,方法,類1、 final,終態(tài)2、 作用于變量時(shí),這個(gè)變量只能賦值 1 次3、 作用于方法時(shí),這個(gè)方法不能有子類覆蓋4、 作用于類時(shí),這個(gè)類不能子類八、8 個(gè)基本類型對(duì)應(yīng)的類型-byte-Bytechar-Character short-Short-eger float-Float lon
11、g-Long double-Double九、基本類型,也稱原生類也可以想象基本類是一個(gè)普通類十、關(guān)于與eger1、是基本類型eger 是基本類型,對(duì)應(yīng)的類型2、 他的包是java.lang.eger;如果一個(gè)類屬于 java.lang 目錄下,則不要 import 操作這個(gè)目錄是 java 最基本的工具3、4、eger 類是一個(gè)final 類eger 類沒(méi)有提供其值的方法所以賦值后,是不能修改的,如果改動(dòng)后,則不是原有對(duì)象5、 可以將一個(gè)字符串轉(zhuǎn)換一個(gè)eger 類型6、 可以一個(gè)十進(jìn)制的數(shù)字,轉(zhuǎn)換為 16 進(jìn)制的字符串輸出7、 示例如下package qh.基本類型對(duì)應(yīng)的類型;import q
12、h.Log;/import java.lang;/這一行代碼不存在public class 檢測(cè)eger類型 public sic void main(String args) i1=0;eger i2=10; /等效于 i2=neweger(10);Log.getLog().info(i1=+i1+,i2=+i2); eger i3=neweger(13);Log.getLog().info(i3=+i3);/的類型賦值后,不能修改,如果修改后,則不是原有對(duì)象了/將一個(gè)字符串轉(zhuǎn)換的類型String s=000123; Log.getLog().info(s.length()=+s.lengt
13、h();eger i4=egarse(s);十一、 基本類型,對(duì)應(yīng)其他十二、 關(guān)于泛型的概念1、 泛的內(nèi)含類型,略沒(méi)有邊界不確定多,許多,很多2、 java 的泛型是指同一個(gè)變量可能有多個(gè)數(shù)據(jù)類型定義時(shí),不指明數(shù)據(jù)類型使用時(shí),再確認(rèn)數(shù)據(jù)類型十三、 關(guān)于泛型的定義方法1、 定義類時(shí),定義一個(gè)或多個(gè)泛型類型2、 語(yǔ)法public class泛型 泛型 2泛型 n3、 示例如下類名稱public class 定義一個(gè)泛型 Type1 test1;類型2 test2;void test(Type1 t1,類型2 t2)Log.getLog().info(i4=+i4);String s2=+i4; /
14、將整型數(shù)字轉(zhuǎn)換為字符串 Log.getLog().info(s2=+s2);String s3=eger.toHexString(48); Log.getLog().info(s3=+s3);十四、 關(guān)于泛型的使用1、 定義好泛型后,可以任何需要時(shí)候使用2、 在使用一個(gè)泛型時(shí),他的類型是確定的,明確的3、 示例如下十五、 使用泛型的作用1、 一個(gè)變量可以有多個(gè)數(shù)據(jù)類型2、 靈活,方便3、,或面試回答這個(gè)問(wèn)題時(shí),如下一個(gè)變量時(shí)可以有多個(gè)數(shù)據(jù)類型使用時(shí),再確認(rèn)其數(shù)據(jù)類型這個(gè)變量的類型可以很靈活十六、 關(guān)于 JDK 對(duì)泛型的支持情況JDK 版本,1.5.x 以上,支持泛型,2004 年以后 jdk
15、支持泛型public sic void main2(String args) 定義一個(gè)泛型 obj=new 定義一個(gè)泛型();obj.test1=123;/obj.test1=123;/有錯(cuò) obj.test2=;/obj.test2=35;/有錯(cuò)Log.getLog().info(obj.test1=+obj.test1+,obj.test2=+obj.test2);public sic void main(String args) 定義一個(gè)泛型 obj=new 定義一個(gè)泛型(); obj.test1=123aaa;/obj.test1=123;/有錯(cuò) obj.test2=12.5f;/ob
16、j.test2=35;/有錯(cuò)Log.getLog().info(obj.test1=+obj.test1+,obj.test2=+obj.test2);十七、 關(guān)于一個(gè)類文件中的多個(gè)類1、 一個(gè)類文件中可以寫多個(gè)類等效于這每一個(gè)類,獨(dú)立地編寫在同一個(gè)目錄下2、 但有一個(gè)要求,只能有一個(gè)類是 public 作用域3、 同一個(gè)類.java,在編繹輸出目錄下,生成多個(gè).class 文件4、 示例如下public class 同一個(gè)類文件中的多個(gè)類 age=22;public sic void main(String args) 同一個(gè)類文件中的多個(gè)類 obj=new 同一個(gè)類文件中的多個(gè)類(); L
17、og.getLog().info(obj.age=+obj.age);class 類2age=23;public sic void main(String args) Log.getLog().info(test 2);class 類3age=25;public sic void main(String args) Log.getLog().info(test3);十八、 關(guān)于類1、類,inner class2、 寫在一個(gè)類程序體的類,稱為 inner class,類3、類,等效于一個(gè)動(dòng)態(tài)方法或者:一個(gè)4、 示例如下類,與一個(gè)動(dòng)態(tài)方法,處在平級(jí)別狀態(tài)public class 寫一個(gè)類程序體類是
18、類 add(a,b)return a+b;void test()類1 obj=new類1(); n1=obj.add(2, 3);Log.getLog().info(n1=+n1); n2=add(2, 3);Log.getLog().info(n2=+n2);class類1add(a,b)return a+b+100;public sic void main(String args) 運(yùn)行時(shí),可以選擇其中的任何一個(gè) main 運(yùn)行十九、 關(guān)于類的作用1、 大量在 java 類部事件處理中2、 安卓開發(fā)3、 java 的 GUI(AWT,SWING)開發(fā)寫一個(gè)類程序體類是類 obj=new 寫
19、一個(gè)類程序體類是類(); n1=obj.add(3, 4);Log.getLog().info(n1=+n1);Log.getLog().info(n1=+n1); obj.test();/在外面,也可以使用類/類1 obj2=new類1(); /有錯(cuò),不能直接使用類1 obj2=obj.new類1(); /OK1,通過(guò)對(duì)象,構(gòu)建類的對(duì)象/類1 obj2=new 寫一個(gè)類程序體類是類().new類1(); /道理與上一行代碼相同n2=obj2.add(3, 6); Log.getLog().info(n2=+n2);二十、 關(guān)于異常的概念1、 異常錯(cuò)誤 不正常2、 代碼在運(yùn)行過(guò)程中,出現(xiàn)的錯(cuò)誤
20、,稱為異常3、 示例如下public sic void main(String args) Log.getLog().info(-1);Log.getLog().info(-2);a=10; b=0;Log.getLog().info(出口); /上一行代碼出現(xiàn)異常后,之后的代碼不再運(yùn)行,這就是運(yùn)行異常c=a/b;二十一、關(guān)于 try/catch 用法1、 如果有可能出現(xiàn)異常,用 try/catch 捕獲異常,讓后續(xù)代碼可以繼續(xù)運(yùn)行try:試一試 catch:捕獲2、 語(yǔ)法try/加入可能在運(yùn)行中出現(xiàn)錯(cuò)誤的代碼catch(Exception e) e.prStackTrace();/stack
21、:棧,表示棧內(nèi)存/trace :/pr:顯示,(打?。?、 示例如下public class 解決異常try_catch void test1()try n=10/0;Log.getLog().info(第1個(gè)檢測(cè)方法,n=+n); catch (Exception e) e.prStackTrace();void test2()n=10/2;Log.getLog().info(第2個(gè)檢測(cè)方法,n=+n);public sic void main(String args) 解決異常try_catch obj=new 解決異常try_catch(); obj.test1();Log.getLog
22、().info(方法1完成了。); obj.test2();Log.getLog().info(方法2完成了。); Log.getLog().info(main函數(shù)出口。);二十二、關(guān)于常見異常,查詢 jdk 幫助文檔,Exception1、 在幫助文檔中,輸入ex2、 Exception 類是絕大多數(shù)異常的父類可異?;蛘撸罕仨氁芾淼漠惓?、 RuntimeException運(yùn)行過(guò)程不可控異常或者:不可異?;蛘撸嚎梢圆挥霉芾淼漠惓6㈥P(guān)于 try/catch,有多個(gè) catch1、 一個(gè)程序段可能出現(xiàn)多個(gè)不同名稱的異常每個(gè)不同名稱的異常,可能用相應(yīng)的異常捕獲點(diǎn)進(jìn)行管理2、 語(yǔ)法try/代
23、碼段 1/代碼段 2/代碼段 ncatch(異常類 1e) e.prStackTrace();catch(異常類 2e) e.prStackTrace();catch(異常類 ne) e.prStackTrace();3、 示例如下public sic void main(String args) try Object obj=neweger(123);/String str=(String) obj;/n=10/0;nums=2,6; nums2=22;catch (ClassCastException e) Log.getLog().info(強(qiáng)制轉(zhuǎn)換有錯(cuò)。); e.prStackTrac
24、e();catch (ArrayIndexOutOfBoundsException e) Log.getLog().info(數(shù)組越界有錯(cuò)。); e.prStackTrace();catch (ArithmeticException e) Log.getLog().info(數(shù)算有錯(cuò)。); e.prStackTrace();catch (Exception e) Log.getLog().info(前面錯(cuò)誤沒(méi)有聲稱負(fù)責(zé),我來(lái)負(fù)責(zé)。); e.prStackTrace();二十四、關(guān)于 try/catch/finally 中的 finally 用法1、 finally,最后的代碼寶地2、 在 tr
25、y/catch/finally 體系中無(wú)論 try 代碼有錯(cuò),還是無(wú)錯(cuò),finally 部分都會(huì)運(yùn)行 無(wú)論 try 后面有 catch,還是無(wú) catch,finally 部分都會(huì)運(yùn)行3、 示例如下public class 體會(huì)finally的用法 void test()try Object obj=neweger(123);/String str=(String) obj;/n=10/0;nums=2,6;/nums2=22;catch (ClassCastException e) Log.getLog().info(強(qiáng)制轉(zhuǎn)換有錯(cuò)。); e.prStackTrace();catch (ArrayIndexOutOfBoundsException e) Log.getLog().info(數(shù)組越界有錯(cuò)。); e.prStackTrace();catch (ArithmeticException e) Log.getLog().info(數(shù)算有錯(cuò)。); e.prStackTrace();catch (
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 建筑照明拆除施工合同
- 音樂(lè)制作土地廠房租賃合同范本
- 鄭州商鋪交易合同關(guān)鍵條款
- 建筑材料招標(biāo)授權(quán)書
- 星巴克加盟合作租賃協(xié)議
- 鐵路工程合同管理實(shí)施細(xì)則
- 辦公空間綠色環(huán)保裝修合同
- 教育機(jī)構(gòu)會(huì)計(jì)招聘合同樣本
- 防腐保溫施工合同
- 2025年度智能交通系統(tǒng)施工合同3篇
- 鹵味熟食策劃方案
- 餐廳飯店顧客意見反饋表格模板(可修改)
- 頌缽培訓(xùn)課件
- 石油形成過(guò)程科普知識(shí)講座
- 輔警心理健康知識(shí)講座
- 《棗樹常見病蟲害》課件
- 刑法試題庫(kù)大全
- 燃?xì)獍惭b人員管理制度
- 省份簡(jiǎn)稱課件
- 公民科學(xué)素質(zhì)調(diào)查問(wèn)卷
- 小學(xué)健康教育試題-及答案
評(píng)論
0/150
提交評(píng)論