




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
《Java程序設(shè)計(jì)基礎(chǔ)》實(shí)驗(yàn)指導(dǎo)書(shū)目錄第1單元Java開(kāi)發(fā)環(huán)境 2寫(xiě)在前面的話 2一、實(shí)驗(yàn)?zāi)康?2二、實(shí)驗(yàn)內(nèi)容 21.JDK的下載與安裝 22.設(shè)置環(huán)境變量 23.測(cè)試JDK 24.編寫(xiě)、編譯和運(yùn)行Java源程序 2三、實(shí)驗(yàn)習(xí)題 2四、實(shí)驗(yàn)心得 2第2單元Java語(yǔ)言基礎(chǔ) 2寫(xiě)在前面的話 2一、實(shí)驗(yàn)?zāi)康?2二、實(shí)驗(yàn)內(nèi)容 21.Java語(yǔ)言的基本組成 22.數(shù)據(jù)類型的定義及處理 23.不同數(shù)據(jù)類型間的混合運(yùn)算 24.運(yùn)算符 2三、實(shí)驗(yàn)習(xí)題 2四、實(shí)驗(yàn)心得 2第3單元Java控制語(yǔ)句 2寫(xiě)在前面的話 2一、實(shí)驗(yàn)?zāi)康?2二、實(shí)驗(yàn)內(nèi)容 21.if...else語(yǔ)句應(yīng)用 22.switch語(yǔ)句應(yīng)用 23.while和do-while語(yǔ)句應(yīng)用 24.for語(yǔ)句應(yīng)用 25.循環(huán)嵌套 2三、實(shí)驗(yàn)習(xí)題 2四、實(shí)驗(yàn)心得 2第4單元數(shù)組與方法 2一、實(shí)驗(yàn)?zāi)康?2二、實(shí)驗(yàn)內(nèi)容 21.一維數(shù)組應(yīng)用 22.二維數(shù)組應(yīng)用 23.方法調(diào)用 24.方法重載 25.數(shù)組應(yīng)用 2三、實(shí)驗(yàn)習(xí)題 2四、實(shí)驗(yàn)心得 2第5單元類與面向?qū)ο?2寫(xiě)在前面的話 2一、實(shí)驗(yàn)?zāi)康?2二、實(shí)驗(yàn)內(nèi)容 21.類的實(shí)例化 22.類的封裝性 23.類設(shè)計(jì)分析 24.String類 25.類的繼承性 26.this和super的區(qū)別 27.抽象類 2三、實(shí)驗(yàn)習(xí)題 2四、實(shí)驗(yàn)心得 2五、思考題 2第6單元接口與包 2寫(xiě)在前面的話 2一、實(shí)驗(yàn)?zāi)康?2二、實(shí)驗(yàn)內(nèi)容 21.接口的定義和實(shí)現(xiàn) 22.抽象類和接口 23.接口的實(shí)際應(yīng)用—制定標(biāo)準(zhǔn) 24.包的定義及應(yīng)用 25.包及訪問(wèn)控制權(quán)限的應(yīng)用 2三、實(shí)驗(yàn)習(xí)題 2四、實(shí)驗(yàn)心得 2第7單元Java異常處理 2一、實(shí)驗(yàn)?zāi)康?2二、實(shí)驗(yàn)內(nèi)容 21.捕獲及處理異常 22.throws關(guān)鍵字 23.異常應(yīng)用范例 2三、實(shí)驗(yàn)習(xí)題 2四、實(shí)驗(yàn)心得 2第8單元圖形用戶界面 2寫(xiě)在前面的話 2一、實(shí)驗(yàn)?zāi)康?2二、實(shí)驗(yàn)內(nèi)容 21.Frame框架 22.字體和顏色的設(shè)置 23.FlowLayout布局管理器 24.BorderLayout布局管理器 25.事件監(jiān)聽(tīng)處理實(shí)例 2三、實(shí)驗(yàn)習(xí)題 2四、實(shí)驗(yàn)心得 2PAGE26PAGE5第1單元Java開(kāi)發(fā)環(huán)境寫(xiě)在前面的話Java基礎(chǔ)開(kāi)發(fā)的過(guò)程分三步:⑴編寫(xiě)源程序⑵編譯源程序⑶解釋執(zhí)行程序,除了編寫(xiě)源程序可在任意的文本編輯器中完成外,編譯源程序和解釋執(zhí)行程序都需要在一定的環(huán)境下實(shí)現(xiàn)。目前常用的Java語(yǔ)言開(kāi)發(fā)工具包是由SUN公司免費(fèi)提供的JDK。對(duì)于初學(xué)者來(lái)說(shuō),使用JDK開(kāi)發(fā)工具進(jìn)行學(xué)習(xí),可以在學(xué)習(xí)的初期把精力放在Java語(yǔ)言語(yǔ)法的學(xué)習(xí)上,體會(huì)更多底層的知識(shí),對(duì)于以后的程序開(kāi)發(fā)很有幫助,所以有必要熟練掌握J(rèn)DK的安裝與配置。一、實(shí)驗(yàn)?zāi)康?.掌握下載與安裝JDK的方法。2.掌握配置JDK環(huán)境變量的方法。3.掌握J(rèn)ava程序的編寫(xiě)、編譯與運(yùn)行過(guò)程。二、實(shí)驗(yàn)內(nèi)容1.JDK的下載與安裝⑴下載JDK打開(kāi)SUN公司的官方網(wǎng)站,可以在該網(wǎng)站上下載得到最新版本的JDK。⑵安裝JDK運(yùn)行安裝文件jdk-6u11-windows-i586-p.exe。安裝時(shí)如果沒(méi)有特殊要求,選擇默認(rèn)設(shè)置即可(程序默認(rèn)的安裝路徑在C:\ProgramFiles\Java目錄下);也可自定義安裝(如本實(shí)驗(yàn)教程選擇安裝目錄為D:\Java\jdk1.6)。2.設(shè)置環(huán)境變量由于JDK提供的編譯和運(yùn)行工具都是基于命令行的,所以應(yīng)把JDK安裝目錄下bin目錄中的可執(zhí)行文件都添加到DOS的外部命令中去,這樣就可以在任意路徑下直接使用bin目錄下的.exe程序了。配置的參數(shù)為操作系統(tǒng)中的path環(huán)境變量,該變量的用途是使系統(tǒng)可以查找到可執(zhí)行程序所在的路徑。下面以Windows/xp/NT/2000為例說(shuō)明相關(guān)配置。⑴依次選擇“我的電腦”∣“屬性”∣“高級(jí)”∣“環(huán)境變量”選項(xiàng),將出現(xiàn)“環(huán)境變量”設(shè)置界面。⑵在“系統(tǒng)變量”框中選擇“Path”,單擊“編輯”按鈕。⑶在“編輯系統(tǒng)變量”對(duì)話框中的“變量值”欄的所有命令后添加bin目錄路徑(如圖)。3.測(cè)試JDK配置完成以后,可以使用如下格式來(lái)測(cè)試配置是否成功:⑴依次選擇“開(kāi)始”∣“程序”∣“附件”∣“命令提示符”,打開(kāi)“命令提示符”對(duì)話框。⑵在“命令提示符”窗口中,輸入javac,如果出現(xiàn)下圖所示的內(nèi)容,則表示配置成功。4.編寫(xiě)、編譯和運(yùn)行Java源程序⑴打開(kāi)記事本由于JDK沒(méi)有提供代碼編輯環(huán)境,所以使用JDK進(jìn)行Java程序開(kāi)發(fā)時(shí),還需要一個(gè)編輯代碼的軟件。Java源代碼可以在任意文本編輯器中編輯,初學(xué)者可選擇Windows自帶的記事本作為Java源代碼的編輯器。⑵編寫(xiě)第1個(gè)Java程序在打開(kāi)的記事本窗口中輸入如下代碼:publicclassHelloWorld{ publicstaticvoidmain(Stringargs[]){ System.out.println("Helloworld!"); }}在編輯代碼時(shí),注意以下幾個(gè)問(wèn)題:源代碼中的字母區(qū)分大小寫(xiě);標(biāo)點(diǎn)符號(hào)均為英文輸入模式下的標(biāo)點(diǎn)符號(hào);代碼行的縮進(jìn)有利于養(yǎng)成良好的編程風(fēng)格。⑶保存源程序如果源代碼中聲明類時(shí)使用了public,則源代碼文件的名稱必須和class后面的單詞相同,也就是源代碼文件名為HelloWorld,這個(gè)名稱區(qū)分大小寫(xiě)。Java語(yǔ)言的源文件,后綴名必須是.java。將源代碼文件保存在E盤(pán)java01文件夾下(如E:\java01\HelloWorld.java)。⑷編譯源文件Java源程序編寫(xiě)后,要使用Java編譯器(javac.exe)進(jìn)行編譯,將Java源程序編譯成可執(zhí)行的程序代碼。編譯時(shí)首先讀入Java源程序,然后進(jìn)行語(yǔ)法檢查,如果出現(xiàn)問(wèn)題就終止編譯。語(yǔ)法檢查通過(guò)后(沒(méi)有任何提示),則生成可執(zhí)行程序代碼文件即字節(jié)碼文件,字節(jié)碼文件名和源文件名相同,擴(kuò)展名為.class(在源代碼所在目錄下生成HelloWorld.class文件),代表編譯成功?!静僮鳌看蜷_(kāi)命令提示符窗口,進(jìn)入E:\java01目錄下,輸入javacHelloWorld.java編譯該文件。⑸解釋執(zhí)行程序使用Java解釋器(java.exe)可將編譯通過(guò)后的字節(jié)碼文件HelloWorld.class解釋為本地計(jì)算機(jī)代碼?!静僮鳌吭诿钐崾痉翱阪I入javaHelloWorld解釋執(zhí)行HelloWorld.class文件。這樣,就可以在命令提示符窗口中看到HelloWorld.java程序的執(zhí)行結(jié)果了,也就是在命令提示符窗口中輸出一行字符:Helloworld!(如圖所示)。三、實(shí)驗(yàn)習(xí)題1.編寫(xiě)一個(gè)Java程序,要求在屏幕上輸出如下文字:“您好,我喜歡學(xué)習(xí)Java語(yǔ)言?!?.在屏幕上輸出以下圖形:*************************************Howareyou?*************************************四、實(shí)驗(yàn)心得第2單元Java語(yǔ)言基礎(chǔ)第2單元Java語(yǔ)言基礎(chǔ)寫(xiě)在前面的話Java語(yǔ)言基礎(chǔ)包括Java語(yǔ)言的基本組成、數(shù)據(jù)類型、運(yùn)算符、表達(dá)式、數(shù)組的定義等,這些內(nèi)容是任何一門(mén)程序設(shè)計(jì)語(yǔ)言都必須包括的,也是編程的基礎(chǔ)。學(xué)好Java語(yǔ)言必須具備扎實(shí)的語(yǔ)言基礎(chǔ),這對(duì)后續(xù)的學(xué)習(xí)是很有必要的。一、實(shí)驗(yàn)?zāi)康?.掌握J(rèn)ava語(yǔ)言的數(shù)據(jù)類型。2.掌握J(rèn)ava語(yǔ)言的運(yùn)算符與表達(dá)式。3.掌握J(rèn)ava語(yǔ)言運(yùn)算符的優(yōu)先級(jí)。4.進(jìn)一步熟悉Java程序的編寫(xiě)、編譯與運(yùn)行過(guò)程。二、實(shí)驗(yàn)內(nèi)容1.Java語(yǔ)言的基本組成⑴Java語(yǔ)言主要由5種元素構(gòu)成:注釋、標(biāo)識(shí)符、關(guān)鍵字、運(yùn)算符和數(shù)據(jù)。⑵在E:\java02文件夾下創(chuàng)建一個(gè)文件,求給定一個(gè)數(shù)的乘方?!驹创a】//求給定一個(gè)數(shù)的乘方publicclassTestJava{ publicstaticvoidmain(Stringargs[]){ intnum=10;//定義整型變量 num=30;//修改變量?jī)?nèi)容 System.out.println("num的內(nèi)容是:"+num);//輸出變量?jī)?nèi)容 System.out.println("num*num="+num*num);//輸出乘方 }/*這是注釋,不會(huì)被執(zhí)行可以有多行*/}⑶編譯并運(yùn)行該程序,結(jié)果如圖所示。2.數(shù)據(jù)類型的定義及處理⑴Java語(yǔ)言的基本數(shù)據(jù)類型包括:整數(shù)、浮點(diǎn)型、字符型、布爾型。⑵在E:\java02文件夾下創(chuàng)建一個(gè)文件,聲明及處理不同數(shù)據(jù)類型的變量?!驹创a】publicclassDateType{ publicstaticvoidmain(Stringargs[]){ byte b=0x55; short s=0x55ff; int i=10; long l=0xffffL; char c='a'; float f=0.23F; double d=0.7E-3; booleanB=true;StringS="這是字符串類數(shù)據(jù)類型"; System.out.println("字節(jié)型變量b="+b); System.out.println("短整型變量s="+s); System.out.println("整型變量i="+i); System.out.println("長(zhǎng)整型變量l="+l); System.out.println("字符型變量c="+c); System.out.println("浮點(diǎn)型變量f="+f); System.out.println("雙精度變量d="+d); System.out.println("布爾型變量B="+B); System.out.println("字符串類對(duì)象S="+S);}}⑶編譯并運(yùn)行該程序,結(jié)果如圖所示。3.不同數(shù)據(jù)類型間的混合運(yùn)算⑴Java語(yǔ)言中的數(shù)據(jù)類型轉(zhuǎn)換有兩種:一種是自動(dòng)類型轉(zhuǎn)換(編譯器自動(dòng)完成類型轉(zhuǎn)換,不需要在程序中編寫(xiě)代碼),另一種是強(qiáng)制類型轉(zhuǎn)換(必須在程序中編寫(xiě)代碼)。整數(shù)、浮點(diǎn)型、字符型數(shù)據(jù)可以混合運(yùn)算。運(yùn)算中,不同類型的數(shù)據(jù)先轉(zhuǎn)換為同一類型,然后運(yùn)算。⑵在E:\java02文件夾下創(chuàng)建一個(gè)文件,進(jìn)行不同數(shù)據(jù)類型的轉(zhuǎn)換?!驹创a】publicclassDateChange{ publicstaticvoidmain(Stringargs[]){ int a=10; char c=1; double b=25.64; byted; d=(byte)(a+b+c); shorts; s=(short)(a+b+c); intj; j=(int)(a+b+c); doubleg; g=a+b+c;System.out.println("d="+d);System.out.println("s="+s); System.out.println("j="+j); System.out.println("g="+g); }}⑶在沒(méi)有編譯運(yùn)行前,請(qǐng)寫(xiě)出上面程序的運(yùn)行結(jié)果。⑷編譯并運(yùn)行該程序,結(jié)果如圖所示。4.運(yùn)算符⑴Java語(yǔ)言具有豐富的運(yùn)算符環(huán)境。運(yùn)算符按功能分為算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符和位運(yùn)算符。⑵在E:\java02文件夾下創(chuàng)建使用關(guān)系運(yùn)算符和邏輯運(yùn)算符的程序文件?!驹创a】publicclassOp{publicstaticvoidmain(Stringargs[]){inta=25,b=20,e=3,f=0;booleand=a<b;System.out.println("a=25,b=20,e=3,f=0");System.out.println("因?yàn)殛P(guān)系表達(dá)式a<b為假,所以其邏輯值為:"+d);if(e!=0&&a/e>5){System.out.println("因?yàn)閑非0且a/e為8大于5,所以輸出a/e="+a/e); }if(f!=0&&a/f>5){System.out.println("a/f="+a/f);}else{System.out.println("因?yàn)閒值為0,所以輸出f="+f);}}}⑶在沒(méi)有編譯運(yùn)行前,請(qǐng)寫(xiě)出上面程序的運(yùn)行結(jié)果。⑷編譯并運(yùn)行該程序,結(jié)果如圖所示。三、實(shí)驗(yàn)習(xí)題1.編寫(xiě)一個(gè)Java程序,求10.0/3.0,-10.0/3.0和0.0/0.0的值。四、實(shí)驗(yàn)心得第3單元Java控制語(yǔ)句寫(xiě)在前面的話Java程序通過(guò)控制語(yǔ)句來(lái)控制程序的流程。Java中的控制語(yǔ)句有分支語(yǔ)句、循環(huán)語(yǔ)句、跳轉(zhuǎn)語(yǔ)句。一、實(shí)驗(yàn)?zāi)康?.學(xué)會(huì)使用if、if...else和switch語(yǔ)句。2.學(xué)會(huì)使用while、do-while和for語(yǔ)句。3.學(xué)會(huì)使用break和continue語(yǔ)句。二、實(shí)驗(yàn)內(nèi)容1.if...else語(yǔ)句應(yīng)用⑴在E:\java03文件夾下創(chuàng)建一個(gè)文件,判斷一個(gè)給定的整數(shù)是奇數(shù)還是偶數(shù)?!驹创a】publicclassIfElse{ publicstaticvoidmain(Stringargs[]){ intx=3; if(x%2==0){ System.out.println(x+"是偶數(shù)"); }else{ System.out.println(x+"是奇數(shù)"); } }}⑵編譯并運(yùn)行該程序,結(jié)果如圖所示。2.switch語(yǔ)句應(yīng)用⑴在E:\java03文件夾下創(chuàng)建一個(gè)文件,根據(jù)顏色數(shù)輸出顏色。【源代碼】publicclassSwitchColor{ publicstaticvoidmain(Stringargs[]){ intcolorNum=1; switch(colorNum){ case0:System.out.println("Colorisred."); case1:System.out.println("Colorispink."); case2:System.out.println("Colorisblue."); default:System.out.println("Coloriswhite."); } }}⑵編譯并運(yùn)行該程序,觀察運(yùn)行的結(jié)果,是否滿足題意。⑶修改上面的程序,在每個(gè)case語(yǔ)句的后面都加上break語(yǔ)句,再觀察運(yùn)行的結(jié)果。⑷思考:break語(yǔ)句的作用。3.while和do-while語(yǔ)句應(yīng)用⑴在E:\java03文件夾下創(chuàng)建一個(gè)文件,求5!?!驹创a】publicclassWhileDemo{ publicstaticvoidmain(Stringargs[]){ inti=1;//循環(huán)控制變量賦初值 intnum=1;//階乘結(jié)果存放的變量 while(i<=5){//用while循環(huán)完成5! num=num*i; i++; } System.out.println("用while循環(huán)完成5!="+num); i=1;//恢復(fù)到初值 num=1; do{num=num*i;//用do..while循環(huán)完成5! i++; }while(i<=5); System.out.println("用do..while循環(huán)完成5!="+num); }}⑵編譯并運(yùn)行該程序,觀察運(yùn)行的結(jié)果,參照下圖。4.for語(yǔ)句應(yīng)用⑴在E:\java03文件夾下創(chuàng)建一個(gè)文件,求5!?!驹创a】publicclassIfDemo{ publicstaticvoidmain(Stringargs[]){ intnum=1;for(inti=1;i<=5;i++){ num=num*i; } System.out.println("用for循環(huán)完成5!="+num); }}⑵編譯并運(yùn)行該程序,觀察運(yùn)行的結(jié)果,參照下圖。⑶思考:三種循環(huán)語(yǔ)句的區(qū)別。5.循環(huán)嵌套⑴在E:\java03文件夾下創(chuàng)建一個(gè)文件,打印三角形?!驹创a】publicclassTriangle{ publicstaticvoidmain(Stringargs[]){ for(inti=1;i<=5;i++){ for(intj=1;j<=i*2-1;j++){ System.out.print("*"); } System.out.println(""); } }}⑵編譯并運(yùn)行該程序,觀察運(yùn)行的結(jié)果,參照下圖。三、實(shí)驗(yàn)習(xí)題⑴打印出所有的“水仙花數(shù)”,所謂“水仙花數(shù)”是指一個(gè)3位數(shù),其各位數(shù)字的立方和等于該數(shù)本身。例如,135=13+53+33。。⑵求1+2+…+100之和,將所求的和顯示出來(lái)。⑶編程:打印九九乘法表。四、實(shí)驗(yàn)心得第4單元數(shù)組與方法一、實(shí)驗(yàn)?zāi)康?.掌握數(shù)組的定義及使用方法。2.掌握數(shù)組的引用傳遞。3.掌握方法及方法的重載。二、實(shí)驗(yàn)內(nèi)容1.一維數(shù)組應(yīng)用⑴在E:\java04文件夾下創(chuàng)建一個(gè)文件,求數(shù)組中元素的最大值和最小值?!驹创a】publicclassArrayMax{ publicstaticvoidmain(Stringargs[]){ intscore[]={10,3,-1,119,-51,100,56,90}; intmax=0; intmin=0; max=min=score[0];for(inti=0;i<score.length;i++){ if(score[i]>max){ max=score[i]; } if(score[i]<min){ min=score[i]; } } System.out.println("MXA="+max); System.out.println("MIN="+min); }}⑵編譯并運(yùn)行該程序,觀察運(yùn)行的結(jié)果,參照下圖。2.二維數(shù)組應(yīng)用⑴在E:\java04文件夾下創(chuàng)建一個(gè)文件,靜態(tài)初始化二維數(shù)組?!驹创a】publicclassArrayDemo2{ publicstaticvoidmain(Stringargs[]){ intscore[][]={{10,3},{-1,119,-51},{100,56,90,49}};for(inti=0;i<score.length;i++){ for(intj=0;j<score[i].length;j++){ System.out.print(score[i][j]+"\t"); } System.out.println(""); } }}⑵編譯并運(yùn)行該程序,觀察運(yùn)行的結(jié)果,參照下圖。3.方法調(diào)用⑴在E:\java04文件夾下創(chuàng)建一個(gè)文件,帶有返回值的方法調(diào)用?!驹创a】publicclassMethodDemo{ publicstaticvoidmain(Stringargs[]){ intone=addOne(29,58);//調(diào)用addOne()方法 floattwo=addTwo(26.35f,-12.84f);//調(diào)用addTwo()方法 System.out.println("addOne的計(jì)算結(jié)果="+one); System.out.println("addTwo的計(jì)算結(jié)果="+two); } publicstaticintaddOne(intx,inty){//定義方法,兩個(gè)整數(shù)加法,返回一個(gè)整型數(shù)據(jù) inttemp=0;//temp為局部變量,只在此方法中有效 temp=x+y; returntemp;//返回計(jì)算結(jié)果 } publicstaticfloataddTwo(floatx,floaty){ floattemp=0; temp=x+y; returntemp; }}⑵編譯并運(yùn)行該程序,觀察運(yùn)行的結(jié)果,參照下圖。4.方法重載⑴在E:\java04文件夾下創(chuàng)建一個(gè)文件,驗(yàn)證方法重載?!驹创a】publicclassMethodDemo2{ publicstaticvoidmain(Stringargs[]){ intone=add(29,58);//調(diào)用addOne()方法 intthree=add(25,58,10);//調(diào)用addOne()方法 floattwo=add(26.35f,-12.84f);//調(diào)用addTwo()方法 System.out.println("add(intx,inty)="+one); System.out.println("add(intx,inty,intz)="+three); System.out.println("add(floatx,floaty)="+two); } publicstaticintadd(intx,inty){//定義方法,兩個(gè)整數(shù)加法,返回一個(gè)整型數(shù)據(jù) inttemp=0;//temp為局部變量,只在此方法中有效 temp=x+y; returntemp;//返回計(jì)算結(jié)果 } publicstaticintadd(intx,inty,intz){//定義方法,兩個(gè)整數(shù)加法,返回一個(gè)整型數(shù)據(jù) inttemp=0;//temp為局部變量,只在此方法中有效 temp=x+y+z; returntemp;//返回計(jì)算結(jié)果 } publicstaticfloatadd(floatx,floaty){ floattemp=0; temp=x+y; returntemp; }}⑵編譯并運(yùn)行該程序,觀察運(yùn)行的結(jié)果,參照下圖。5.數(shù)組應(yīng)用⑴在E:\java04文件夾下創(chuàng)建一個(gè)文件,進(jìn)行數(shù)組排序?!驹创a】publicclassArrayDemo3{ publicstaticvoidmain(Stringargs[]){ intscore[]={25,78,35,84,69,74,12,56}; intage[]={32,52,12,63,42,15,75,23,56}; sort(score);//調(diào)用排序方法 print(score);//調(diào)用輸出方法 System.out.println("\n"); sort(age); print(age); } publicstaticvoidsort(inttemp[]){//數(shù)組排序 for(inti=1;i<temp.length;i++){//冒泡算法 for(intj=0;j<temp.length;j++){ if(temp[i]<temp[j]){ intx=temp[i]; temp[i]=temp[j]; temp[j]=x; } } } } publicstaticvoidprint(intx[]){//數(shù)組輸出 for(inti=0;i<x.length;i++){ System.out.print(x[i]+","); } }}⑵編譯并運(yùn)行該程序,觀察運(yùn)行的結(jié)果,參照下圖。三、實(shí)驗(yàn)習(xí)題1.編寫(xiě)程序求1!+2!+……+10!的和并顯示,要求使用方法完成。2.編寫(xiě)程序求數(shù)組a[]={32,2,122,653,-4,15,85,23,56}中的最大值及最小值。四、實(shí)驗(yàn)心得第5單元類與面向?qū)ο髮?xiě)在前面的話Java是一種完全面向?qū)ο蟮恼Z(yǔ)言,類是Java語(yǔ)言編程的基礎(chǔ)。使用Java語(yǔ)言進(jìn)行程序設(shè)計(jì)的核心就是構(gòu)造類以及編寫(xiě)類中的方法。一、實(shí)驗(yàn)?zāi)康?.掌握類的定義和使用。2.掌握創(chuàng)建對(duì)象和使用對(duì)象的方法。3.了解構(gòu)造函數(shù)的概念和使用。4.掌握類的封裝性和繼承性。5.掌握this和super的區(qū)別及使用。6.理解抽象類的概念及作用。二、實(shí)驗(yàn)內(nèi)容1.類的實(shí)例化⑴在E:\java05文件夾下創(chuàng)建一個(gè)文件,定義一個(gè)Person類,為對(duì)象屬性賦值并輸出內(nèi)容?!驹创a】classPerson{ Stringname;//聲明姓名 intage;//聲明年齡 publicvoidspeak(){//方法 System.out.println("姓名:"+name+"、年齡:"+age); }}publicclassClassDemo01{ publicstaticvoidmain(Stringargs[]){ Personper=null;//創(chuàng)建對(duì)象 per=newPerson(); ="張三";//為對(duì)象屬性賦值 per.age=18; per.speak();//調(diào)用方法 }}⑵編譯并運(yùn)行該程序,觀察運(yùn)行的結(jié)果,參照下圖。2.類的封裝性⑴在E:\java05文件夾下創(chuàng)建一個(gè)文件,將Person類中的屬性封裝,并通過(guò)構(gòu)造方法為屬性賦值?!驹创a】classPerson{ privateStringname;//屬性封裝 privateintage; publicPerson(Stringn,inta){//構(gòu)造方法 setName(n); setAge(a); } publicvoidsetName(Stringn){//設(shè)置姓名 name=n; } publicvoidsetAge(inta){//設(shè)置年齡 age=a; } publicStringgetName(){//取得姓名 returnname; } publicintgetAge(){//取得年齡 returnage; } publicvoidspeak(){ System.out.println("姓名:"+getName()+"、年齡:"+getAge()); }}publicclassConsDemo{ publicstaticvoidmain(Stringargs[]){ Personper=newPerson("張三",30); per.speak(); }}⑵編譯并運(yùn)行該程序,觀察運(yùn)行的結(jié)果,參照下圖。3.類設(shè)計(jì)分析⑴在E:\java05文件夾下創(chuàng)建一個(gè)文件,編寫(xiě)一個(gè)學(xué)生類Student,要求如下:屬性:學(xué)號(hào)、姓名、數(shù)學(xué)、英語(yǔ)、計(jì)算機(jī);方法:計(jì)算三門(mén)課程的總分、平均分、最高分、最低分并輸出?!驹创a】classStudent{ //封裝屬性 privateStringstuno; privateStringname; privatefloatmath; privatefloatenglish; privatefloatcomputer; //賦初值 publicStudent(Strings,Stringn,floatm,floate,floatc){ setStuno(s); setName(n); setMath(m); setEnglish(e); setComputer(c); } //設(shè)置屬性 publicvoidsetStuno(Strings){ stuno=s; } publicvoidsetName(Stringn){ name=n; } publicvoidsetMath(floatm){ math=m; } publicvoidsetEnglish(floate){ english=e; } publicvoidsetComputer(floatc){ computer=c; } //取得屬性 publicStringgetStuno(){ returnstuno; } publicStringgetName(){ returnname; } publicfloatgetMath(){ returnmath; } publicfloatgetEnglish(){ returnenglish; } publicfloatgetComputer(){ returncomputer; } //總分 publicfloatsum(){ returnmath+english+computer; } //平均分 publicfloatavg(){ returnsum()/3; } //最高分 publicfloatmax(){ floatmax=math; max=max>english?max:english; max=max>computer?max:computer; returnmax; } //最低分 publicfloatmin(){ floatmin=math; min=min<english?min:english; min=min<computer?min:computer; returnmin; } //輸出屬性 publicvoidspeak01(){ System.out.println("學(xué)號(hào):"+getStuno()+'\t'+"姓名:"+getName()+'\t'+"數(shù)
學(xué):"+getMath()+'\t'+"英語(yǔ):"+getEnglish()+'\t'+"計(jì)算機(jī):"+getComputer()); } //輸出總分,平均分,最高分,最低分 publicvoidspeak02(){ System.out.println("總分:"+sum()+'\t'+"平均分:"+avg()+'\t'+"最高分:"+max()+'\t'+"最低分:"+min()); }}//編寫(xiě)測(cè)試類,測(cè)試以上代碼publicclassExampleDemo{ publicstaticvoidmain(Stringargs[]){ Studentstu=null; stu=newStudent("0001","張三",85.2f,96.5f,89.0f); stu.speak01(); stu.speak02(); }}⑵編譯并運(yùn)行該程序,觀察運(yùn)行的結(jié)果,參照下圖。4.String類⑴在E:\java05文件夾下創(chuàng)建一個(gè)文件,完成String類內(nèi)容的比較?!驹创a】publicclassStringDemo{ publicstaticvoidmain(Stringargs[]){ Stringstr1="Hello"; Stringstr2=newString("Hello"); System.out.println("str1==str2-->"+(str1==str2)); System.out.println("str1.equals(str2)-->"+str1.equals(str2)); }}⑵編譯并運(yùn)行該程序,觀察運(yùn)行的結(jié)果,參照下圖。5.類的繼承性⑴在E:\java05文件夾下創(chuàng)建一個(gè)文件,定義一個(gè)Person類,一個(gè)Student類,通過(guò)子類擴(kuò)展父類的功能?!驹创a】classPerson{ privateStringname; privateintage; publicvoidsetName(Stringname){ =name; } publicvoidsetAge(intage){ this.age=age; } publicStringgetName(){ returnname; } publicintgetAge(){ returnage; }}classStudentextendsPerson{ privateStringschool; publicvoidsetSchool(Stringschool){ this.school=school; } publicStringgetSchool(){ returnschool; }}publicclassExtendsDemo{ publicstaticvoidmain(Stringargs[]){ Studentstu=newStudent(); stu.setName("張三"); stu.setAge(30); stu.setSchool("清華大學(xué)"); System.out.println("姓名:"+stu.getName()+",年齡:"+stu.getAge
()+",學(xué)校:"+stu.getSchool()); }}⑵編譯并運(yùn)行該程序,觀察運(yùn)行的結(jié)果,參照下圖。6.this和super的區(qū)別⑴在E:\java05文件夾下創(chuàng)建一個(gè)文件,體會(huì)this和super的區(qū)別?!驹创a】classPerson{ publicStringname="張三";}classStudentextendsPerson{ publicStringname="張童"; publicvoidprint(){ System.out.println("父類中屬性:"+); System.out.println("子類中屬性:"+); }}publicclassThisSuperDemo{ publicstaticvoidmain(Stringargs[]){ Studentstu=newStudent(); stu.print(); }}⑵編譯并運(yùn)行該程序,觀察運(yùn)行的結(jié)果,參照下圖。7.抽象類⑴在E:\java05文件夾下創(chuàng)建一個(gè)文件,體會(huì)覆寫(xiě)抽象類中的抽象方法?!驹创a】abstractclassPerson{ privateStringname; //定義name屬性 privateintage; //定義age屬性 publicPerson(Stringname,intage){ =name; this.age=age; } publicvoidsetName(Stringname){ =name; } publicvoidsetAge(intage){ this.age=age; } publicStringgetName(){ return; } publicintgetAge(){ returnthis.age; } publicabstractStringgetInfo(); //抽象方法}classStudentextendsPerson{ privateStringschool; publicStudent(Stringname,intage,Stringschool){ super(name,age); //指定要調(diào)用抽象類中有兩個(gè)參數(shù)的構(gòu)造方法 this.school=school; } publicvoidsetSchool(Stringschool){ this.school=school; } publicStringgetSchool(){ returnthis.school; } publicStringgetInfo(){ return "姓名:"+super.getName()+";年齡:"+super.getAge()+ ";學(xué)校:"+this.getSchool(); }}publicclassAbstractDemo{ publicstaticvoidmain(Stringargs[]){ Studentstu=newStudent("張三",18,"理工大學(xué)"); System.out.println(stu.getInfo()); }}⑵編譯并運(yùn)行該程序,觀察運(yùn)行的結(jié)果,參照下圖。三、實(shí)驗(yàn)習(xí)題1.設(shè)計(jì)一個(gè)Pet類,屬性:物種、名字、年齡、顏色、體重、性格;使用構(gòu)造方法來(lái)初始化類的屬性,屬性要求封裝,方法:輸出Pet類的信息,編寫(xiě)應(yīng)用程序使用Pet類。2.編寫(xiě)一個(gè)程序,要求父類實(shí)現(xiàn)求兩個(gè)數(shù)的平均值,子類實(shí)現(xiàn)求三個(gè)數(shù)的平均值。四、實(shí)驗(yàn)心得五、思考題1.說(shuō)明使用變量之前是不是都要先賦值,為什么?2.說(shuō)明什么是構(gòu)造方法。3.說(shuō)明程序中有多個(gè)類時(shí)如何確定源程序文件的名稱。4.說(shuō)明類的繼承和多態(tài)有什么作用,在使用上應(yīng)該注意什么問(wèn)題。第6單元接口與包寫(xiě)在前面的話Java語(yǔ)言中一個(gè)類最多只能繼承一個(gè)類,但是可以實(shí)現(xiàn)多個(gè)接口。接口是用來(lái)定義多個(gè)類希望實(shí)現(xiàn)的變量和方法,然后在聲明時(shí)使用要實(shí)現(xiàn)的接口,并通過(guò)實(shí)現(xiàn)接口的所有方法,實(shí)現(xiàn)各個(gè)類想要實(shí)現(xiàn)的功能。為避免名稱沖突,Java語(yǔ)言使用包來(lái)劃分類名空間,以便更容易管理。一、實(shí)驗(yàn)?zāi)康?.定義接口。2.實(shí)現(xiàn)接口。3.定義包。4.實(shí)現(xiàn)包。二、實(shí)驗(yàn)內(nèi)容1.接口的定義和實(shí)現(xiàn)⑴在E:\java06文件夾下創(chuàng)建一個(gè)文件。定義兩個(gè)接口A和B,定義一個(gè)X類,并繼承A和B兩個(gè)接口,編寫(xiě)應(yīng)用程序使用X類?!驹创a】interfaceA{ publicstaticfinalStringNAME="張三";//定義全局常量 publicvoidprintA1();//定義抽象方法 publicvoidprintA2(); //定義抽象方法}interfaceB{ publicvoidprintB(); //定義抽象方法}classXimplementsA,B{ publicvoidprintA1(){ System.out.println("HelloWorld!"); } publicvoidprintA2(){ System.out.println("HelloChina!"); } publicvoidprintB(){ System.out.println("Hello"+NAME); }}publicclassInterfaceDemo{ publicstaticvoidmain(Stringargs[]){ Xx=newX(); x.printA1(); x.printA2(); x.printB(); }}⑵編譯并運(yùn)行該程序,觀察運(yùn)行的結(jié)果,參照下圖。2.抽象類和接口⑴在E:\java06文件夾下創(chuàng)建一個(gè)文件。完成子類同時(shí)繼承抽象類和實(shí)現(xiàn)接口。【源代碼】interfaceA{ publicstaticfinalStringNAME="張三";//定義全局常量 publicvoidprintA1();//定義抽象方法 publicvoidprintA2(); //定義抽象方法}abstractclassB{ publicabstractvoidprintB(); }classXextendsBimplementsA{ publicvoidprintA1(){ System.out.println("HelloWorld!"); } publicvoidprintA2(){ System.out.println("HelloChina!"); } publicvoidprintB(){ System.out.println("Hello"+NAME); }}publicclassInterfaceExtendsDemo{ publicstaticvoidmain(Stringargs[]){ Xx=newX(); x.printA1(); x.printA2(); x.printB(); }}⑵編譯并運(yùn)行該程序,觀察運(yùn)行的結(jié)果,參照下圖。3.接口的實(shí)際應(yīng)用—制定標(biāo)準(zhǔn)⑴在E:\java06文件夾下創(chuàng)建一個(gè)文件,制定USB接口?!驹创a】interfaceUSB{ publicabstractvoidstart(); publicabstractvoidstop();}classComputer{ publicstaticvoidplugin(USBusb){ usb.start(); usb.stop(); }}classFlashimplementsUSB{ publicvoidstart(){ System.out.println("U盤(pán)開(kāi)始工作!"); } publicvoidstop(){ System.out.println("U盤(pán)停止工作!"); }}classPrintimplementsUSB{ publicvoidstart(){ System.out.println("打印機(jī)開(kāi)始工作!"); } publicvoidstop(){ System.out.println("打印機(jī)停止工作!"); }}publicclassUsbDemo{ publicstaticvoidmain(Stringargs[]){ USBusb1=null; USBusb2=null; usb1=newFlash(); usb2=newPrint(); Computer.plugin(usb1); Computer.plugin(usb2); }}⑵編譯并運(yùn)行該程序,觀察運(yùn)行的結(jié)果,參照下圖。4.包的定義及應(yīng)用⑴在E:\java06文件夾下創(chuàng)建一個(gè)文件,體會(huì)包的概念及作用?!驹创a】packagely.java;classA{ publicStringtell(){ return"helloworld!!"; }}publicclassPackageDemo{ publicstaticvoidmain(Stringargs[]){ System.out.println(newA().tell()); }}⑵編譯并運(yùn)行該程序,觀察運(yùn)行的結(jié)果,參照下圖。5.包及訪問(wèn)控制權(quán)限的應(yīng)用⑴在E:\java06文件夾下,聲明一個(gè)Base類,放在p1包中?!驹创a】packagep1;publicclassBase{ Stringdefault_v="default"; publicStringpublic_v="public"; protectedStringprotected_v="protected"; privateStringprivate_v="private"; publicstaticvoidmain(Stringargs[]){ Baseb=newBase(); System.out.println("在本類中可以訪問(wèn)的:"); System.out.println(b.default_v); System.out.println(b.public_v); System.out.println(tected_v); System.out.println(b.private_v); }}⑵編譯并運(yùn)行該程序,觀察運(yùn)行的結(jié)果,參照下圖。⑶聲明一個(gè)同Base類處于同一個(gè)包p1中的SamePackage類【源代碼】packagep1;publicclassSamePackage{ publicstaticvoidmain(Stringargs[]){ Baseb=newBase(); System.out.println("在同一個(gè)包中的其他類可以訪問(wèn)到的:"); System.out.println(b.default_v); System.out.println(b.public_v); System.out.println(tected_v); //System.out.println(b.private_v); }}⑷編譯并運(yùn)行該程序,觀察運(yùn)行的結(jié)果,參照下圖。 ⑸驗(yàn)證protected【源代碼】packagep2;importp1.Base;publicclassAnotherPackage{ publicstaticvoidmain(Stringargs[]){ Baseb=newBase(); System.out.println("驗(yàn)證protecte
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 江西省江銅銅箔科技股份有限公司2025年度校園招聘【204人】筆試參考題庫(kù)附帶答案詳解
- 濱州2025年山東濱州鄒平市事業(yè)單位(綜合類)招聘62人筆試歷年參考題庫(kù)附帶答案詳解
- 河南省商丘市商師聯(lián)盟2024-2025學(xué)年高一上學(xué)期期末英語(yǔ)試題(解析版)
- 2025年基金從業(yè)資格考試《證券投資基金基礎(chǔ)知識(shí)》全真模擬卷一
- 2021年5月23日二級(jí)建造師考試《公路工程管理與實(shí)務(wù)》真題及答案
- 以患者為中心的規(guī)范化健康宣教對(duì)高血壓患者治療依從性及血壓水平的影響
- 高考病句修改模擬小練習(xí):主客顛倒(附答案)
- 腦血管病的觀察及護(hù)理
- 自拍館創(chuàng)業(yè)策劃書(shū)
- 2025年會(huì)計(jì)職稱考試《初級(jí)會(huì)計(jì)實(shí)務(wù)》易錯(cuò)難題突破專項(xiàng)復(fù)習(xí)與實(shí)戰(zhàn)
- 2025年貴州貴安新區(qū)產(chǎn)業(yè)發(fā)展控股集團(tuán)有限公司招聘筆試參考題庫(kù)附帶答案詳解
- 煤礦崗位標(biāo)準(zhǔn)化作業(yè)流程
- 第四章邊界層理論基礎(chǔ)合肥工業(yè)大學(xué)傳遞過(guò)程基礎(chǔ)
- E4A使用手冊(cè)(DOC)
- 社會(huì)救助內(nèi)容和工作職責(zé)
- ISO9001_2016年[全套]質(zhì)量管理體系文件
- 學(xué)校工會(huì)組織機(jī)構(gòu)(共3頁(yè))
- 正泰電器低壓電器選型手冊(cè)
- 黃河頌朗誦PPT
- 室內(nèi)電氣施工設(shè)計(jì)說(shuō)明
評(píng)論
0/150
提交評(píng)論