版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
JAVA程序設計實驗報告姓 名霍奮偉學號10 班級1420552成績設備名稱及軟件環(huán)境IDE&1實驗名稱類的繼承與封裝實驗日期2016.4.20一.實驗內容類的繼承與封裝:定義抽象類Shape(形狀)其中有抽象方法用來求某形狀的周長和面積;定義Shape類的子類Circle(圓形)、Triangle(三角形)、Rect(矩形)其中包括該形狀的位置、大小信息并實現(xiàn)求其周長和面積的方法。假設當前有圓心為(30,70)半徑為50的圓,左上角坐標為(20,200),水平寬度為120,垂直高度為80的矩形,以及三個頂點坐標分別為(200,200)、(300,400)、(150,350)的三角形,請在控制臺輸出每個形狀的相關信息,及所有形狀的周長和面積的和。接口的定義與實現(xiàn):通過接口和實現(xiàn)接口的類來完成上一題目。二.重點及難點類、類的數(shù)據(jù)成員和成員方法的定義與實現(xiàn);抽象類與類的繼承;接口與接口的實現(xiàn)public、private、static、final、abstract等修飾符的作用。三?理論分析或算法分析在接口中定義兩個函數(shù),分別實現(xiàn)面積和周長的功能;定義三個類實現(xiàn)其接口,在類中實現(xiàn)面積和周長兩個函數(shù)。在main函數(shù)中測試。[實驗步驟]復習有關Java中類、類的繼承、接口、接口的實現(xiàn)的相關內容;根據(jù)題目要求編寫需要的抽象類和其子類;根據(jù)題目要求編寫相應的main方法完成程序;根據(jù)題目要求編寫需要的接口和實現(xiàn)該接口的類;根據(jù)題目要求編寫相應的main方法完成程序;調試代碼,完善程序。四?實現(xiàn)方法(含實現(xiàn)思路、程序流程圖和源程序列表等)1.抽象類importjava.applet.Applet;importjava.awt.*;importjava.awt.geom.*;abstractclassShapes{publicdoublex,y;publicdoublewidth,height;publicShapes(doublex,doubley,doublewidth,doubleheight){this.x=x;this.y=y;this.width二width;this.height=height;}abstractdoublegetArea();abstractdoublegetPeimeter();}classSquareextendsShapes{publicdoublegetArea(){returnwidth*height;}publicdoublegetPerimeter(){return(2*width+2*height);}publicSquare(doublex,doubley,doublewidth,doubleheight){super(x,y,width,height);}@OverridedoublegetPeimeter(){return0;}}classTriangleextendsShapes{publicdoublec;publicdoublegetArea(){return(0.5*width*height);}publicdoublegetPerimeter(){return(width+height+c);};publicTriangle(doublex,doubley,doublewidth,doubleheight){super(x,y,width,height);c=Math.sqrt(width*width+height*height);}@OverridedoublegetPeimeter(){return0;}}classCricleextendsShapespublicCricle(doublex,doubley,doublewidth,doubleheight){super(x,y,width,height);r=(double)width/2.0;{publicdoubler;publicdoublegetArea(){return(r*r*Math.PI);}publicdoublegetPerimeter(){return(2*Math.PI*r);}publicCricle(doublex,doubley,doublewidth,doubleheight){super(x,y,width,height);r=(double)width/2.0;}@OverridedoublegetPeimeter(){return0;}}publicclasshfwlextendsApplet{SquareBox=newSquare(20,200,120,80);CricleOval二newCricle(30,70,100,100);doubleb=Math.sqrt(Math.pow((150-200),2)+Math.pow((350-200),2));doublec=Math.sqrt(Math.pow((150-300),2)+Math.pow((350-400),2));Triangletri二newTriangle(0,0,b,c);publicvoidpaint(Graphicsg){ //輸出長方形的信息g.drawRect(20,200,120,80);g.drawString("BoxArea:"+Box.getArea(),20,300);g.drawString("BoxPerimeter:"+Box.getPerimeter(),20,320);//輸出圓的信息g.drawOval(30,70,100,100);g.drawString("OvalArea:"+Oval.getArea(),150,100);g.drawString("OvalPerimeter:"+Oval.getPerimeter(),150,120);//輸出三角形的信息Graphics2Dg2=(Graphics2D)g;intxl[]={150,200,300,150};intyl[]={350,200,400,350};GeneralPathpolygon=newGeneralPath(0,xl.length+yl.length);polygon.moveTo(xl[0],yl[0]);for(intindex=l;index〈xl.length;index++){polygon.lineTo(xl[index],y1[index]);}polygon.closePath();g2.draw(polygon);g.drawString("TriangleArea:"+tri.getArea(),280,280);g.drawString("TrianglePerimeter:"+tri.getPerimeter(),290,300);}2.接口importjava.applet.Applet;importjava.awt.*;importjava.awt.geom.*;interfaceShape{abstractdoublegetArea();doublegetPerimeter();}classCirclerimplementsShape{publicdoublex,y;publicdoublewidth,height;publicdoubler;@OverridepublicdoublegetArea(){return(r*r*Math.PI);}@OverridepublicdoublegetPerimeter(){return(2*r*Math.PI);}publicCircler(doublex,doubley,doublewidth,doubleheight){this.x=x;this.y=y;this.width二width;this.height=height;r=(double)width/2.0;}}classSquarerimplementsShape{publicdoublex,y;publicdoublewidth,height;@OverridepublicdoublegetArea(){return(width*height);}@OverridepublicdoublegetPerimeter(){return(2*width+2*height);}publicSquarer(doublex,doubley,doublewidth,doubleheight){this.x=x;this.y=y;this.width二width;this.height=height;}}classTrianglerimplementsShape{publicdoublewidth,height;publicdoublec;?Overridepublicdoublex,y;publicdoublewidth,height;publicdoublec;@0verridepublicdoublegetArea(){return(0.5*width*height);}@0verridepublicdoublegetPerimeter(){return(width+height+c);}publicTriangler(doublex,doubley,doublebase,doubleheight){this.x=x;this.y=y;this.width二base;this.height=height;c=Math.sqrt(width*width+height*height);}}publicclassllllextendsApplet{SquarerBox=newSquarer(20,200,120,80);CirclerOval=newCircler(30,70,100,100);doubleb=Math.sqrt(Math.pow((150-200),2)+Math.pow((350-200),2));doublec=Math.sqrt(Math.pow((150-300),2)+Math.pow((350-400),2));Trianglertri二newTriangler(0,0,b,c);publicvoidpaint(Graphicsg){ //輸出長方形的信息g.drawRect(20,200,120,80);g.drawString("BoxArea:"+Box.getArea(),20,300);g.drawString("BoxPerimeter:"+Box.getPerimeter(),20,320);//輸出圓的信息g.drawOval(3O,7O,lOO,lOO);g.drawString("OvalArea:"+Oval.getArea(),150,100);g.drawString("OvalPerimeter:"+Oval.getPerimeter(),150,120);//輸出三角形的信息Graphics2Dg2=(Graphics2D)g;intxl[]={150,200,300,150};intyl[]={350,200,400,350};GeneralPathpolygon=newGeneralPath(O,xl.length+yl.length);polygon.moveTo(xl[O]
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 城市綠化帶道路維修注漿合同
- 瀝青路面鋪設質量保證合同
- 2025年度采購合同:電子元器件批量采購與技術支持3篇
- 火電廠建設合同
- 二零二五廠房出售買賣合同范本(智能制造產業(yè)集群)3篇
- 體育場館建設建筑平房施工合同
- 航空航天業(yè)財務顧問合同
- 食品項目部研發(fā)員聘用協(xié)議
- WPS編輯的2024年工程承包協(xié)議樣本版B版
- 古建筑修復塔吊信號工勞動合同
- 內分泌系統(tǒng)異常與虛勞病關系
- 智聯(lián)招聘在線測評題
- DB3418T 008-2019 宣紙潤墨性感官評判方法
- 【魔鏡洞察】2024藥食同源保健品滋補品行業(yè)分析報告
- 生豬屠宰獸醫(yī)衛(wèi)生檢驗人員理論考試題及答案
- 2024年駐村第一書記工作總結干貨3篇
- 教室裝修施工計劃
- 診療方案自查整改報告(2篇)
- 滬教版四年級上冊數(shù)學列式計算(附參考答案)
- 醫(yī)院侵害未成年人案件強制報告制度
- 眼的解剖結構與生理功能課件
評論
0/150
提交評論