版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
實(shí)驗(yàn)一類(lèi)與對(duì)象實(shí)驗(yàn)課程名:Java程序設(shè)計(jì)專(zhuān)業(yè)班級(jí): 學(xué)號(hào): 姓名: 實(shí)驗(yàn)時(shí)間:9.16-9.23 實(shí)驗(yàn)地點(diǎn):K4—307 指導(dǎo)教師:伍紅華一、 實(shí)驗(yàn)?zāi)康暮鸵笫褂妙?lèi)來(lái)封裝對(duì)象的屬性和功能;掌握類(lèi)變量與實(shí)例變量,以及類(lèi)方法與實(shí)例方法的區(qū)別;掌握使用package和import語(yǔ)句;鞏固以下概念:子類(lèi)的繼承性,子類(lèi)對(duì)象的創(chuàng)建過(guò)程,成員變量的繼承與隱藏,方法的繼承與重寫(xiě)。二、 實(shí)驗(yàn)內(nèi)容1三角形、梯形和圓形的類(lèi)封裝編寫(xiě)一個(gè)Java應(yīng)用程序,該程序中有3個(gè)類(lèi):Trangle、Leder和Circle,分別用來(lái)刻畫(huà)“三角形”、“梯形”和“圓形”。具體要求如下:Trangle類(lèi)具有類(lèi)型為double的三個(gè)邊,以及周長(zhǎng)、面積屬性,Trangle類(lèi)具有返回周長(zhǎng)、面積以及修改三個(gè)邊的功能。另外,Trangle類(lèi)還具有一個(gè)boolean型的屬性,該屬性用來(lái)判斷三個(gè)屬能否構(gòu)成一個(gè)三角形。Lader類(lèi)具有類(lèi)型double的上底、下底、高、面積屬性,具有返回面積的功能。Circle類(lèi)具有類(lèi)型為double的半徑、周長(zhǎng)和面積屬性,具有返回周長(zhǎng)、面積的功能。AreaAndLength.javaclassTrangle{doublesideA,sideB,sideC,area,length;booleanboo;publicTrangle(doublea,doubleb,doublec){【代碼1】//參數(shù)a,b,c分別賦值給sideA,sideB,sideCif(【代碼2】)//a,b,c構(gòu)成三角形的條件表達(dá)式{【代碼3】//給boo賦值。}else{【代碼4】//給boo賦值。}}doublegetLength(){【代碼5】//方法體,要求計(jì)算出length的值并返回publicdoublegetArea(){if(boo){doublep=(sideA+sideB+sideC)/2.0;area二Math.sqrt(p*(p—sideA)*(p—sideB)*(p—sideC))returnarea;}else{System.out.println("不是一個(gè)三角形,不能計(jì)算面積");return0;}}publicvoidsetABC(doublea,doubleb,doublec){【代碼6】//參數(shù)a,b,c分別賦值給sideA,sideB,sideCif(【代碼7】)//a,b,c構(gòu)成三角形的條件表達(dá)式{【代碼8】//給boo賦值。}else{【代碼9】//給boo賦值。}}}classLader{doubleabove,bottom,height,area;Lader(doublea,doubleb,doubleh){【代碼10】//方法體,將參數(shù)a,b,c分別賦值給above,bottom,height}doublegetArea(){【代碼11】//方法體,,要求計(jì)算出area返回}}classCircledoubleradius,area;Circle(doubler)【代碼12】//方法體doublegetArea(){【代碼13】//方法體,要求計(jì)算出area返回}doublegetLength(){【代碼14】//getArea方法體的代碼,要求計(jì)算出length返回}voidsetRadius(doublenewRadius){radius二newRadius;}doublegetRadius(){returnradius;}}publicclassAreaAndLength{publicstaticvoidmain(Stringargs[]){doublelength,area;Circlecircle二null;Trangletrangle;Laderlader;【代碼15】【代碼16】【代碼17】【代碼18】//創(chuàng)建對(duì)象circle//創(chuàng)建對(duì)象trangle。//創(chuàng)建對(duì)象lader//circle調(diào)用方法返回周長(zhǎng)并賦值給lengthSystem.out.println("圓的周長(zhǎng):"+length);【代碼19】//circle調(diào)用方法返回面積并賦值給areaSystem.out.println("圓的面積:"+area);【代碼20】//trangle調(diào)用方法返回周長(zhǎng)并賦值給lengthSystem.out.println("三角形的周長(zhǎng):"+length);【代碼21】//trangle調(diào)用方法返回面積并賦值給areaSystem.out.println("三角形的面積:"+area);【代碼22】//lader調(diào)用方法返回面積并賦值給areaSystem.out.println("梯形的面積:"+area);【代碼23】//trangle調(diào)用方法設(shè)置三個(gè)邊,要求將三個(gè)邊修改為12,34,1?!敬a24】//trangle調(diào)用方法返回面積并賦值給areaSystem.out.println("三角形的面積:"+area);【代碼25】//trangle調(diào)用方法返回周長(zhǎng)并賦值給lengthSystem.out.println("三角形的周長(zhǎng):"+length);}解答:源代碼://AreaAndLength.javaclassTrangle{doublesideA,sideB,sideC,area,length;booleanboo;publicTrangle(doublea,doubleb,doublec){sideA=a;sideB=b;sideC=c;// 【代碼1】//參數(shù)a,b,c分別賦值給sideA,sideB,sideCif((a+b>c)&&(a+c>b)&&(b+c>a))//代碼2a,b,c構(gòu)成三角形的條件表達(dá)式{boo=true;//代碼3給boo賦值。}else{boo=false;//代碼4給boo賦值。}}doublegetLength(){if(boo){length=sideA+sideB+sideC;returnlength;//代碼5方法體,要求計(jì)算出length的值并返回}else{System.out.println(”不是一個(gè)三角形,不能計(jì)算周長(zhǎng)”);return0;}}publicdoublegetArea(){if(boo){doublep=(sideA+sideB+sideC)/2.0;area=Math.sqrt(p*(p-sideA)*(p-sideB)*(p-sideC));returnarea;}else{Systemout.printin(”不是一個(gè)三角形,不能計(jì)算面積”);return0;}}publicvoidsetABC(doublea,doubleb,doublec){sideA=a;sideB=b;sideC=c;//代碼6參數(shù)a,b,c分別賦值給sideA,sideB,sideCif((a+b>c)&&(a+c>b)&&(b+c>a))//代碼6a,b,c構(gòu)成三角形的條件表達(dá)式{boo=true;//代碼7給boo賦值。}else{boo=false;//代碼8給boo賦值。}}}classLader{doubleabove,bottom,height,area;Lader(doublea,doubleb,doubleh){above=a;bottom=b;height=h;//代碼9方法體,將參數(shù)a,b,c分別賦值給above,bottom,height}doublegetArea(){area=(above+bottom)*height/2;returnarea;//代碼10方法體,,要求計(jì)算出area返回}}classCircle{doubleradius,area;Circle(doubler){radius=r;//代碼12方法體}doublegetArea(){area=Math.PT*radius*radius;returnarea;//代碼13方法體,要求計(jì)算出area返回}doublegetLength(){return(2*Math.PT*radius);//代碼14getArea方法體的代碼,要求計(jì)算出length返回}voidsetRadius(doublenewRadius){radius=newRadius;}doublegetRadius(){returnradius;}}publicclassAreaAndLength{publicstaticvoidmain(Stringargs[]){doublelength,area;Circlecirclenull;Trangletrangle;Laderlader;circle=newCircle(2);//代碼15創(chuàng)建對(duì)象circletrangle=newTrangle(6,8,10);//代碼16創(chuàng)建對(duì)象trangle。lader=newLader(3,5,6);//代碼17創(chuàng)建對(duì)象laderlength=circle.getLength();//代碼18circle調(diào)用方法返回周長(zhǎng)并賦值給lengthSystemout.println("圓的周長(zhǎng):"+length);area=circle.getArea();//代碼19circle調(diào)用方法返回面積并賦值給areaSystemout.println("圓的面積:"+area);length=trangle.getLength();//代碼20trangle調(diào)用方法返回周長(zhǎng)并賦值給lengthSystemout.println("三角形的周長(zhǎng):"+length);area=trangle.getArea();//代碼21trangle調(diào)用方法返回面積并賦值給areaSystemout.println("三角形的面積:"+area);area=lader.getArea();//代碼22lader調(diào)用方法返回面積并賦值給areaSystemout.println("梯形的面積:"+area);trangle.setABC(12,34,1);//代碼23trangle調(diào)用方法設(shè)置三個(gè)邊,要求將三個(gè)邊修改為12,34,1。area=trangle.getArea()//【代碼24】trangle調(diào)用方法返回面積并賦值給areaSystemout.println("三角形的面積:"+area);
length=trangle.getLength()//【代碼25】trangle調(diào)用方法返回周長(zhǎng)并賦值給lengthSystemout.println("三角形的周長(zhǎng):"+length);}}運(yùn)行結(jié)果:(alt+printscreen),Problems@Javadoc冏,Declaration旦ConsoFe涼<teriTiinated>AreaAndlL巳ngth[JavaApplication]E:\Progi□豹月悵:12.56637061435917212.566370614359172三悄蛋的再悵:2斗.0三曲廉拊面寒:24.0棣孚対司航:2斗.0不是f三怕矗』不能計(jì)聲可稅三曲廉拊面寒:?左不是一4■三怕?!徊荒苤銉组L(zhǎng)三怕?tīng)?zhēng)的月悵冷花運(yùn)行結(jié)果分析:實(shí)驗(yàn)后的練習(xí):程序中僅僅省略【代碼15】,編譯能通過(guò)嗎?答:不能程序中僅僅省略【代碼16】,編譯能通過(guò)嗎?答:不能程序中僅僅省略【代碼15】,運(yùn)行時(shí)出現(xiàn)怎樣的異常提示?払Problems@Javadoc[^,Declaration貝ConsoFe蘆■^terminated>Ar&aALength[JavaApplication]E:\ProgramFilesXJava1答:Exceptioninthread''irain"~j日w日,J■日門(mén)E.RullPnin~terE:<(z亡lotionatfireaAndLen^thJirain(Ar亡日/VidLength,~j曰:i答:給Trangle類(lèi)增加3個(gè)方法,分別用來(lái)返回3個(gè)邊:sideA、sideB和sideC。答:讓AreaAndLength類(lèi)中的circle對(duì)象調(diào)用方法修改半徑,然后輸出修改后的半徑以及修改半徑后的圓的面積和周長(zhǎng)。答:2.實(shí)例成員與類(lèi)成員:按程序模板的要求編寫(xiě)源文件,要特別注意程序的輸出結(jié)果,并能正確解釋輸出的結(jié)果。Example.javaclassA{【代碼1】 〃聲明一個(gè)float型實(shí)例變量a【代碼2】 〃聲明一個(gè)float型類(lèi)變量b,即static變量bvoidsetA(floata){【代碼3】 〃將參數(shù)a的值賦值給成員變量a}voidsetB(floatb){【代碼4】 〃將參數(shù)b的值賦值給成員變量b}floatgetA(){returna;}floatgetB(){returnb;}voidinputA(){System.out.println(a);}staticvoidinputB(){System.out.println(b);}}publicclassExample{publicstaticvoidmain(Stringargs[]){【代碼5】 〃通過(guò)類(lèi)名操作類(lèi)變量b,并賦值100【代碼6】 〃通過(guò)類(lèi)名調(diào)用方法inputB()Acat=newA();Adog=newA();【代碼7】 //cat象調(diào)用方法setA(inta)將cat的成員a的值設(shè)置為200【代碼8】//cat調(diào)用方法setB(intb)將cat的成員b的值設(shè)置為400【代碼9】 //dog象調(diào)用方法setA(inta)將dog的成員a的值設(shè)置為150【代碼10】 //dog調(diào)用方法setB(intb)將dog的成員b的值設(shè)置為300【代碼11】 //cat調(diào)用inputA()?!敬a12】 //cat調(diào)用inputB()?!敬a13】 //dog調(diào)用inputA()o【代碼14】 //dog調(diào)用inputB()o}}解答:源代碼:運(yùn)行結(jié)果:(alt+printscreen)運(yùn)行結(jié)果分析:運(yùn)行結(jié)果分析:(4)實(shí)驗(yàn)后的練習(xí):a)將inputA()方法中的System.out.println(a);改寫(xiě)為System.out.println(a+b);編譯是否出錯(cuò)?為什么?b)將inputB()方法中的System.out.println(b);改寫(xiě)為System.out.println(a+b);編譯是否報(bào)錯(cuò)?為什么?答:3.使用package語(yǔ)句與import語(yǔ)句:創(chuàng)建一個(gè)java包,名為"chan”;定義一個(gè)學(xué)生類(lèi)studentl,分別定義num,name,sex三個(gè)屬性,訪問(wèn)修飾符分別是private、無(wú)修飾符和public修飾符。在主類(lèi)student中創(chuàng)建學(xué)生類(lèi)的對(duì)象,并且分別設(shè)置學(xué)號(hào),姓名和性別的初始值,在主類(lèi)中調(diào)用對(duì)象。用import語(yǔ)句導(dǎo)入學(xué)生包fxj_stu,分別定義num,name,sex三個(gè)屬性,訪問(wèn)修飾符分別是private、無(wú)修飾符和public修飾符,然后在主類(lèi)中創(chuàng)建對(duì)象,修改其屬性值,看能否成功,如果不能,改變其訪問(wèn)修飾符,然后再觀察結(jié)果。student.javapackagechan;importfxj.fxj_stu;classstudentl{publicintnum;Stringname;publicStringsex;}publicclassstudent{publicstaticvoidmain(String[]args){student1new_student=newstudent1();new_student.num=14;new_="chan";new_student.sex="男";fxj_stuxiaming=newfxj_stu();xiaming.num=19;="夏明";xiaming.sex="男";
System.out.println(”輸出我的基本信息:");System.out.println(”號(hào)碼:"+new_student.num);System.out.println(”姓名:"+new_);System.out.println(”性另U:"+new_student.sex);System.out.printl
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 支付勞務(wù)工資的供銷(xiāo)合同
- 二零二五年度解除房屋租賃合同解除通知協(xié)議
- 二零二五年度生態(tài)旅游基地租用院子合同
- 2025年度混凝土攪拌車(chē)租賃與施工材料運(yùn)輸合同
- 2025年度航空貨運(yùn)物品安全保管與運(yùn)輸服務(wù)合同
- 二零二五年度新材料研發(fā)團(tuán)隊(duì)勞動(dòng)合同范本
- 二零二五年度國(guó)際教育合作項(xiàng)目合同協(xié)議書(shū)
- 二零二五年度帶屋頂花園簡(jiǎn)易版房屋租賃合同
- 2025年度清雪承包合同-城市廣場(chǎng)冬季積雪清除與景觀維護(hù)
- 2025年度商業(yè)連鎖店鋪裝修工程承包給項(xiàng)目經(jīng)理合同
- (二模)遵義市2025屆高三年級(jí)第二次適應(yīng)性考試試卷 地理試卷(含答案)
- 二零二五隱名股東合作協(xié)議書(shū)及公司股權(quán)代持及回購(gòu)協(xié)議
- 2025年計(jì)算機(jī)二級(jí)WPS考試題目
- 高管績(jī)效考核全案
- 2024年上海市中考英語(yǔ)試題和答案
- 對(duì)合同條款有異議函
- 中醫(yī)館工作細(xì)則
- 尋夢(mèng)緣古法駐顏培訓(xùn)課件
- 建設(shè)用地報(bào)批服務(wù)投標(biāo)方案(技術(shù)方案)
- 2023年11月英語(yǔ)二級(jí)筆譯真題及答案(筆譯實(shí)務(wù))
- 元明時(shí)期左江上思州黃姓土司問(wèn)題研究
評(píng)論
0/150
提交評(píng)論