Java實驗項目二 面向對象編程

上傳人:痛*** 文檔編號:134763397 上傳時間:2022-08-13 格式:DOC 頁數:16 大?。?19KB
收藏 版權申訴 舉報 下載
Java實驗項目二 面向對象編程_第1頁
第1頁 / 共16頁
Java實驗項目二 面向對象編程_第2頁
第2頁 / 共16頁
Java實驗項目二 面向對象編程_第3頁
第3頁 / 共16頁

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《Java實驗項目二 面向對象編程》由會員分享,可在線閱讀,更多相關《Java實驗項目二 面向對象編程(16頁珍藏版)》請在裝配圖網上搜索。

1、Java實驗項目二 面向對象編程 第1部分 類與對象 [實驗目的] 1、 熟悉Java面向對象程序設計的基本思想。 2、 掌握類與對象的定義及使用方法。 3、 掌握package語句與import語句的用法。 [實驗要求] 1、 復習理論教學中所學的內容。 2、 認真進行實驗預習,查閱參考書,書寫源程序,書寫實驗預習報告。 3、 認真總結實驗并書寫實驗報告。 [實驗課時] 2學時 [實驗教學方式] 學生上機實驗,教師隨堂指導。 [實驗內容] 1、三角形、梯形和圓形的類封裝:分別定義三角形、梯形和圓形類,要求每個類中包含構造方法、求周長及面積的方法。最后在主方法中為三

2、角形、梯形和圓形類創(chuàng)建對象并打印輸出各種圖形的周長及面積。該程序的模板代碼如下:請將其補充完整并調試運行。 AreaAndLength.java class Trangle { double sideA,sideB,sideC,area,length; boolean boo; public Trangle(double a,double b,double c) { 【代碼1】 //參數a,b,c分別賦值給sideA,sideB,sideC if(【代碼2】) //a,b,c構成三角形的條件表達式 {

3、 【代碼3】 //給boo賦值。 } else { 【代碼4】 //給boo賦值。 } } double getLength() { 【代碼5】 //方法體,要求計算出length的值并返回 } public double getArea() { if(boo) { double p=(sideA+sideB+sideC)/2.0; area=Math.s

4、qrt(p*(p-sideA)*(p-sideB)*(p-sideC)) ; return area; } else { System.out.println("不是一個三角形,不能計算面積"); return 0; } } public void setABC(double a,double b,double c) { 【代碼6】 //參數a,b,c分別賦值給sideA,sideB,sideC if(【代碼7

5、】) //a,b,c構成三角形的條件表達式 { 【代碼8】 //給boo賦值。 } else { 【代碼9】 //給boo賦值。 } } } class Lader { double above,bottom,height,area; Lader(double a,double b,double h) { 【代碼10】 //方法體,將參數a,b,c分別賦值給above,bottom,height } do

