Java面向?qū)ο髮嶒炛笇?計算機2015_第1頁
Java面向?qū)ο髮嶒炛笇?計算機2015_第2頁
Java面向?qū)ο髮嶒炛笇?計算機2015_第3頁
Java面向?qū)ο髮嶒炛笇?計算機2015_第4頁
已閱讀5頁,還剩108頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

明洶科長母院ZHEJIANGUMVEJtSITYOFSCIENCE&TECHNOLOGY《Java面向?qū)ο蟪绦蛟O(shè)計》實驗指導書信息與電子工程學院許加兵

2015年2月實驗ーJava開發(fā)環(huán)境安裝和配置實驗目的1、學習構(gòu)建Java語言開發(fā)和運行環(huán)境2、學習使用EditPlus編寫Java源程序3、學習使用javac命令編譯源程序4、學習使用java命令運行程序5、初步了解使用Java語言進行程序設(shè)計的基本步驟6、課外實踐安裝、配置和使用JCreator或NetBeans或Eelipse等集成開發(fā)工具7、為進行后續(xù)實驗做好準備實驗要求1、下載、安裝Java軟件開發(fā)工具包(JSDK);2、設(shè)置相關(guān)環(huán)境變量;3、使用EditPlus編寫ー個簡単的Java程序;4,使用javac命令編譯源程序;5、使用java命令運行程序,觀察運行結(jié)果;6、在EditPlus中編譯和運行程序;7、課外實踐:安裝、配置和使用JCreator或NetBeans或Eelipse等集成開發(fā)工具。實驗內(nèi)容1、Java軟件開發(fā)工具包(JSDK)的下載與安裝(1)下載SDK為了建立基于SDK的Java運行環(huán)境,需要先下載Sun的免費SDK軟件包。SDK包含了一整套開發(fā)工具,其中包含對編程最有用的是Java編譯器、Applet查看器和Java解釋器。在瀏覽器中輸入/technetwork/java/index.html?可看到圖1.1所示的Oracle公司網(wǎng)站頁面。

3OracleTechnologyletvorkforJ>valevelopert-IicresoftInternetExplorer3OracleTechnologyletvorkforJ>valevelopert-IicresoftInternetExplorer1周闿硬圖!.1在頁面右邊“NewDownloads"欄中可看到最新版的JDK軟件包,這里顯示的是“JavaSE”(當前最新版)。單擊“JavaSE”超鏈接,可看到圖1.2所示頁面。

ン「ユ—2■丁?を」ヌヨこAUSunDeveloperNetwork(SDN)PrwiuctSunDeveloperNetworkDownloadSunDeveloperNetworkDownload,?〇「「,ゆ”?7》“>Wn必>Wn必Ifa?I?h內(nèi)。??岫岫%nelBeanscA?rtEmOpwMMdXUMSM一ソ圖1.2在頁面的“DownloadJDK”欄可以選擇下載最新的JavaSDK軟件包。有兩種選擇:ー種是在線安裝"WindowsInstallationn:一種是離線安裝"WindowsOfflineInstallation"〇單擊頁面中"SDK"列對應(yīng)的"DOWNLOAD”超鏈接,可看到圖1.3所示的下載協(xié)議說明書。Mtoue3s圖!3單擊"ACCEPT”按鈕,同意Sun公司的協(xié)議,可進入到圖1.4所示的卜.載頁面,

單擊“WindowsOfflineInstallation,Multi-language”超鏈接,開始下載工作,下載的安裝文件保存為"jdk?l_5_0_06-windows-i586-p.exe“〇4一JUAU>;SunDeveloperNetwork 32 .Downloadじ)所,⑵安裝SDK運行“jdk-l_5_0_06-windows-i586-p.exe”軟件包,可安裝SDK,在安裝過程中可以設(shè)置安裝路徑及選擇組件,默認的安裝路徑為"C:\ProgramFilesVava\jdkL5.0_06ヽ”,這里將安裝目錄指定為“D:\jdk\jdkL5.0_06ヽ",默認的組件選擇是全部安裝。⑶SDK安裝目錄中的Java命令安裝成功后,D:\jdk\jdkl50_06'中的文件和子目錄結(jié)構(gòu)如圖1.5所示。圖1.5其中,"bin”文件夾中包含編譯器(javac.exe)>解釋器(java.exe)ヽApplet查

看器(appletviewer.exe)等Java命令的可執(zhí)行文件,如圖!.6所示?!癲emo”文件夾中包含一些源代碼的程序示例。flbtn文件(F)?撇E)S?V)收歡⑹XJUT)相歌H)シ后退?,JJ;6文件英J儂%XGI覇?ittt(D)IコD:UdkW.5.0.05\bln文や夷eCjidk-在コ文や夷eCjidk-在コJ2?fcl,4.2.100CJJdkl.5.0.05□bnSコdemoEl1_Jndude0?*132?!コre

コtt)fflCjコMacromediaり’コMicrosoftSQLServerU ISelectanEntoviewitsdescription.Seealso:MyDocumentsMvNetwpf*PlacesMyCowipq^er1applet.exe-japt.exefjbeanregdQextcheck.?xeコHtmlConverter.exeコぬ.exe__!如exeコ)arsigner.exe30va.exe2javac.exeコW/adoc.exe.iiavah.?x。亠javap.exe112JL83MB 國我的電?圖1.62、環(huán)境變量的設(shè)置SDK中的工具都是命令行工具,需要在命令行窗口從命令行提示符下運行它們。很多人可能會不習慣,但這是Sun特意采取的策略,為的是把精力更多地投入到Java語言本身而不是花在開發(fā)工具上。為了能正確方便的使用SDK,可手工配置ー些Windows的環(huán)境變量。以Windows2000為例說明設(shè)置過程。在桌面“我的電腦”圖標上單擊右鍵,選擇“屬性”菜單,將出現(xiàn)系統(tǒng)特性設(shè)置界面,如圖1.7所示。圖1.7在“高級”選項卡中單擊“環(huán)境變量”按鈕。將出現(xiàn)“環(huán)境變量”設(shè)置界面,如圖1.8所示。圖1.8在“系統(tǒng)變量”框中選擇“Path”,然后單擊“編輯”按鈕,在出現(xiàn)的“編輯系統(tǒng)變量”對話框中,在“變量值”欄的命令前添加“D:\jdk\jdkl50_06\bin;”命令,如圖1.9所示。圖1.9用同樣方法設(shè)置環(huán)境變量“classpath”,其值為"D:\jdk\jdk1.5.0_06\lib;”命令。設(shè)置完成后,單擊“開始”一“運行”,在對話框中輸入“cmd”,點擊“確定”或鍵盤回車鍵后打開命令行窗口。在命令提示符下輸入“java”或“javac”,回車后,如果出現(xiàn)其用法參數(shù)提示信息,則安裝正確,如圖1.10所示。

