實(shí)驗(yàn) 10 Java的常用工具類.doc_第1頁(yè)
實(shí)驗(yàn) 10 Java的常用工具類.doc_第2頁(yè)
實(shí)驗(yàn) 10 Java的常用工具類.doc_第3頁(yè)
實(shí)驗(yàn) 10 Java的常用工具類.doc_第4頁(yè)
實(shí)驗(yàn) 10 Java的常用工具類.doc_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

實(shí)驗(yàn) 10 Java的常用工具類實(shí)驗(yàn)?zāi)康?:(1) 了解 Java 的預(yù)定義類 ; (2) 學(xué)習(xí)使用 Java 的常用類 ; (3) 掌握方法覆蓋的使用。實(shí)驗(yàn)任務(wù) :在該實(shí)驗(yàn)中包含 3 個(gè)練習(xí) , 分別是針對(duì) Java 中的 Math 類 , 基本類型的包裝類 , 日期類 Date 和 Calendar 以及動(dòng)態(tài)數(shù)組 Vector 類 , 通過(guò)這些練習(xí)仔細(xì)體會(huì)這些常用的 Java 類的使用方法。實(shí)驗(yàn)步驟 :1. 練習(xí) 1 Math 類和基本類型的包裝類在這個(gè)練習(xí)里 , 將練習(xí)使用 Math 類和基本類型的包裝類 ,Math 類中包含有許多常用的數(shù)學(xué)方法如求絕對(duì)值 abs() 、正弦值 sin() 、兩數(shù)當(dāng)中的較大者 max(x, y), 而基本類型的包裝類則允許將基本的數(shù)據(jù)類型包裝成一個(gè)類 , 并訪問(wèn)其中的方法。程序的運(yùn)行結(jié)果如圖 7-3所示。(1) 請(qǐng)按程序清單1-10-1, 輸入下面的 MathTest.java 源程序。程序清單1-10-1 MathTest.java/ MathTest.javaimport java.util.*;public class MathTest public static void main(String args) Scanner scanner = new Scanner(System.in); int intData; double doubleData; String intString, doubleString; System.out.print(請(qǐng)輸入整數(shù)x和實(shí)數(shù)y: ); intData = scanner.nextInt( ); /以字符串方式輸入實(shí)數(shù) doubleString = scanner.next( ); /創(chuàng)建整數(shù)對(duì)象intObject Integer intObject = new Integer(intData); /返回字符串所對(duì)應(yīng)的數(shù)值 doubleData = Double.parseDouble(doubleString); intData = intOValue( ); /將整數(shù)對(duì)象的值以字符串形式輸出 intString = intObject.toString( ); System.out.println(你的輸入是: + intString + , + doubleData); /開(kāi)始調(diào)用Math類的方法進(jìn)行運(yùn)算 int intData1 = Math.abs(intData); System.out.println(abs(x)x的絕對(duì)值: +Math.abs(intData); System.out.println(ceil(y)y向上取整: +Math.ceil(doubleData); System.out.println(floor(y)y向下取整:+Math.floor(doubleData); System.out.println(exp(x)e的x次冪: + Math.exp(intData); System.out.println(log(x)x的自然對(duì)數(shù):+ Math.log(intData1); System.out.println(max(x,y)x和y中的較大者:+ Math.max(intData,doubleData); System.out.println(min(x,y)x和y中的較小者:+ Math.min(intData,doubleData); System.out.println(sin(x)x的正弦值: + Math.sin(intData); System.out.println(cos(x)x的余弦值: + Math.cos(intData); System.out.println(以x為半徑的圓面積:+ Math.PI*intData*intData);(2) 編輯 Birthday.java 程序并保存 , 然后在Eclipse 環(huán)境中編譯運(yùn)行它 ,觀察程序運(yùn)行結(jié)果。結(jié)果如下:思考(1) 請(qǐng)問(wèn)程序中Math類中的方法為什么可以直接用類名來(lái)訪問(wèn)?答:因?yàn)镸ath的方法定義為靜態(tài)類型的所以可以通過(guò)類名或者類的實(shí)例對(duì)象來(lái)訪問(wèn)?。?)請(qǐng)調(diào)用Math類的方法以產(chǎn)生一個(gè)隨機(jī)數(shù),然后求隨機(jī)數(shù)的正弦值和余弦值。答:改源代碼為:1. public class MathTest 2.3. public static void main(String args) 4.5. /Scanner scanner = new Scanner(System.in);6.7. int intData;8. double doubleData; 9. String intString, doubleString;10.11. System.out.print(請(qǐng)輸入整數(shù)x和實(shí)數(shù)y: );12. intData=(int)(Math.random()*100);13. doubleData=Math.random()*100;14. /創(chuàng)建整數(shù)對(duì)象intObject15. Integer intObject = new Integer(intData);16. intData = intOValue( );17. /將整數(shù)對(duì)象的值以字符串形式輸出18. intString = intObject.toString( );19. (部分代碼省略)輸出結(jié)果:2.練習(xí)2 日期類Date和Calendar在這個(gè)練習(xí)里用戶將會(huì)學(xué)習(xí)使用Java中常用的操縱時(shí)間的類Date和Calendar以及控制日期輸入輸出格式的類DateFormat,程序會(huì)要求用戶以規(guī)范的格式輸入自己的生日日期,然后將使用Date類和Calendar類和Calendar類中的方法計(jì)算出用戶的生日是星期幾,用戶的年齡以及出聲的年份是否是閏年。(1) 請(qǐng)按程序清單1-10-2 輸入下面的Birthday.java源程序。程序清單1-10-2 Birthday.javaimport java.util.*; / Date,Calendar,Scannerimport java.text.*; / SimpleDateFormatpublic class Birthday public static void main(String args) throws ParseException String birthday, dayOfWeek= ;Date date;Calendar calendar;Scanner scanner = new Scanner(System.in);System.out.println(請(qǐng)輸入你的生日日期:yyyy-MM-dd);birthday = scanner.next( );/創(chuàng)建一個(gè)日期格式對(duì)象 SimpleDateFormat dateFormat = new SimpleDateFormat(yyyy-MM-dd);/獲得一個(gè)包含當(dāng)前日期和時(shí)間的Calendar子類的實(shí)例 calendar = Calendar.getInstance();int currentYear = calendar.get(Calendar.YEAR);/按輸入的birthday產(chǎn)生一個(gè)Date對(duì)象date = dateFormat.parse(birthday);/將date對(duì)象的值傳遞給calendar對(duì)象calendar.setTime(date); int days = calendar.get(Calendar.DAY_OF_WEEK); switch( days ) case 1: dayOfWeek = 星期日;break; case 2: dayOfWeek = 星期一;break; case 3: dayOfWeek = 星期二;break; case 4: dayOfWeek = 星期三;break; case 5: dayOfWeek = 星期四;break; case 6: dayOfWeek = 星期五;break; case 7: dayOfWeek = 星期六;break; System.out.println(你的生日是: + dayOfWeek);int birthYear = calendar.get(Calendar.YEAR);if (birthYear%4=0)&(birthYear%100!=0)|(birthYear%400=0) System.out.println(birthYear + 年: 是閏年); else System.out.println(birthYear + 年: 不是閏年); int age = currentYear-birthYear; System.out.println(你現(xiàn)在是: + age + 歲); (2) 編輯Birthday.java源程序并保存,然后在Eclipse 環(huán)境中編譯運(yùn)行它,觀察程序運(yùn)行結(jié)果。結(jié)果:思考(1) 請(qǐng)問(wèn)程序Brithday.java中的語(yǔ)句 :SimpleDateFormat dateFormat=new SimpleDateFormat(yyyy-MM-dd);的作用是什么 , 請(qǐng)查詢 DateFormat 類中是否還有其他的日期格式。答:SimpleDateFormat dateFormat=new SimpleDateFormat(yyyy-MM-dd);的作用是創(chuàng)建一個(gè)日期格式對(duì)象;DateFormat 類中其他的日期格式如下表:Date and Time Pattern Result yyyy.MM.dd G at HH:mm:ss z 2001.07.04 AD at 12:08:56 PDT EEE, MMM d, yy Wed, Jul 4, 01 h:mm a 12:08 PM hh oclock a, zzzz 12 oclock PM, Pacific Daylight Time K:mm a, z 0:08 PM, PDT yyyyy.MMMMM.dd GGG hh:mm aaa 02001.July.04 AD 12:08 PM EEE, d MMM yyyy HH:mm:ss Z Wed, 4 Jul 2001 12:08:56 -0700 yyMMddHHmmssZ 010704120856-0700 yyyy-MM-ddTHH:mm:ss.SSSZ 2001-07-04T12:08:56.235-0700 (1) 程序中的 switch 語(yǔ)句用于判斷星期幾 , 現(xiàn)在請(qǐng)將該 switch 語(yǔ)句中的 break 語(yǔ)句全部刪除 , 然后編譯運(yùn)行程序 , 觀察會(huì)有什么結(jié)果 , 并說(shuō)明原因。答:輸入不同的出生時(shí)間,生日輸出結(jié)果都會(huì)是星期六。原因是switch語(yǔ)句中的沒(méi)有break語(yǔ)句,就不能執(zhí)行一次case后跳出switch語(yǔ)句,程序就會(huì)一直執(zhí)行到switch最后的語(yǔ)句dayOfWeek = 星期六;。(2) 在輸入了正確的生日日期后 , 程序能返回用戶的年齡 , 現(xiàn)在請(qǐng)修改程序 , 以返回用戶的生日日期與當(dāng)前日期之間相距多少天。答:在switch語(yǔ)句后增加代碼:long daysOfYear = Calendar.getInstance().getTimeInMillis()/86400000 - date.getTime()/86400000-1; /用立即數(shù),減少乘法計(jì)算的開(kāi)銷以及在代碼行System.out.println(你現(xiàn)在是: + age + 歲);后緊跟代碼System.out.println(你的生日日期與當(dāng)前日期之間相距+daysOfYear+天。);結(jié)果如下:(4) 請(qǐng)查詢 Calendar 類的相關(guān)方法以顯示出當(dāng)前的精確日期和時(shí)間 ( 包括年、月、日、小時(shí)、分鐘、秒 )。import java.util.*; / Date,Calendar,Scannerimport java.text.*; / SimpleDateFormat(省略部分代碼)/獲得一個(gè)包含當(dāng)前日期和時(shí)間的Calendar子類的實(shí)例 calendar = Calendar.getInstance();int currentYear = calendar.get(Calendar.YEAR);int currentMonth = calendar.get(Calendar.MONTH)+1;int currentDayOfMonth = calendar.get(Calendar.DAY_OF_MONTH);int currentHour = calendar.get(Calendar.HOUR);int currentMinute = calendar.get(Calendar.MINUTE);int currentSencond = calendar.get(Calendar.SECOND);/按輸入的birthday產(chǎn)生一個(gè)Date對(duì)象date = dateFormat.parse(birthday);(省略部分代碼) System.out.println(你現(xiàn)在是: + age + 歲); System.out.println(當(dāng)前的精確時(shí)間是: +currentYear+年+ currentMonth+月+currentDayOfMonth+日+ currentHour+:+ currentMinute+:+currentSencond);3. 練習(xí) 3 動(dòng)態(tài)數(shù)組 Vector 類在這個(gè)練習(xí)里 , 用戶將練習(xí)使用 Vector 類 ,Vector 類是一個(gè)動(dòng)態(tài)數(shù)組 , 能根據(jù)實(shí)際需要?jiǎng)討B(tài)地?cái)U(kuò)充數(shù)組的大小 , 同時(shí) Vector 類中還包含許多方法來(lái)操縱數(shù)組中的元素 , 程序中有一個(gè) Vector 數(shù)組 , 里面包含有幾個(gè)事先定義的城市名 , 同時(shí) , 可以在該數(shù)組中增加幾個(gè)新的城市名 , 并進(jìn)行一些交互性的操作。在這一過(guò)程中 , 仔細(xì)體會(huì) Vector 數(shù)組的用法。該程序的運(yùn)行結(jié)果如圖 7-5 所示。 請(qǐng)按程序清單 1-10-3 輸入下面的 CityVector.java 源程序。程序清單 1-10-3 CityVector.java/ CityVector.javaimport java.util.*;public class CityVector static String city = 北京, 上海, 廣州, 深圳 ; public CityVector( ) Vector vector = new Vector(6); Scanner scanner = new Scanner(System.in); String cityName; int index; for ( int i = 0; i city.length; i+ ) vector.add( cityi ); ; / 顯示出數(shù)組信息 displayVector(vector); System.out.print(n請(qǐng)輸入數(shù)組索引號(hào): ); index = scanner.nextInt( ); cityName = (String)vector.get(index); System.out.println(數(shù)組+index+的元素值是: +cityName); System.out.print(n請(qǐng)?jiān)佥斎?個(gè)你喜歡的城市: ); for ( int i = 0; i 3; i+ ) cityName = scanner.next(); vector.add(cityName); displayVector(vector); System.out.print(n請(qǐng)輸入一個(gè)你想查詢的城市名: ); cityName = scanner.next( ); if ( vector.contains(cityName) ) System.out.println( 在數(shù)組中找到: +cityName+ 下標(biāo)是: + vector.indexOf(cityName); else System.out.println( 在數(shù)組中沒(méi)有找到: +cityName ); System.out.print(n請(qǐng)輸入一個(gè)你想刪除的城市名: ); cityName = scanner.next( ); vector.remove(cityName); System.out.println(cityName + 已被刪除); displayVector(vector); public void displayVector( Vector vector ) System.out.println( n數(shù)組大小: + vector.size() + n數(shù)組容量: + vector.capacity() ); if ( vector.isEmpty() ) System.out.print( 數(shù)組為空 ); else System.out.print( 數(shù)組包含: ); Enumera

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論