6、uble getArea() { 【代碼11】 //方法體,,要求計算出area返回 } } class Circle { double radius,area; Circle(double r) { 【代碼12】 //方法體 } double getArea() { 【代碼13】 //方法體,要求計算出area返回 } double getLength() { 【代碼14】 //getArea

7、方法體的代碼,要求計算出length返回 } void setRadius(double newRadius) { radius=newRadius; } double getRadius() { return radius; } } public class AreaAndLength { public static void main(String args[]) { double length,area; Cir

8、cle circle=null; Trangle trangle; Lader lader; 【代碼15】 //創(chuàng)建對象circle 【代碼16】 //創(chuàng)建對象trangle。 【代碼17】 //創(chuàng)建對象lader 【代碼18】 // circle調用方法返回周長并賦值給length System.out.println("圓的周長:"+length); 【代碼19】 // circle調用方法返回面積并賦值給area System.out.pr

9、intln("圓的面積:"+area); 【代碼20】 // trangle調用方法返回周長并賦值給length System.out.println("三角形的周長:"+length); 【代碼21】 // trangle調用方法返回面積并賦值給area System.out.println("三角形的面積:"+area); 【代碼22】 // lader調用方法返回面積并賦值給area System.out.println("梯形的面積:"+area); 【代碼23

10、】 // trangle調用方法設置三個邊,要求將三個邊修改為12,34,1。 【代碼24】 // trangle調用方法返回面積并賦值給area System.out.println("三角形的面積:"+area); 【代碼25】 // trangle調用方法返回周長并賦值給length System.out.println("三角形的周長:"+length); } } 2、學習實例成員與類成員的區(qū)別:按照下面模板代碼中的注釋信息將該程序補充完整并調試運行。 Example.java class A {

11、 【代碼1】 //聲明一個float型實例變量a 【代碼2】 //聲明一個float型類變量b,即static變量b void setA(float a) { 【代碼3】 //將參數a的值賦值給成員變量a } void setB(float b) { 【代碼4】 //將參數b的值賦值給成員變量b } float getA() { return a; }

12、 float getB() { return b; } void inputA() { System.out.println(a); } static void inputB() { System.out.println(b); } } public class Example { public static void main(String args[]) { 【代碼5】 //通過類名

13、操作類變量b,并賦值100 【代碼6】 //通過類名調用方法inputB() A cat=new A(); A dog=new A(); 【代碼7】 //cat象調用方法setA(int a)將cat的成員a的值設置為200 【代碼8】 //cat調用方法setB(int b)將cat的成員b的值設置為400 【代碼9】 //dog象調用方法setA(int a)將dog的成員a的值設置為150 【代碼10】 //dog調用方法setB(in

14、t b)將dog的成員b的值設置為300 【代碼11】 //cat調用inputA()。 【代碼12】 //cat調用inputB()。 【代碼13】 //dog調用inputA()。 【代碼14】 //dog調用inputB()。 } } 3、使用package語句與import語句:上機調試下面程序,學會package與import語句的用法。 SquareEquation.java package tom.jiafei; public class SquareEquat

15、ion { double a,b,c; double root1,root2; boolean boo; public SquareEquation(double a,double b,double c) { this.a=a; this.b=b; this.c=c; if(a!=0) { boo=true; } else { boo=false;

16、 } } public void getRoots() { if(boo) { System.out.println("是一元2次方程"); double disk=b*b-4*a*c; if(disk>=0) { root1=(-b+Math.sqrt(disk))/(2*a); root2=(-b-Math.sqrt(disk))/(2

17、*a); System.out.printf("方程的根:%f,%f\n",root1,root2); } else { System.out.printf("方程沒有實根\n"); } } else { System.out.println("不是一元2次方程"); } } publ

18、ic void setCoefficient(double a,double b,double c) { this.a=a; this.b=b; this.c=c; if(a!=0) { boo=true; } else { boo=false; } } } SunRise.java import tom.jiafei.*; class SunRise {

19、 public static void main(String args[ ]) { SquareEquation equation=new SquareEquation(4,5,1); equation.getRoots(); equation.setCoefficient(-3,4,5); equation.getRoots(); } } [實驗參考代碼] 1、【代碼1】: sideA=a; sideB=b; sideC=c; 【代碼2】: a+b>c&&a+c>

20、b&&c+b>a 【代碼3】: boo=true; 【代碼4】: boo=false; 【代碼5】: if(boo) { length=sideA+sideB+sideC; return length; } else { System.out.println("不是一個三角形,不能計算周長"); return 0; } 【代碼6】:

21、 sideA=a;sideB=b;sideC=c; 【代碼7】: a+b>c&&a+c>b&&c+b>a 【代碼8】: boo=true; 【代碼9】: boo=false; 【代碼10】: above=a; bottom=b; height=h; 【代碼11】: area=(above+bottom)/2*height; return area; 【代碼12】: radius=r; 【代碼13】: return 3.14*radius*radius; 【代碼14】: return 3.14*2*radi

22、us; 【代碼15】: circle=new Circle(10); 【代碼16】: trangle=new Trangle(3,4,5); 【代碼17】: lader=new Lader(3,4,10); 【代碼18】: length=circle.getLength(); 【代碼19】: area=circle.getArea(); 【代碼20】: length=trangle.getLength(); 【代碼21】: area=trangle.getArea(); 【代碼22】: area=lader.getArea(); 【代碼23】: trangle.setABC(

23、12,34,1); 【代碼24】: area=trangle.getArea(); 【代碼25】: length=trangle.getLength(); 2、【代碼1】: float a; 【代碼2】: static float b; 【代碼3】: this.a=a; 【代碼4】: this.b=b; 【代碼5】: A.b=100; 【代碼6】: A.inputB(); 【代碼7】: cat.setA(200); 【代碼8】: cat.setB(400); 【代碼9】: dog.setA(150); 【

24、代碼10】:dog.setB(300); 【代碼11】:cat.inputA(); 【代碼12】:cat.inputB(); 【代碼13】:dog.inputA(); 【代碼14】:dog.inputB(); 第2部分 繼承與接口 [實驗目的] 1、掌握java 繼承中父類及其子類的定義方法。 2、掌握子類重寫父類同名方法的方法。 3、掌握用法。 [實驗要求] 1、 復習理論教學中所學的內容。 2、 認真進行實驗預習,查

25、閱參考書,書寫源程序,書寫實驗預習報告。 3、 認真總結實驗并書寫實驗報告。 [實驗課時] 2學時 [實驗教學方式] 學生上機實驗,教師隨堂指導。 [實驗內容] 1、定義父類People,分別定義People類的子類ChinaPeople,AmericanPeople和BeijingPeople并分別重寫父類中的各個方法。最后在主方法中分別創(chuàng)建各子類的對象并調用各自的方法打印輸出信息。該程序的模板代碼如下:請將其補充完整并調試運行。 class People { protected double weight,height; public void speakHe

26、llo() { System.out.println("yayawawa"); } public void averageHeight() { height=173; System.out.println("average height:"+height); } public void averageWeight() { weight=70; System.out.println("average weight:"+weight); } } class

27、ChinaPeople extends People { 【代碼1】 //重寫public void speakHello()方法,要求輸出類似“你好,吃了嗎”這樣的 //漢語信息 【代碼2】 //重寫public void averageHeight()方法,要求輸出類似 //“中國人的平均身高:168.78厘米”這樣的漢語信息 【代碼3】 //重寫public void averageWeight()方法, //要求輸出類似“中國人的平均體重:65公斤”這樣的漢語信息 public void chinaG

28、ongfu() { 【代碼4】//輸出中國武術的信息,例如:"坐如鐘,站如松,睡如弓"等 } } class AmericanPeople extends People { 【代碼5】 //重寫public void speakHello()方法,要求輸出類似 //“How do you do”這樣的英語信息。 【代碼6】 //重寫public void averageHeight()方法 【代碼7】 //重寫public void averageWeight()方法 public void americanBox

29、ing() { 【代碼8】//輸出拳擊的信息,例如,“直拳”、“鉤拳”等 } } class BeijingPeople extends ChinaPeople { 【代碼9】 //重寫public void speakHello()方法,要求輸出類似“您好”這樣的漢語信息 【代碼10】 //重寫public void averageHeight()方法 【代碼11】 //重寫public void averageWeight()方法 public void beijingOpera() { 【

30、代碼12】//輸出京劇的信息 } } public class Example { public static void main(String args[]) { ChinaPeople chinaPeople=new ChinaPeople(); AmericanPeople americanPeople=new AmericanPeople(); BeijingPeople beijingPeople=new BeijingPeople(); chinaPeople.speakHello();

31、 americanPeople.speakHello(); beijingPeople.speakHello(); chinaPeople.averageHeight(); americanPeople.averageHeight(); beijingPeople.averageHeight(); chinaPeople.averageWeight(); americanPeople.averageWeight(); beijingPeople.averageWeight(); ch

32、inaPeople.chinaGongfu(); americanPeople.americanBoxing(); beijingPeople.beijingOpera() ; beijingPeople.chinaGongfu(); } } 2、讀懂下面模板代碼,按要求補充程序并調試運行。掌握抽象類的定義及其實現方法,學習上轉型對象的運用方法。 abstract class Employee { public abstract double earnings(); } class YearWorker extends E

33、mployee { 【代碼1】 //重寫earnings()方法 } class MonthWorker extends Employee { 【代碼2】 //重寫earnings()方法。 } class WeekWorker extends Employee { 【代碼3】 //重寫earnings()方法。 } class Company { Employee[] employee; double salaries=0; Company(Employee[] employee) { this.emplo

34、yee=employee; } public double salariesPay() { salaries=0; 【代碼4】 //計算salaries。 return salaries; } } public class HardWork { public static void main(String args[]) { Employee[] employee=new Employee[20]; for(int i=0;i

35、) { if(i%3==0) employee[i]=new WeekWorker(); else if(i%3==1) employee[i]=new MonthWorker(); else if(i%3==2) employee[i]=new YearWorker(); } Company company=new Company(employee); System.out.pr

36、intln("公司年工資總額:"+company.salariesPay()); } } 3、讀懂下面模板代碼,按要求補充程序并調試運行。掌握接口的定義及其實現方法,學習接口回調的運用方法。 interface ComputerWeight { public double computeWeight(); } class Television implements ComputerWeight { 【代碼1】 //實現computeWeight()方法。 } class Computer implements ComputerWeight { 【代碼

37、2】 //實現computeWeight()方法。 } class WashMachine implements ComputerWeight { 【代碼3】 //實現computeWeight()方法。 } class Car { ComputerWeight[] goods; double totalWeights=0; Car(ComputerWeight[] goods) { this.goods=goods; } public double getTotalWeights() { tota

38、lWeights=0; 【代碼4】 //計算totalWeights return totalWeights; } } public class Road { public static void main(String args[]) { ComputerWeight[] goodsOne=new ComputerWeight[50], goodsTwo=new ComputerWeight[22] ; for(int i=0;i

39、+) { if(i%3==0) goodsOne[i]=new Television(); else if(i%3==1) goodsOne[i]=new Computer(); else if(i%3==2) goodsOne[i]=new WashMachine(); } for(int i=0;i

40、 goodsTwo[i]=new Television(); else if(i%3==1) goodsTwo[i]=new Computer(); else if(i%3==2) goodsTwo[i]=new WashMachine(); } Car 大貨車=new Car(goodsOne); System.out.println("大貨車裝載的貨物重量:"+大貨車.getTotalWeights()); Car 小貨車=ne

41、w Car(goodsTwo); System.out.println("小貨車裝載的貨物重量:"+小貨車.getTotalWeights()); } } [參考答案] 1.答案: 【代碼1】: public void speakHello() { System.out.println("你好,吃飯了嗎?"); } 【代碼2】: public void averageHeight() { height=173; System.out.pr

42、intln("中國人的平均身高:"+height+"厘米"); } 【代碼3】: public void averageWeight() { weight=67.34; System.out.println("中國人的平均體重:"+weight+"公斤"); } 【代碼4】: System.out.println("坐如鐘,站如松,睡如弓"); 【代碼5】: public void speakHello() {

43、 System.out.println("How do You do"); } 【代碼6】: public void averageHeight() { height=188; System.out.println("Amerian Average height:"+height+" cm"); } 【代碼7】: public void averageWeight() { weight=80.23; System.out.println("Amerian Average

44、 weight:"+weight+" kg"); } 【代碼8】: System.out.println("直拳、鉤拳"); 【代碼9】: public void speakHello() { System.out.println("您好"); } 【代碼10】: public void averageHeight() { height=16; System.out.println("北京人的平均身高:"+height+"厘米"); } 【代

45、碼11】: public void averageWeight() { weight=6; System.out.println("北京人的平均體重:"+weight+"公斤"); } 【代碼12】: System.out.println("京劇術語"); 2.答案: 【代碼1】: public double earnings() { return 50000.456; } 【代碼2】: public double earnings() { return 1

46、2*2300; } 【代碼3】: public double earnings() { return 52*500; } 【代碼4】: for(int i=0;i

47、ouble computeWeight() { return 65.5; } 【代碼3】: public double computeWeight() { return 145; } 【代碼4】: for(int k=0;k

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

相關資源

更多
正為您匹配相似的精品文檔
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網版權所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對上載內容本身不做任何修改或編輯。若文檔所含內容侵犯了您的版權或隱私,請立即通知裝配圖網,我們立即給予刪除!