圖1.103、使用EditPlus編寫源程序要編寫Java程序,需要有文本編輯器。可以使用操作系統(tǒng)提供的Edit或記事本作為編輯器,最好選擇EditPlus編輯軟件,它可以使用不同顏色顯示Java的關(guān)鍵字和類名,筒單好用,同時可以對程序進行編譯和運行。EditPlus為共享軟件,在教育網(wǎng)各個軟件下載網(wǎng)站都有下載。下載安裝EditPlus軟件后打開EditPlus編輯軟件,如圖1.17所示,在其右邊文本區(qū)輸入如下代碼。publicclassHelloJava{publicstaticvoidmain(Stringargs[]){System.out.println("HelloJava!");圖1.17將文件命名為Hellojava.java,保存為文本文件格式文件,注意保存文件的路徑。4、使用javac命令編譯源程序Java源程序編寫后,要使用Java編譯器(javac.exe)進行編譯,將Java源程序編譯成可執(zhí)行的程序代碼。Java源程序都是擴展名為.java的文本文件。編譯時首先讀入Java源程序,然后進行語法檢查,如果出現(xiàn)問題就終止編譯。語法檢查通過后,生成可執(zhí)行程序代碼即字節(jié)碼,字節(jié)碼文件名和源文件名相同,擴展名為.class??砂凑找韵虏襟E操作:(1)打開命令提示符窗口進入Java源程序所在路徑。(2)鍵入ujavacHellojava,javaw,如圖1.18所示。Lil I圖1.18(3)按回車鍵開始編譯(注意:文件名大小寫敏感)。如果源程序沒有錯誤,則屏幕上沒有輸出,鍵入“dir”按回車鍵后可在目錄中看到生成了一個同名字的.class文件“Hello,class”,如圖1.18所示。否則,將顯示出錯信息。5、使用java命令運行程序使用Java解釋器(java,exe)可將編譯后的字節(jié)碼文件Hellojava,class解釋執(zhí)行。在命令提示符窗口鍵入“javaHellojava”,按回車鍵即開始解釋并可看到運行結(jié)果,如果看到如圖1.19所示結(jié)果,表明程序運行成功了,這是?種字符方式的應(yīng)用程序其結(jié)果顯示在屏幕。圖!.196、在EditPlus中編譯和運行程序EditPlus中可以設(shè)置在后臺運行javac.exe和java,exe或其它外部可執(zhí)行程序,同時可以指定當前編輯的文件或其它內(nèi)容作為外部程序的執(zhí)行參數(shù),并將外部程序運行的結(jié)果顯示在消息欄中,這可簡化對Java程序編譯和執(zhí)行的操作,提高編程效率。(1)打開EditPlus,單擊“工具”一“配置用戶工具”菜單,如圖1.22所示。圖1.22(2)在打開的“參數(shù)設(shè)置”窗口如圖1.23、圖1.24所示配置編譯與運行環(huán)境。(a)設(shè)置“編譯”工具單擊“組名稱”按鈕確定工具組的名稱。單擊“添加工具”按鈕,從彈出的快捷菜單中選擇“程序文件”命令。在“菜単文字”欄中輸入“編譯”文字;在“命令”欄中輸入或通過文件夾選擇javac.exe文件的路徑;在“參數(shù)”欄選擇“文件名稱”;在“初始目錄”欄輸入Java程序所在的路徑。(b)設(shè)置“運行”工具與(a)同樣的方法可以設(shè)置“運行”工具。請同學自己練習。

參數(shù)選擇.日r字頻打キ語根エ引用快拼エ體色印法板程戶健瑞具具有一參數(shù)選擇.日r字頻打キ語根エ引用快拼エ體色印法板程戶健瑞具具有一エ健檢欄組和工具項目(G):一名稱..添加工且坦除〇〇I

上移下壁!菜單文本(T):麗命令(0).|D:\idk\idk1.5~0_05\bjn\iavac.exe參數(shù)重) |$(FileMdme.l 二(初始目錄a):? 二]P捕獲給出(U)輸岀模式0")…Irド七時一,p保存已打開的文件6)r運行為文本過法需 r編出過濾到輸岀闔□圖1.23參數(shù)選擇類別(C)菜單文本b):廟ー冷岀模式偉)..ド保存已打開的文件6)r輸岀過龍到輸參數(shù)選擇類別(C)菜單文本b):廟ー冷岀模式偉)..ド保存已打開的文件6)r輸岀過龍到輸出窗口17捕獲輸出(U)r退出時關(guān)閉窗口用r運行為文本過濾器?確定 X取消メ應(yīng)用Q?幫助QP俎和工具項目(G):0查國鍵檢欄體色印法極程糜隹寫具字顏打牛語模工具IHE快拼エ文工B 白參數(shù)(B): |$(FileNameNoExt) _▼J初始目錄(I):「 ▼I圖1.24(3)編譯與運行設(shè)置工具后,在“工具”菜單ド的下拉菜單中就可以對Java程序進行編譯與運行操作了。(a)單擊“工具”~“編譯”菜單,如圖1.25所示。就開始對選中的程序進行編譯處理。該過程要等一會兒。圖!.25(b)編譯通過后,可在右下方窗口看到編譯結(jié)果,如圖!.26所示。如果程序有問題,會看到提示。圖!.26(c)編譯成功后,可運行該程序。單擊“工具”一“運行”菜單,如圖1.27所示。圖1.27(d)運行成功后,可在右下方窗口看到程序的運行結(jié)果,如圖1.28所示。圖1.287、課外實踐安裝、配置和使用JCreator或NetBeans或Eclipse等集成開發(fā)工具實驗二Java語言基礎(chǔ)編程實驗目的1、了解Java的數(shù)據(jù)類型;2、掌握各種變量的聲明方式;3、理解運算符的優(yōu)先級;4、掌握Java基本數(shù)據(jù)類型、運算符與表達式、數(shù)組的使用方法;5、理解Java程序語法結(jié)構(gòu),掌握順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)的程序設(shè)計方法;6、通過以上內(nèi)容,掌握Java語言的編程規(guī)則。實驗要求1、編寫ー個聲明Java不同數(shù)據(jù)類型變量的程序;2、編寫ー個使用運算符、表達式、變量的程序;3、編寫ー個使用Java數(shù)組的的程序;4、編寫表達式語句、復合語句的程序;5、編寫使用不同選擇結(jié)構(gòu)的程序;6、編寫使用不同循環(huán)結(jié)構(gòu)結(jié)構(gòu)的程序。實驗內(nèi)容1、聲明不同數(shù)據(jù)類型的變量(1)編寫聲明不同數(shù)據(jù)類型變量的程序文件EXP2」.java,源代碼如下。publicclassEXP21{publicstaticvoidmain(Stringargs[]){byteb=0x55;shorts=0x55ff;inti=1000000;longl=0xffffL;charc二'a';floatf=0.23F;doubled=0.7E-3;booleanB=true;StringS="這是字符串類數(shù)據(jù)類型”;System,out.printin("字節(jié)型變量b="+b);System,out.printIn(“短整型變量s="+s);System,out.println(?整型變量i="+i);System.out.printin("長整型變量!=*+1);System,out.printIn("字符型變量c=*+c);System,out.printin("浮點型變量f=*+f);System,out.printin("雙精度變量d="+d);System,out.printIn("布爾型變量B="+B);System,out.printin("字符串類對象S=*+S);(2)編譯并運行該程序,結(jié)果如圖2.1所示。圖2.12、了解變量的使用范圍(1)建立EXP2.2.java文件,通過本程序了解變量的使用范圍,源代碼如下。publicclassEXP2_2{staticinti=10;publicstaticvoidmain(Stringargs[]){(intk=10;System,out.println(*i="+i);System,out.printIn(z,k="+k);System,out.printIn(z/1=+i);System.out.printin("k="+k);〃編譯時將出錯,已出k的使用范圍(2)編譯EXP2_2.java此時會出現(xiàn)錯誤提示如圖2.2所示。因為變量k在方法塊中聲明,在方法塊之外它是不存在的,所以編譯時會出錯。圖2.2(3)修改上面的程序(4)成功運行該程序思考:EXP2_2.java程序說明了什么問題?3、使用關(guān)系運算符和邏輯運算符(1)建立使用關(guān)系運算符和邏輯運算符的程序文件,源代碼如下。classEXP2_3{publicstaticvoidmain(Stringargs[]){inta=25,b=20,e=3,f=0;booleand=a<b;System,out.println(*a=25,b=20,e=3,f二〇");System.out.printIn(〃因為關(guān)系表達式a<b為假,所以其邏輯值為:"+d);if(e!=0&aa/e>5)System,out.printin("因為e非。且a/e為8大于5,所以輸出a/e="+a/e);if(f!=0&aa/f>5)System,out.println("a/f="+a/f);elseSystem,out.printin("因為f值為〇,所以輸出f="+f);(2)編譯并運行該程序,結(jié)果如圖2.3所示。

圖2.3圖2.34、使用數(shù)組(1)建立使用數(shù)組的程序,本程序建立了一個長度為5的1維數(shù)組,ー個長度為12的2維數(shù)組,源代碼如下。publicclassEXP2_4{publicstaticvoidmain(Stringargs[]){inta[]=newint[5];intarrl[][]=newint[3][4];a[0]=10;a[l]=10+a[0];a[2]=30;a[3]=40;a[4]=a[l]+a[2];arrl[0][0]=0;arrl[0][1]=1;arrl[0][2]=2;arrl[1][0]=3;arrl[1][1]=4;arrl[1][2]=5;arrl[2][0]=6;arrl[2][1]=7;arrl[2][2]=8;System,out.printIn("a["+0+"]="+a[〇]);System,out.printin(*a[*+l+*]=*+a[l]);System,out.printIn("a["+2+”]=*+a[2]);System,out.printIn('a["+3+”]=*+a[3]);System,out.printIn("a["+4+”]=*+a[4]);"+arrl[0][0]);"+arrl[0]"+arrl[0][0]);"+arrl[0][1]);"+arrl[0][2]);*+arrl[1][0]);"+arrl[1][1]);System,out.printIn("arrl("+0+”,"+1+”)=System,out.printIn("arrl("+0+”,"+2+”)=System,out.printIn("arrl("+1+","+0+")=System,out.printIn("arrl("+1+","+1+")=System,out.printIn("arrl("+1+”,"+2+”)=w+arrl[1][2]);(2)編譯并運行程序,結(jié)果如圖2.4所示。圖2.45、使用表達式語句與復合語句(1)建立包含表達式語句程序,源代碼如下。classEXP2_5{publicstaticvoidmain(String[]args){intk,i=3,j=4;k=20*8/4+i+j*i;System,out.printIn("表達式(20*8/4+i+j*i)="+k);})(2)建立包含復合語句程序,源代碼如下。classEXP2_6{publicstaticvoidmain(Stringargs[]){intk,i=3,j=4;k=i+j;System,out.printin("在復合塊外的輸出k=*+k);{floatf;f=j+4.5F;i++;System.out.printin("在復合塊內(nèi)的輸出f="+f);System,out.printin("在復合塊內(nèi)的輸出k=〃+k);

System,out.printin("在復合塊外的輸出i="+i);}}(3)編譯并運行上述兩個源程序,結(jié)果如圖2.5、2.6所示。(4)將變量i在塊內(nèi)定義會怎樣?改變其他變量的位置看看會發(fā)生什么變化。思考:指出程序的復合結(jié)構(gòu)以及變量的使用范I韋I。圖2.5圖2.66、使用選擇語句6.1,.使用if...else語句(1)程序功能:使用if...else語句構(gòu)造多分支,判斷某一年是否為閏年。閏年的條件是符合下面二者之一:能被4整除,但不能被100整除:或者能被400整除。(2)編寫源程序文件,代碼如下。publicclassEXP2_7{publicstaticvoidmain(Stringargs[]){booleanleap;intyear=2OO5;if((year%4=0&&year%10〇!ニ〇)||(year%400ニニ〇))/Z方法1System,out.println(year+z/年是閏年");elseSystem,out.printIn(year+z/年不是閏年”);year=2008;/Z方法2if(year%4!=0)leap=false;〃如不能被4整除,也一定不能被400整除,則一定不是閏年elseif(year%100!=0)leap=true;elseif(year%400!=0)leap=faIse;elseleap=true;if(leap=true)System.out.printIn(year+?年是閏年“);elseSystem.out.printIn(year+'z年不是閏年”);year=2050;/Z方法3if(year%4==0){if(year%100==0){if(year%400==0)leap二true;elseleap=false;)elseleap=true;)elseleap二false;〃如不能被4整除,也一定不能被400整除,則一定不是閏年if(leap==true)System,out.println(year+zz年是閏年”);elseSystem,out.printin(year+“年不是閏年“);))(3)編譯運行程序,其結(jié)果如圖2.7所示。圖2.7思考:本程序中有幾個選擇語句,哪些具有嵌套關(guān)系?2、使用switch語句(1)程序功能:在不同溫度時顯示不同的解釋說明。(2)程序源代碼如下。classEXP28{publicstaticvoidmain(Stringargs[]){intc=38;switch(c<10?l:c<25?2:c<35?3:4){System,out.println(*"+c+"℃有點冷。要多穿衣服。?;System,out.printing"+c+”℃正合適。出去玩吧。");case3:System,out.printing"+c+”℃有點熱。つ;default:System,out.printing"+c+”℃太熱了!開空調(diào)。づ;(3)編譯運行程序,其結(jié)果如圖2.8所示。

圖2.87、使用循環(huán)語句for循環(huán)語句練習(1)程序功能:按5度的增量打印出一個從攝氏溫度到華氏溫度的轉(zhuǎn)換表。(2)程序源代碼如下。classEXP29(publicstaticvoidmain(Stringargs[]){inth,c:System,out.println("攝氏溫度\t華氏溫度”);for(c=0;c<=40;c+=5){h=c*9/5+32;//如不是本題的特殊情況,應(yīng)將h,c都改為double,將9改為9.0System,out.printinC>\t"+c+"\t"+h);(3)編譯并運行程序,其結(jié)果如圖2.9所示。

.EditPlu*-[D:\)ava\prog\EXP2_9.)ava]J文用沖編輯⑹晝?W喜我(S)格式⑼I?P)IXDSD(W)MWXH)ュ皿兇:ゴぶ」〇,匕!ft.EditPlu*-[D:\)ava\prog\EXP2_9.)ava]J文用沖編輯⑹晝?W喜我(S)格式⑼I?P)IXDSD(W)MWXH)ュ皿兇:ゴぶ」〇,匕!ftX〇、品甘吟イ,三賤ザコ司Kコ%?目錄I剪饅IPJDISK.APP-3-アDAヨlava-JpfOflclassEXP2_9(publicstaticvoidaain(Stungacgs[]){loth/c;Syste*.out.printin(ル陽1度、t華氏—T");for(c?0;c<?40;c?5)(h=c?9/5+32;Systea.out.printIn(w\'i"*h);)乃氏濯度—運行華氏溫度11UAJFiesC*]一!*EXP2_9.)ava微要幅助,調(diào)按Fl?行7列40115clpcINS爾圖2.9while循環(huán)語句練習(1)程序功能:運行程序后從鍵盤輸入數(shù)字1/2/3后,可顯示抽獎得到的獎品;如果輸入其它數(shù)字或字符顯示“沒有獎品給你!”。(2)程序源代碼如ド。importjava.io.*;classEXP2_10{publicstaticvoidmain(Stringargs[])throwslOException{charch;System.out.printin("按1/2/3數(shù)字鍵可得大獎!つ;System.out.printin("按七’鍵可退出循環(huán)操作.“);while((ch=(char)System,in.readO)!=,'){System,in.skip(2);//跳過回車鍵switch(ch){case'1':System,out.printIn("恭喜你得大獎,ー輛汽車!”);break;case'2’:System,out.printIn("不錯呀,你得到ー臺筆記本電腦!つ;break;case'3':System.out.printin("沒有白來,你得到ー臺冰箱!”);break;case*q':System,out.printIn("歡迎下次再來!");System,exit(0);default:System.out.printin("真不幸,你沒有獎品!下次再來吧。");(3)編譯源程序。(4)在命令提示符窗口運行程序,然后分別按1、2、3、r結(jié)果如圖2.10所示。D:\jauaXprog>jauaEXP2_1B按!Z2/3數(shù)字健可卷大獎,較“鍵可退由循環(huán)掠作.恭喜你得大獎,ー輛汽車,不錯呀,你得到ー臺筆記本電腦,と有白來,你得到ー臺冰箱,頭迎下次再來,D:\java\pi*og>-圖2.10d〇…while循環(huán)語句練習(1)程序功能:求1+2+…+100之和,并將求和表達式與所求的和顯示出來。(2)程序源代碼如下。classEXP2」1{publicstaticvoidmain(Stringargsロ){intn=l,sum=0;do{sum+=n++;)while(n<=100);System,out.printin("1+2+...+100="+sum);(3)編譯并運行程序,結(jié)果如圖2.11所示。圖2.11多重循環(huán)練習(1)輸出九九乘法表的程序,源代碼如下。publicclassEXP2_12{publicstaticvoidmain(Stringargs[])(inti,j,n=9;System,out.print('*");for(i=l;i<=n;i++)TOC\o"1-5"\h\zSystem,out.print( +i);System,out.print('\n 1");for(i=l;i<=n;i++)System,out.print(' ");System,out.printin();for(i=l;i<=n;i++)(System,out.print(*"+i+”ド);for(j=l;j<=i;j++)System,out.print(""+i*j);System,out.printlnO;(2)編譯并運行程序,結(jié)果如圖2.12所示。

圖2.12思考:觀察輸出的結(jié)果,發(fā)現(xiàn)九九表的行和列沒有對齊,如何才能輸出?張行列對齊的九九表?實驗三類和對象基礎(chǔ)編程實驗目的通過編程和上機實驗理解Java語言是如何體現(xiàn)面向?qū)ο缶幊袒舅枷?了解類的封裝方法,以及如何創(chuàng)建類和對象,了解成員變量和成員方法的特性,掌握面向?qū)ο蟪绦蛟O(shè)計的方法,了解類的繼承性和多態(tài)性的作用,了解接口的作用,掌握包的概念,以及如何引入和定義包,理解包對訪問權(quán)限的影響,進ー步理解面向?qū)ο蟮膶嵸|(zhì)。實驗要求1、編寫ー個體現(xiàn)面向?qū)ο笏枷氲某绦?2、編寫ー個創(chuàng)建對象和使用對象的方法的程序:3、編寫ー個顯示當前日期和時間的程序:4、編寫不同成員變量修飾方法的程序:5、編寫不同成員方法修飾方法的程序:6、編寫體現(xiàn)類的繼承性(成員變量、成員方法、成員變量隱藏)的程序:7、編寫體現(xiàn)類的多態(tài)性(成員方法重載、構(gòu)造方法重載)的程序:8、編寫體現(xiàn)接u功能的程序。9、編寫一個類,將其打包,并在另外一個程序中引入該包。10、編寫一個能夠體現(xiàn)出訪問權(quán)限控制的程序。實驗內(nèi)容1、設(shè)計類來描述真實客觀世界中的事物,使用類的成員變量來表示事物的屬性和狀態(tài),使用類的成員方法來提供對成員變量的訪問或修改(1)程序功能:設(shè)計ー個用來描述汽車的類,使用類的非靜態(tài)成員變量來表示汽車的車主姓名、當前的速率和當前方向盤的轉(zhuǎn)向角度,使用類的非靜態(tài)成員方法來表示改變汽車的速率和停車兩個操作。(2)程序源代碼如ド。publicclassEXP31(privateStringownerName:〃車主姓名privatefloatcurSpeed;〃當前車速privatefloatcurDirlnDegree;〃當前方向盤轉(zhuǎn)向角度publicEXP31(StringownerName){this.ownerName=ownerName;)publicEXP3_1(StringownerName,floatspeed,floatdirInDegree){this(ownerName);this.curSpeed=speed;this.curDirInDegree=dirInDegree;)publicStringgetOwnerName(){〃提供對車主姓名的訪問returnownerName;)publicfloatgetCurDirlnDegreeO{〃提供對當前方向盤轉(zhuǎn)向角度的訪問returncurDirInDegree;)publicfloatgetCurSpeed(){〃提供對當前車速的訪問returncurSpeed;)publicvoidchangeSpeed(floatcurSpeed){〃提供改變當前的車速this.curSpeed=curSpeed;)publicvoidstop(){〃提供停車this.curSpeed=O;}}(3)編譯源程序。2、創(chuàng)建類的對象,使用對象的方法(類的非靜態(tài)方法)來訪問或修改對象的變量(類的非靜態(tài)變量)(1)創(chuàng)建類EXP3」的對象,在調(diào)用類的構(gòu)造函數(shù)時指定對象的變量的初始值,以后再使用對象的方法來訪問或修改對象的變量的值。(2)程序代碼如下。publicclassEXP3_2{publicstaticvoidmain(String[]args){EXP3_1car=newEXP3」("成龍",200f,25f);System,out.printIn("車主姓名:“+car.getOwnerName());System,out.printIn("當前車速:“+car.getCurSpeed());System,out.printin("當前轉(zhuǎn)向角度:"+car.getCurDirlnDegreeO);car.changeSpeed(80);System,out.printIn("在調(diào)用changeSpeed(80)后,車速變?yōu)?"+car.getCurSpeed());car.stopO;System,out.printIn("在調(diào)用stop()后,車速變?yōu)?"+car.getCurSpeed());(3)編譯并運行,結(jié)果如圖3.1所示。圖3.13、編寫顯示當前時間和日期的程序(3)程序功能:該程序通過使用ー個自定義類Time,實現(xiàn)顯示當前日期和時間的功能。(4)程序代碼如下。importjava.util.Calendar;classTime{privateCalendart;privateinty,m,d,hh,mm,ss;Time(){t=Calendar.getlnstanceO;y=t.get(t.YEAR);m=t.get(t.MONTH)+1;d=t.get(t.DATE);hh=t.get(t.HOUROF_DAY);mm=t.get(t.MINUTE);ss=t.get(t.SECOND);)publicStringgetDate(){returny+“年"+m+"月"+d+"日”;}publicStringgetTime(){returnhh+"時"+mm+"分"+ss+"秒";}publicclassEXP3_3{publicstaticvoidmain(String[]args){Timet=newTimeO;System,out.printIn("當前日期:"+t.getDateO);System,out.printin("當前時間:"+t.getTimeO);})(5)編譯并運行,結(jié)果如圖3.2所示。圖3.24、使用修飾符來限定類的成員變量或成員方法的屬性有時需要公開ー些變量和方法,有時需耍禁止其他對象使用變量和方法,這時可以使用修飾符來實現(xiàn)這個目的。常用的修飾符如下:publicprivateprotectedpackagestaticfinaltransientvolatile不同修飾符的訪問控制權(quán)限如表3.!所示。訪問權(quán)限修飾符 類子類 包 所有類和包public VV V Vprivate Vprotected VV Vpackage(1)程序功能:通過兩個類StaticDemo、EXP34說明靜態(tài)變量/方法與實例變量/方法的區(qū)別。(2)程序源代碼如ド。classStaticDemo{staticintx;inty;publicstaticintgetX(){returnx;)publicstaticvoidsetX(intnewX){x=newX;}publicintgetY(){returny;)publicvoidsetY(intnewY){y=newY;))publicclassEXP34{publicstaticvoidmain(String[]args){System,out.printin(“靜態(tài)變量x="+StaticDemo.getX());System,out.println("實例變量y="+StaticDemo.getY());〃非法,編譯時將出錯StaticDemoa=newStaticDemoO;StaticDemob=newStaticDemoO;setX(l);setY(2);setX(3);b.setY(4);System,out.printin(“靜態(tài)變量a.x="+a.getXO);System,out.printIn("實例變量a.y="+a.getY());System,out.printIn(“靜態(tài)變量b.x="+b.getXO);System,out.printIn("實例變量b.y二"+b.getY0);⑶對上面的源程序進行編譯,會出現(xiàn)如圖3.3所示的出錯提示。

圖3.3(4)將源程序中的出錯語句刪除或使用解釋符〃隱藏起來,例如,//System,out.printin("實例變量y="+StaticDemo.getY());(5)重新編譯并運行該程序,結(jié)果如圖3.4所示。圖3.45、調(diào)用方法時參數(shù)傳遞的練習在其它語言中,函數(shù)調(diào)用或過程調(diào)用時參數(shù)有傳值調(diào)用和傳地址調(diào)用之分。在Java中,方法中的參數(shù)傳遞可以分為傳值調(diào)用或?qū)ο蠓椒ㄕ{(diào)用等方式。傳值調(diào)用即傳遞的參數(shù)是基本數(shù)據(jù)類型,調(diào)用方法時在方法中將不能改變參數(shù)的值,這意味著只能使用它們。對象調(diào)用是指先調(diào)用對象,再調(diào)用對象的方法,這種方式可以修改允許存取的成員變量。所以,如果不想改變參數(shù)的值,可以采用傳值調(diào)用的方法。如果想改變參數(shù)的值,可采用對象調(diào)用的方法,間接修改參數(shù)的值。編寫ー個傳值調(diào)用的程序(1)程序功能:程序首先給整型變量x和y賦ー個初值10,然后使用傳值調(diào)用方式調(diào)用方法ffl對x和y做乘方及輸出xネロy的乘方值,最后再輸出x和y的乘方值。(2)程序源代碼如下。classEXP3_5{publicstaticvoidmain(String[]args){intx=10,y=10;ffl(x,y);System,out.printIn("x="+x+”,y="+y);)staticvoidffl(intpassX,intpassY){passX=passX*passX;passY=passY*passY;System,out.printIn("passX="+passX+,passY="+passY);)}(3)編譯并運行,結(jié)果如圖3.5。編寫ー個調(diào)用對象方法的程序(1)程序功能:通過調(diào)用對象的方法在方法調(diào)用后修改了成員變量的值。(2)程序源代碼如下。classEXP3_6{publicstaticvoidmain(String[]args){Powerp=newPower();p.ff2(10,10);System,out.printIn("方法調(diào)用后x="+p.x+",y="+p.y);})classPower{intx=10,y=10;voidff2(intpassX,intpassY){System,out.printin("初始時x="+x+",y="+y);x=passX*passX;y=passY*passY;System,out.printIn("方法調(diào)用中x="+x+",y="+y);))(3)編譯并運行,結(jié)果如圖3.6。圖3.6附加實驗:設(shè)計程序類似于分析總結(jié)傳遞基本類型值和傳遞對象引用值的差異6、類的繼承性練習新類可從現(xiàn)有的類中產(chǎn)生,并保留現(xiàn)有類的成員變量和方法并可根據(jù)需要對它們加以修改。新類還可添加新的變量和方法。這種現(xiàn)象就稱為類的繼承。當建立一個新類時,不必寫出全部成員變量和成員方法。只要簡單地聲明這個類是從ー個已定義的類繼承下來的,就可以引用被繼承類的全部成員。被繼承的類稱為父類或超類(superclass),這個新類稱為子類。Java提供了一個龐大的類庫讓開發(fā)人員繼承和使用。設(shè)計這些類是出于公用的目的,因此,很少有某個類恰恰滿足你的需要。你必須設(shè)計自己的能處理實際問題的類,如果你設(shè)計的這個類僅僅實現(xiàn)了繼承,則和父類毫無兩樣。所以,通常要對子類進行擴展,即添加新的屬性和方法。這使得子類要比父類大,但更具特殊性,代表著ー組更具體的對象。繼承的意義就在于此。創(chuàng)建將被繼承的類(1)程序源代碼如下。publicclassEXP37(protectedStringxm;//具有保護修飾符的成員變量protectedintxh;voidsetdata(Stringm,inth)//設(shè)置數(shù)據(jù)的方法(xm=m;xh=h;)publicvoidprint()//輸出數(shù)據(jù)的方法(System,out.printin(xm+”,"+xh);))(2)編譯源程序。2、 創(chuàng)建將被繼承的類(1)程序功能:通過EXP3.7類產(chǎn)生子類EXP3.8,其不僅具有父類的成員變量xm(姓名)、xh(學號),還定義了新成員變量xy(學院)、xi(系)。在程序中調(diào)用了父類的print方法,同時可以看出子類也具有該方法。(2)程序源代碼如下。classEXP3_8extendsEXP3_7{protectedStringxy;protectedStringxi;publicstaticvoidmain(Stringargs[]){EXP3_7pl=newEXP3_7();pl.setdata("李四”,12321):pl.print();EXP3_8si=newEXP3_8();si.setdata("張三”,12345);//調(diào)用父類的成員方法sl.xyア信息與電子工程學院";〃訪問本類的成員變量sl.xi="計算機系";〃訪問本類的成員變量si.print();System,out.print(si.xm+","+sl.xy+","+sl.xi);(4)編譯并運行,結(jié)果如圖3.7所示。圖3.76.3、 了解成員方法的覆蓋方式通過繼承子類可以繼承父類中所有可以被子類訪問的成員方法,但如果子類的方法與父類方法同名,則不能繼承,此時稱子類的方法覆蓋了父類的方法,簡稱為方法覆蓋(override)?方法覆蓋為子類提供了修改父類成員方法的能力。例如,子類可以修改層層繼承下來的Object根類的toString方法,讓它輸出ー些更有用的信息。下面的程序顯示了在子類Circle中添加toString方法,用來返回圓半徑和圓面積信息。(1)編寫覆蓋Object類toString方法的程序文件EXP3_9.java,源代碼如下。classCircle{privateintradius;Circle(intr){setRadius(r);publicvoidsetRadius(intr){radius=r;)publicintgetRadius(){returnradius;)publicdoublearea(){return3.14159*radius*radius;)publicStringtoString(){return"圓半徑:"+getRadius()+“圓面積:"+area();})publicclassEXP3_9{publicstaticvoidmain(Stringargsロ){Circlec=newCircle(10);System,out.println("\n+c.toString());})(2)編譯并運行,結(jié)果如圖3.8所示。圖3.86.4、this、super和super()的使用(1)程序功能:程序功能:說明this、super和superO的用法。程序首先定義Point(點)類,然后創(chuàng)建點的子類Line(線)。最后通過LX3」0類輸出線段的長度。程序中通過super(a,b)調(diào)用父類Point的構(gòu)造方法為父類的x和y賦值。在子類Line的setLine方法中,因為參數(shù)名和成員變量名相同,為給成員變量賦值,使用this引用,告訴編譯器是為當前類的成員變量賦值。在length和mString方法中使用父類成員變量時,使用super引用,告訴編譯器使用的是父類的成員變量。(2)程序源代碼如ド。classPoint{protectedintx,y;Point(inta,intb){setPoint(a,b);)publicvoidsetPoint(inta,intb){x=a;y=b;))classLineextendsPoint{protectedintx,y;Line(inta,intb){super(a,b);setLine(a,b);)publicvoidsetLine(intx,inty){this,x=x+x;this,y二y+y;)publicdoublelength(){intxl=super.x,yl=super.y,x2=this.x,y2=this.y;returnMath,sqrt((x2-xl)*(x2-xl)+(y2-yl)*(y2-yl));)publicStringtoStringO(return”直線端點:廠+super,x+〃,"+super,y+"][”+x+ +y+”]直線長度:"+this,length();}}publicclassEXP3」〇{publicstaticvoidmain(Stringargs[]){Lineline二newLine(50,50);System,out.println('\n"+line.toStringO);}(3)編譯并運行,結(jié)果如圖3.9。圖3.97、類的多態(tài)性練習類的繼承發(fā)生在多個類之間,而類的多態(tài)只發(fā)生在同一個類上。在ー個類中,可以定義多個同名的方法,只要確定它們的參數(shù)個數(shù)和類型不同。這種現(xiàn)象稱為類的多態(tài)。多態(tài)使程序簡潔,為程序員帶來很大便利。在OOP中,當程序要實現(xiàn)多個相近的功能時,就給相應(yīng)的方法起一個共同的名字,用不同的參數(shù)代表不同的功能。這樣,在使用方法時不論傳遞什么參數(shù),只要能被程序識別就可以得到確定的結(jié)果。類的多態(tài)性體現(xiàn)在方法的重載(overload)上,包括成員方法和構(gòu)造方法的重載。方法的重載(1)程序功能:使用同名方法對兩個、三個或用數(shù)組容納的ー組數(shù)進行排序(2)程序源代碼如下。classIntSort{publicStringsort(inta,intb){if(a>b)returna+,+b;elsereturnb+ +a;)publicStringsort(inta,intb,intc){intswap;if(a<b){swap=a;a=b;b=swap;if(a<c){swap二a;a=c;■swap;}if(b<c){swap=b;b=c;c=swap;)returna十 +b十+c;)publicStringsort(intarr[]){Strings="intswap;for(inti=0;i<arr.length;i++)for(intj=0;j<arr.length-1;j++)if(arr[j]>arr[j+l]){swap=arrIj」;arr[j]=arr[j+l];arr[j+l]=swap;)for(inti=0;i<arr.length;i++)s=s+arr[i]+*";returns;)}publicclassEXP3_11{publicstaticvoidmain(String[]args){IntSorts=newIntSort();inta=30,b=12,c=40;intarr[]={34,8,12,67,44,98,52,23,16,16);System,out.printIn("兩個數(shù)的排序結(jié)果:"+s.sort(a,b));System,out.printin("三個數(shù)的排序結(jié)果:"+s.sort(a,b,c));System,out.printin("數(shù)組的排序結(jié)果:"+s.sort(arr));(3)編譯并運行,結(jié)果如圖3.10所示。圖3.10構(gòu)造函數(shù)的重載構(gòu)造方法的名稱和類同名,沒有返回類型。盡管構(gòu)造方法看起來和一般的成員方法沒有差別,但它不是方法,也不是類的成員。因此,構(gòu)造方法不能直接調(diào)用,只能由new操作符調(diào)用。構(gòu)造方法對于類是十分重要的,對象的初始化任務(wù)要靠構(gòu)造方法來完成。重載構(gòu)造方法的目的是提供多種初始化對象的能力,使程序員可以根據(jù)實際需要選用合適的構(gòu)造方法來初始化對象。(1)程序源代碼如下。classRunDemo(privateStringuserName,password;RunDemo(){System,out.printIn("全部為空!”);)RunDemo(Stringname){userName=name;)RunDemo(Stringname,Stringpwd){this(name);password=pwd;check();)voidcheck(){Strings=null;if(userName!=nu11)s="用戶名:"+userName;elsesア用戶名不能為空!〃;if(password!=”12345678")s=s+?口令無效!elses=s+"ロ令:********";System,out.printin(s);)}publicclassEXP312{publicstaticvoidmain(String[]args){newRunDemo();newRunDemo("張三”);newRunDemo(null,"李四");newRunDemo("王五","12345678");)I(2)編譯并運行,結(jié)果如圖3.11所示。圖3.118、使用接口技術(shù)(1)程序功能:在程序中聲明一個自定義接口NL,用來計算ー個人年齡。(2)程序源代碼如下。interfaceNL{〃定義接口intyear=2014;intage();voidoutput();}publicclassEXP3_13implementsNL{〃實現(xiàn)接口Stringxm;〃類自己的成員變量(姓名)intcsrq;〃類自己的成員變量(出生日期)publicEXP3_13(Stringnl,inty){//類構(gòu)造方法xm=nl;csrq=y;)publicintage(){〃實現(xiàn)接口的方法returnyear-csrq;〃這里直接使用了接口中的常量year}publicvoidoutput(){〃實現(xiàn)接口的方法System,out.printIn(this,xm+”今年的年齡是“+this,age()+"歲”);)publicstaticvoidmain(Stringargs[])〃類自己的成員方法(NLa=newEXP3」3(〃張三",1994的);a.output();)}(3)編譯并運行,結(jié)果如圖3.12。圖3.129、編寫ー個小應(yīng)用程序,使其能在瀏覽器中顯示ー個紅色按鈕。importjava,applet.Applet;importjava.awt.*;publicclassE_importextendsApplet(Buttonredbutton;publicvoidinit(){redbutton=newButton("這是個紅色按鈕”);redbutton.setBackground(Color,red);add(redbutton);)publicvoidpaint(Graphicsg){g.drawString(*thisisabutton”,30,50);}}JavaApplet由瀏覽器來運行,因此必須編寫ー個超文本文件(含有applet標記的Web頁)通知瀏覽器來運行這個JavaApplet?以下為ー個簡單的html文件的內(nèi)容:<appletcode=E_import.classheight=100width=300></applet>可以用記事本編輯,可在同一文件夾下存為E_import.html文件。再使用瀏覽器打開文件E_import.html運行JavaApplet,瀏覽地址設(shè)為:文件夾目錄\E_import.html,即可顯示網(wǎng)頁,實現(xiàn)Java嵌入式程序。10、編寫ー個類,使該類中具有不同訪問權(quán)限的成員,將這個類存放在ー個包中。在另外一個包中再編寫第二個類,在此類中編寫ー個方法,在該方法中操作第一個類中的成員。熟悉哪些成員可操作,哪些成員不可操作。//Father,javapackagetom;//定義包publicclassFather(intheight;〃友好的protectedintmoney;〃保護的publicintweight;〃共有的publicFather(intm)〃構(gòu)造方法{money=m;}protectedintgetMoney()(returnmoney;)voidsetMoney(intnewMoney)money=newMoney;//Jerry,javapackagetom.jiafen;//子包importtom.Father;〃使用父親publicclassJerryextendsFather{publicJerry(){super(20);〃調(diào)用父類,有繼承super,無,this}publicstaticvoidmain(Stringargs[]){Jerryjerry=newJerry();〃jerry.height=12;〃父親友好,不可調(diào)用,跨包了jerry.weight=200;jerry,money=800;intm二jerry.getMoney();//jerry.setMoney(300);System,out.printIn("m="+m);))分析該程序主方法中注釋的部分不能執(zhí)行的原因。11、完成下面父類和子類的定義:(1)定義Student類,放入stu包中。屬性包括學號、姓名、英語成績、數(shù)學成績、計算機成績和總成績。方法包括構(gòu)造方法、get方法、set方法、toString方法(返回該類的對象)、equals方法(比較兩個對象是否相等,若相等返回true,否則返回false)、compare方法仕匕較兩個學生的總成績,結(jié)果分為大于、小于、等于)、sum方法(計算總成績)、testScore方法(計算評測成績)。注:評測成績可以取三門課成績的平均分,另外任何ー門課的成績的改變都需要對總成績進行重新計算,因此在每ー個set方法中應(yīng)調(diào)用sum方法計算總成績。(2)定義StudentXW類為Student的子類,放入sub包中。在StudentXW(學習委員)類中增加責任屬性,并重寫testScore方法(計算測評成績,測評成績=三門課的平均分+3)。(3)定義StudentBZ(班長)類為Student的子類,放入sub包中。在StudentBZ(班長)類中增加責任屬性,并重寫testScore方法(計算測評成績,測評成績二三門課的平均分+5)。(4)定義測試類,生成若于個Student類、StudentXW類及StudentXW類的對象,并分別計算它們的評測成績。參考程序如下://Student,javapackagestu;classStudentintnum;Stringname;floatenglishScore,mathScore,computerScore,sum;Student()(this(0,null,0.Of,0.Of,0.Of);}mathScore,floatStudent(intnum,Stringname,floatenglishScore,floatcomputerScore)mathScore,float(this.num=num;=name;this,englishScore=englishScore;this.mathScore=mathScore;puterScore=computerScore;)floatgetenglishScoreO(returnenglishScore;)floatgetmathScoreO(returnmathScore;}floatgetcomputerScore0(returncomputerScore;}floatgetsumO{returnsum;}floatsum()sum=englishScore+mathScore+computerScore;returnsum;)voidsetenglishScore(floata){englishScore=a;sum();voidsetmathScore(floata){mathScore=a;sum();)voidsetcomputerScore(floata){computerScore=a;sum();}floattestScore()(return(sum()/3);}StudenttoString(Studenta)(returna;}booleanequals(Studenta)(if(englishScore==a.englishScore&&mathScore==a.mathScore&&computerScore==puterScore)returntrue;elsereturnfalse;}Stringcompare(Studenta){if(this.sum>a.sum)return"大于";elseif(this.sum<a.sum)return”小于;elsereturn"等于";})//StudentXWpackagesub;importstu;classStudentXWextendsStudent{Stringduty;StudentXW(intnum,Stringname,floatenglishScore,floatmathScore,floatcomputerScore,Stringduty)super(num,name,englishScore,mathScore,computerScore);this.duty=duty;)floattestScore()(return((sum()/3)+3);))//StudentBZpackagesub;importstu;classStudentBZextendsStudent{Stringduty;StudentBZ(intnum,Stringname,floatenglishScore,floatmathScore,floatcomputerScore,Stringduty){super(num,name,englishScore,mathScore,computerScore);this.duty=duty;}floattestScore(){return((sum()/3)+5);}}importsub;importstu;//E.javaclassE(publicstaticvoidmain(Stringargsロ){Studentstudentl=newStudent(63012,“張三”,75,95,45);Studentstudent2=newStudent(63012,"張三”,77,95,45);StudentXWstudentxwl=newStudentXW(63012,“張三”,75,42,45,"收發(fā)作業(yè)”);StudentBZstudentbzl=newStudentBZ(63012,"張三”,75,75,45,"管理");System,out.printin(student1.testScore());System,out.println(student2.testScore());System,out.println(studentxwl.testScore());System,out.print1n(studentbzl.testScore());實驗四包、接口與異常處理【開發(fā)語言及實現(xiàn)平臺或?qū)嶒灜h(huán)境】Windows2000或XP,JDK1.6與Jcreator4.0【實驗目的】.了解Java中包(package)、接口(interface)和異常處理(exception)的作用。.掌握包、接口、異常處理的設(shè)計方法?!緦嶒炓蟆?了解Java系統(tǒng)包的結(jié)構(gòu)。.掌握創(chuàng)建自定義包的方法。.掌握使用系統(tǒng)接口的技術(shù)和創(chuàng)建自定義接口的方法。.理解系統(tǒng)異常處理的機制和創(chuàng)建自定義異常的方法。【實驗步驟】—.了解并使用Java的系統(tǒng)包.API包、接口、異常處理的作用包是類和接口的集合。利用包可以把常用的類或功能相似的類放在ー個包中。Java語言提供系統(tǒng)包,其中包含了大量的類,可以在編寫Java程序時直接引用它們。為便于管理和使用它們,將這些類分為了不同的包。包又稱類庫或API包,所謂API(ApplicationProgramInterface)即應(yīng)用程序接口。AP!包一方面提供豐富的類與方法供大家使用,如畫圖形、播放聲音等,另一方面又負責和系統(tǒng)軟硬件打交道,圓滿實現(xiàn)用戶程序的功能。所有JavaAPI包都以“java.”開頭,以區(qū)別用戶創(chuàng)建的包。接口解決了Java不支持多重繼承的問題,可以通過實現(xiàn)多個接口達到與多重繼承相同的功能。處理程序運行時的錯誤和設(shè)計程序同樣重要,只有能夠完善處理運行時出錯的程序,軟件系統(tǒng)才能長期穩(wěn)定地運行,異常處理就是說明如何處理程序運行時出錯的問題。.上網(wǎng)瀏覽JavaAP!文檔在地址http:〃/上,可以看到Java系統(tǒng)提供的JavaAPI文檔,類文檔的內(nèi)容主要是:類層次、類及用途描述、成員變量列表、構(gòu)造方法列表、成員方法列表、從類層次上繼承的方法列表、成員變量的詳細說明、構(gòu)造方法詳細說明、成員方法詳細說明。在這里可以看到Java提供的JavaAP!文檔的最新內(nèi)容二.創(chuàng)建并使用自定義包.自定義包的聲明方式<package>く自定義包名〉聲明包語句必須添加在源程序的第一行,表示該程序文件聲明的全部類都屬于這個包。.創(chuàng)建自定義包Mypackage在存放源程序的文件夾中建立一個子文件夾Mypackage。例如,在"E:\javademo”文件夾之中創(chuàng)建一個與包同名的子文件夾Mypackage(E:\javademo\Mypackage)?并將編譯過的class文件放入該文件夾中。注意:包名與文件夾名大小寫要一致。再添加環(huán)境變量classpath的路徑,例如:D:\java\jdkl.6\lib;E:\javademo.在包中創(chuàng)建類(l)YMD.java程序功能:在源程序中,首先聲明使用的包名Mypackage,然后創(chuàng)建YMD類,該類具有計算今年的年份,可以輸出ー個帶有年月日的字符串的功能。(2)編寫LX4」YMD.java文件,源代碼如下。packageMypackage;〃聲明存放類的包importjava.util.*;//弓|用java,util包publicclassLX4_1_YMD{privateintyear,month,day;publicstaticvoidmain(String[]args){}publicLX41YMD(inty,intm,intd){year=y;month=(((m>=l)&(m<=12))?m:1);day=(((d>=l)&(d<=31))?d:1);)publicLX4_1_YMD(){this(0,0,0);)publicstaticintthisyear(){returnCalendar.getlnstanc

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論