




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、day07 總結(jié)今日內(nèi)容上次課內(nèi)容回顧 MyEclipse 的安裝和使用 JUnit 的使用JDK1.5 的新特性泛型枚舉靜態(tài)導(dǎo)入自動(dòng)裝箱拆箱增強(qiáng) for可變參數(shù)反射1.1 上次課內(nèi)容回顧XML 以及XML 的1.XML 的約束有那些?區(qū)別是什么?DTD 和Schema區(qū)別:Schema 語(yǔ)法是 XML 格式語(yǔ)法,可以容易被Schema 不像DTD 一樣語(yǔ)法自成一體. Schema 有比DTD 更加嚴(yán)格的語(yǔ)義和語(yǔ)法約束.引擎所.Schema 支持名稱空間.名稱空間的作用:一個(gè) XML 文檔可以引入多個(gè) Schema 只能引入一個(gè) DTD,引入多個(gè) Schema的時(shí)候有元素重名,用名稱空間來(lái)區(qū)分
2、.理解為java 中包.2.XML 的技術(shù)有哪些?區(qū)別是什么?XML 的DOM:技術(shù)有很多,常用的是 DOM 和SAX.將的文檔加載到內(nèi)存,形成樹(shù)形結(jié)構(gòu),進(jìn)行.好處:很方便增加,刪除,修改,查詢.缺點(diǎn):如果文檔非常大,容易導(dǎo)致內(nèi)存溢出.SAX:事件驅(qū)動(dòng)的方式,邊讀邊加,刪除,修改.JAXP:SUN 公司.DOM4J:企業(yè)中應(yīng)用.好處:不會(huì)將文檔整個(gè)加載到內(nèi)存,不容易導(dǎo)致內(nèi)存溢出.缺點(diǎn):只能查詢,不能增1.2 Myeclipse 的安裝和使用1.2.1MyEclipse 安裝:安裝 JDK是 Eclipse 的一個(gè)插件.1.2.2修改 Myeclipse 的字符集.1.2.3新建項(xiàng)目創(chuàng)建項(xiàng)目綴;
3、選擇工作空間;工作空間路徑不能有空格和中文;工作空間以班名來(lái)命名:20140324創(chuàng)建項(xiàng)目;項(xiàng)目名以day0 x 為前綴,例如今天是第 1 天,那么今天的項(xiàng)目以day01 為前創(chuàng)建項(xiàng)目時(shí)配置JRE,如果不配置就是使用默認(rèn)JRE;其實(shí)指定的都是 JDK,而不是 JRE。因?yàn)橐_(kāi)發(fā)Java 項(xiàng)目,而不是運(yùn)行!創(chuàng)建類,注意,所有類都必須有包,所有類名、變量名、方法名等一定要按規(guī)范來(lái)做;默認(rèn)包名以 cn.為前綴;指定類的修飾符;指定類的父類; 指定類的接口;指定方法:是否創(chuàng)建main、是否通過(guò)父類創(chuàng)建構(gòu)造器、是否實(shí)現(xiàn)抽象方法;編寫(xiě)o World;運(yùn)行 java 程序的方式;1.2.4兩種運(yùn)行方式:1
4、斷點(diǎn)調(diào)試的目的源代碼;觀察程序運(yùn)行狀態(tài);2 調(diào)試程序 1編寫(xiě)求和代碼設(shè)置斷點(diǎn);debug 運(yùn)行;進(jìn)入 debug 視圖;程序會(huì)運(yùn)行到斷點(diǎn)處停?。划?dāng)前行還沒(méi)有運(yùn)行;查看變量值:選中變量鼠標(biāo)右鍵Watch;F5(跳入)、F6(跳過(guò))、F7(跳出);3 調(diào)試程序 2使用Arrays.binarySearch()編寫(xiě)折半搜索數(shù)組元素代碼設(shè)置斷點(diǎn);測(cè)試跳入;測(cè)試跳過(guò);測(cè)試跳出;添加斷點(diǎn);測(cè)試進(jìn)入下一斷點(diǎn);測(cè)試返回當(dāng)前方法棧的頭部(Drop To Frame);清除斷點(diǎn);清除表達(dá)式;注意,停止程序!1.2.5MyEclipse 快捷鍵1 MyEclipse 常用快捷鍵 1Alt + /(內(nèi)容助理):補(bǔ)全;
5、Ctrl + 1(快速定位):出錯(cuò)時(shí)定位錯(cuò)誤,與點(diǎn)擊“紅X”效果一樣; Ctrl + Shift + O:導(dǎo)包;Ctrl + Shift + F:格式化代碼塊;2 MyEclipse 常用快捷鍵 2Ctrl + Shift + T:查看源代碼; Ctrl + 點(diǎn)擊源代碼:查看源代碼; F3:查看選中類的源代碼;Alt + 左鍵:查看源代碼時(shí)的“原路返回”;Ctrl + Shift + X:把小寫(xiě)修改為大寫(xiě); Ctrl + Shift + Y:把小寫(xiě)修改為小寫(xiě);Ctrl + Alt + 下鍵:當(dāng)前行;Ctrl + /:添加或撤銷行注釋;Ctrl + Shift + /:對(duì)選中代碼添加段注釋; C
6、trl + Shift + :撤銷當(dāng)前段注釋;Alt + 上鍵:向上移動(dòng)當(dāng)前行; Alt + 下鍵:向上移動(dòng)當(dāng)前行; Ctrl + D:刪除當(dāng)前行;1.3 JUnit 的使用1.3.1JUnit:單元測(cè)試的工具.JUnit3:JUnit4:-需要在工程中導(dǎo)入 JUnit4jar 包.1.3.2JUnit4 的注解:Test:方法是一個(gè)測(cè)試的方法. Ignore:方法不參與測(cè)試. Before:在每個(gè)測(cè)試方法之前執(zhí)行 After:在每個(gè)測(cè)試方法之后執(zhí)行BeforeClass:在測(cè)試方法之前執(zhí)行一次 AfterClass:在測(cè)試方法之后執(zhí)行一次.1.3.3JUnit 的好處:將源代碼和測(cè)試代碼分離
7、.1.4 泛型1.4.1JDK 的發(fā)展過(guò)程JDK1.0-JDK1 1-JDK1.2-JDK1.4-JDK5.0(Tiger)1.4.2JDK5.0 的新特性1.4.3泛型的作用1.對(duì)象保存到集合中就會(huì)失去其特性,取出時(shí)通常要程序員手工進(jìn)行類型的強(qiáng)制轉(zhuǎn)換1.4.4泛型的術(shù)語(yǔ)泛形的基本術(shù)語(yǔ),以ArrayList為例:念著 typeofArrayList中的 E 稱為類型參數(shù)變量ArrayList中的eger 稱為實(shí)際類型參數(shù)整個(gè)ArrayList稱為參數(shù)化類型 ParameterizedType1.4.5泛型的作用范圍泛型只作用于源代碼階段,在生成的class 文件之后,泛型會(huì)被擦除.1.4.6泛
8、型的應(yīng)用:一、應(yīng)用在集合上:對(duì)應(yīng)用了泛型的集合進(jìn)行遍歷./*針對(duì)應(yīng)用了泛型的集合進(jìn)行遍歷(List、Set、Map)author*/public class GenericDemo2 Test/ List 集合的遍歷public void demo1()List list = new ArrayList(); list.add(aa);list.add(bb);list.add(cc);list.add(dd);/ List 集合遍歷有 3 種 迭代器、普通 for、增強(qiáng) for/ 使用普通for 循環(huán)進(jìn)行遍歷for (i = 0; i list.size() ; i+) System.out
9、.prln(list.get(i);System.out.prln(=);/ 使用迭代器進(jìn)行遍歷Iterator it = list.iterator();while(isNext()String s = it.next();System.out.prln(s);System.out.prln(=);/ 使用增強(qiáng)for 循環(huán)進(jìn)行遍歷for (String s : list) System.out.prln(s);Test/ List 集合和 Set 集合的區(qū)別?/ List 有序、重復(fù) Set 無(wú)序 不可重復(fù)的. public void demo2()Set set = new HashSet
10、(); set.add(aaa);set.add(bbb);set.add(ccc);set.add(aaa);/ 對(duì) Set 集合進(jìn)行遍歷 Set 集合有幾種遍歷方式?二種./ 使用迭代器Iterator it = set.iterator();while(isNext()String s = it.next();System.out.prln(s);System.out.prln(=);/ 增強(qiáng) forfor (String s : set) System.out.prln(s);Testpublic void demo3()Map map = new HashMap();/ Map 集合
11、的遍歷有幾種方式? 2 種.一種先獲得所有的 key 的集合 二種獲得 Map 的關(guān)系(Entry)/ 獲得所有的 key 的集合Set keys = map.keySet(); for (String key : keys) eger value = map.get(key); System.out.prln(key+ +value);System.out.prln(=);/ 獲得 map 中的鍵值對(duì)的關(guān)系SetEntry entrys = mntrySet();for (Entry entry : entrys) String key = entry.getKey();eger value
12、 = entry.getValue();System.out.prln(key+value);*以下那個(gè)關(guān)于泛型的定義是正確的:A.List list = new ArrayList(); B.List list = new ArrayList(); C.List list = new ArrayList();D.List list = new ArrayList(); E.List list = new ArrayList(); F.List list = new ArrayList();:ABCF 記住泛型要么都不寫(xiě),或者只寫(xiě)一邊是可以的,如果兩邊都寫(xiě)那么必須一致.二、自定義泛型.自定義泛
13、型是泛型中的比較高級(jí)的應(yīng)用,可以編寫(xiě)一些通用性較高的代碼或者框架的時(shí)候.自定義泛型由C+中的模版.自定義泛型的語(yǔ)法:* 自定義泛型方法:在方法的返回值之前返回值、參數(shù)、局部變量.泛型. 里面寫(xiě)上大寫(xiě)字母.的泛型可以在方法中的public void add()例子:編寫(xiě)一個(gè)泛形方法,實(shí)現(xiàn)指定位置上數(shù)組元素的交換 String arr = “aaa”,”bbb”,”ccc”,”ddd”; change(arr,1,3);public class GenericDemo3 Test/ 編寫(xiě)一個(gè)泛形方法,實(shí)現(xiàn)指定位置上數(shù)組元素的交換public void demo1() / 交互的是字符串類型的數(shù)組S
14、tring arr = aaa, bbb, ccc, ddd ; change(arr, 1, 3);/ 輸出這個(gè)數(shù)組System.out.prln(Arrays.toString(arr);/ 交互整數(shù)的數(shù)組eger arr2 = 11, 22, 33, 44, 55, 66 ;change(arr2, 0, 5);System.out.prln(Arrays.toString(arr2);/ 方法中的邏輯只與類型有關(guān),其他代碼都一樣.寫(xiě)成一個(gè)通用的方法.利用自定義泛型.public void change(T arr, T temp = arri;arri = arrj; arrj = t
15、emp;i,j) /*private void change(eger arr,arri = arrj; arrj = temp; *private void change(String arr,i,j) eger temp = arri;i,j) /如何交互數(shù)組兩個(gè)位置的值?定義一個(gè)中間變量 String temp = arri; arri = arrj; arrj =temp; */Test/ 編寫(xiě)一個(gè)泛形方法,實(shí)現(xiàn)任意類型數(shù)組的值的倒序. public void demo2() String arr = aa, bb, cc, dd, ee ; eger arr2 = 1,2,3,4,5
16、,6,7,8;reverse(arr2);System.out.prln(Arrays.toString(arr2);private void reverse(T arr) for (i = 0; i arr.length / 2; i+) T temp = arri;arri = arrarr.length - 1 - i; arrarr.length - 1 - i = temp;* 自定義泛型類:在類的定義后面里面寫(xiě)大寫(xiě)字母.類上定義的泛型可以在類的任意地方除了靜態(tài)成員.public classprivate T t;opublic T getT()public class Generi
17、cDemo4 private T t; public T getT()return null;public void sum(T t) T m;/ 不能在靜態(tài)成員上使用類上定義的泛型./ 在靜態(tài)成員使用泛型需要自定義. public sic void say()E e;泛型的通配符:?-代表任意泛型.(了解.)public class GenericDemo5 Testpublic void demo1()List sList = new ArrayList(); sList.add(aaa);sList.add(bbb);sList.add(ccc);sList.add(ddd);/ 編寫(xiě)一
18、個(gè)方法 打印這個(gè) List 集合. pr(sList);/ 編寫(xiě)一個(gè)泛型為eger 的集合List iList = new ArrayList(); iList.add(1);iList.add(2);iList.add(3);iList.add(4); pr(iList);/ 因?yàn)檫@兩個(gè)方法不叫重載.泛型在 class 生成之后就會(huì)擦除了. private void pr(List iList) System.out.prln(iList);1.5 枚舉1.5.1枚舉的由來(lái).由整數(shù)的靜態(tài)常量-靜態(tài)的對(duì)象-枚舉. 枚舉就是完成了在一定的范圍內(nèi)取值的操作.public class EnumDem
19、o1 Testpublic void demo1()Employee emp = new Employee();emp.role1 = Role1.HR; / 這種方式:可讀性還可以.但是存在一個(gè)問(wèn)題/*Calendar calendar = Calendar.getInstance(); System.out.prln(calendar.get(100);*/ 在很久之前 構(gòu)造方法私有了.emp.role2 = Role2.S;/ 這種方式:可讀性不錯(cuò)的,存在一個(gè)問(wèn)題,其他人可以隨意的 new 對(duì)象傳入/ 現(xiàn)在使用枚舉emp.role3 = Role3.S;/ 角色:總經(jīng)理、管理、人力、工作
20、者class Employeepublic String name;publicage;/ 在很久很久之前.publicrole1;/ 在很久之前public Role2 role2;/ 現(xiàn)在public Role3 role3;/ 枚舉的方式:枚舉的方式等同于第二種. enum Role3S,MANAGER,HR,WORKER;class Role2private Role2()public sic final Role2S = new Role2();public s public s public sic final Role2 MANAGER = new Role2(); ic fin
21、al Role2 HR = new Role2();ic final Role2 WORKER = new Role2();class Role1public s public s public s public sic final ic final ic finalic finalS = 1;MANAGER = 2;HR = 3;WORKER = 4;1.5.2枚舉的特性枚舉類也是一種特殊形式的 Java 類。枚舉類中的每一個(gè)枚舉值代表枚舉類的一個(gè)實(shí)例對(duì)象。與java 中的普通類一樣,在點(diǎn)不難理解)。枚舉類時(shí),也可以屬性、方法和構(gòu)造函數(shù),但枚舉類的構(gòu)造函數(shù)必須為私有的(這枚舉類也可以實(shí)現(xiàn)接口
22、、或繼承抽象類。JDK5 中擴(kuò)展了 swith 語(yǔ)句,它除了可以接收, byte, char, short 外,還可以接收一個(gè)枚舉類型。若枚舉類只有一個(gè)枚舉值,則可以當(dāng)作單態(tài)設(shè)計(jì)模式使用。1.5.3特殊形式的枚舉帶參數(shù)的構(gòu)造方法帶抽象方法的枚舉public class EnumDemo2 / 定義一個(gè)枚舉enum Color/ 枚舉的每個(gè)值都是枚舉對(duì)象的實(shí)例. RED(紅色) Overridepublic void say() System.out.prln(紅色);,BLUE(藍(lán)色)Overridepublic void say() System.out.prln(藍(lán)色);,GREEN(綠色
23、)Overridepublic void say() System.out.prln(綠色);,YELLOW(黃色)Overridepublic void say() System.out.prln(黃色);/ 構(gòu)造方法帶有參數(shù)的枚舉private Color(String s)/ 帶有抽象方法的枚舉public abstract void say();1.5.4枚舉的 APIString name(); / 通過(guò)枚舉對(duì)象獲得枚舉的名稱. ordinal(); / 通過(guò)枚舉對(duì)象獲得枚舉對(duì)象的下標(biāo)sic T valueOf(Class c,String name); / 通過(guò)枚舉的名稱獲得枚舉的
24、對(duì)象./ 枚舉被編譯之后動(dòng)態(tài)生成的方法.valueOf(); / 通過(guò)枚舉的名稱獲得枚舉的對(duì)象.values();案例:/ 獲得枚舉的數(shù)組.已知枚舉對(duì)象獲得枚舉對(duì)象的名稱和下標(biāo)已知枚舉對(duì)象的名稱獲得枚舉對(duì)象和下標(biāo)已知枚舉對(duì)象的下標(biāo)獲得枚舉對(duì)象和名稱public class EnumDemo3 Testpublic void demo1()/ 已知枚舉對(duì)象獲得枚舉對(duì)象的名稱和下標(biāo)Hobby hobby = Hobby.GAME;/ 獲得枚舉的名稱String name = (); System.out.prln(name);/ 獲得枚舉的下標(biāo)idx = hobby.ordin
25、al();System.out.prln(idx);Testpublic void demo2()/ 已知枚舉對(duì)象的名稱獲得枚舉對(duì)象和下標(biāo)String name = STUDY;/ 獲得枚舉的對(duì)象/ 第式/Hobby hobby = Enum.valueOf(Hobby.class, name);/System.out.prln(hobby);/ 第二種方式Hobby hobby = Hobby.valueOf(name); System.out.prln(hobby);/ 獲得枚舉的下標(biāo)idx = hobby.ordinal(); System.out.prln(idx);Testpublic void demo3()/ 已知枚舉對(duì)象的下標(biāo)獲得枚舉對(duì)象和名稱idx = 1;/ 獲得枚舉對(duì)象Hobby hobbys = Hobby.values(); Hobby hobby = hobbysidx; System.out.prln(hobby);/ 獲得枚舉名稱String name = (); System.out.prln(name);enum Hobby SLEEP,BALL,GAME,STUDY;1.6 靜態(tài)導(dǎo)入1.6.1靜態(tài)導(dǎo)入-(雞肋)語(yǔ)法:import s ic 導(dǎo)入類的靜態(tài)成員;1.7 自動(dòng)拆裝箱1.7.1自動(dòng)裝箱自動(dòng)裝箱:就
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度互聯(lián)網(wǎng)企業(yè)員工入職知識(shí)產(chǎn)權(quán)保護(hù)合同
- 二零二五年度電子元器件出口業(yè)務(wù)合同范本
- 2025年度石灰粉生產(chǎn)節(jié)能減排技術(shù)創(chuàng)新合作協(xié)議
- 動(dòng)產(chǎn)拍賣委托代理協(xié)議書(shū)(2025年度房產(chǎn)拍賣項(xiàng)目)
- 2025年度補(bǔ)充協(xié)議簽訂與否的違約責(zé)任認(rèn)定與處理機(jī)制合同
- 二零二五年度公司與自然人教育培訓(xùn)合作協(xié)議
- 二零二五年度新能源項(xiàng)目股東股份交易保密協(xié)議
- 二零二五年度學(xué)校圖書(shū)資料室租賃合同協(xié)議
- 老齡化社會(huì)養(yǎng)老保障2025年度老人存款管理與社區(qū)互助協(xié)議
- 2025年度長(zhǎng)租公寓交房后物業(yè)費(fèi)及租住服務(wù)合同
- 人教版六年級(jí)上冊(cè)道德與法治教案(5篇)
- (中職)中職生創(chuàng)新創(chuàng)業(yè)能力提升教課件完整版
- 中班健康課件《我不挑食》
- 生豬屠宰獸醫(yī)衛(wèi)生人員考試題庫(kù)答案(414道)
- 《完善中國(guó)特色社會(huì)主義法治體系》課件
- 2024至2030年中國(guó)石油瀝青市場(chǎng)前景及投資機(jī)會(huì)研究報(bào)告
- 2025版 高考試題分析-數(shù)學(xué)-部分4
- 武漢大學(xué)張?。?024生成式人工智能大模型及其電力系統(tǒng)數(shù)智化應(yīng)用前沿報(bào)告
- (高清版)AQ 1056-2008 煤礦通風(fēng)能力核定標(biāo)準(zhǔn)
- 2024版高一上冊(cè)語(yǔ)文模擬試卷
- 《內(nèi)陸干旱區(qū)季節(jié)性河流生態(tài)流量(水量)確定技術(shù)導(dǎo)則》
評(píng)論
0/150
提交評(píng)論