Java實驗項目二 面向對象編程
《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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 人教部編版教材三年級上冊道德與法治第四單元家是最溫暖的地方教學ppt課件 (全套)
- 蘇教版小學科學三年級下冊《雨下得有多大》課件1
- 花的形態(tài)與結構課件匯總
- 一年級-數學下冊十幾減九人教版課件
- 電影膠片動態(tài)課件
- 高電壓技術課件第六章
- 項目采購管理(6)
- 四川省攀枝花市XX小學一年級數學下冊六100以內的加法和減法二練習十三2課件蘇教版
- 山東省青島市黃島區(qū)海青鎮(zhèn)中心中學七年級歷史下冊 15 明朝君權的加強課件 新人教版
- 把握人物的性格特征
- 剪小紙人PPT課件
- 八年級物理探究凸透鏡成像規(guī)律8
- 1[1]22配方法2
- 近代機械行業(yè)唯物主義管理分析自然觀
- 全國科技創(chuàng)新大賽“科學幻想畫”獲獎作品ppt課件