Java實驗項目二 面向?qū)ο缶幊?/h3>
Java實驗項目二 面向?qū)ο缶幊痰?部分 類與對象實驗?zāi)康?、 熟悉Java面向?qū)ο蟪绦蛟O(shè)計的基本思想。2、 掌握類與對象的定義及使用方法。3、 掌握package語句與import語句的用法。實驗要求1、 復(fù)習(xí)理論教學(xué)中所學(xué)的內(nèi)容。2、 認真進行實驗預(yù)習(xí),查閱參考書,書寫源程序,書寫實驗預(yù)習(xí)報告。3、 認真總結(jié)實驗并書寫實驗報告。實驗課時 2學(xué)時實驗教學(xué)方式 學(xué)生上機實驗,教師隨堂指導(dǎo)。實驗內(nèi)容1、三角形、梯形和圓形的類封裝:分別定義三角形、梯形和圓形類,要求每個類中包含構(gòu)造方法、求周長及面積的方法。最后在主方法中為三角形、梯形和圓形類創(chuàng)建對象并打印輸出各種圖形的周長及面積。該程序的模板代碼如下:請將其補充完整并調(diào)試運行。AreaAndLength.javaclass Trangle double sideA,sideB,sideC,area,length; boolean boo; public Trangle(double a,double b,double c) 【代碼1】 /參數(shù)a,b,c分別賦值給sideA,sideB,sideC if(【代碼2】) /a,b,c構(gòu)成三角形的條件表達式 【代碼3】 /給boo賦值。 else 【代碼4】 /給boo賦值。 double getLength() 【代碼5】 /方法體,要求計算出length的值并返回 public double getArea() if(boo) double p=(sideA+sideB+sideC)/2.0; area=Math.sqrt(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】 /參數(shù)a,b,c分別賦值給sideA,sideB,sideC if(【代碼7】) /a,b,c構(gòu)成三角形的條件表達式 【代碼8】 /給boo賦值。 else 【代碼9】 /給boo賦值。 class Lader double above,bottom,height,area; Lader(double a,double b,double h) 【代碼10】 /方法體,將參數(shù)a,b,c分別賦值給above,bottom,height double getArea() 【代碼11】 /方法體,,要求計算出area返回 class Circle double radius,area; Circle(double r) 【代碼12】 /方法體 double getArea() 【代碼13】 /方法體,要求計算出area返回 double getLength() 【代碼14】 /getArea方法體的代碼,要求計算出length返回 void setRadius(double newRadius) radius=newRadius; double getRadius() return radius; public class AreaAndLength public static void main(String args) double length,area; Circle circle=null; Trangle trangle; Lader lader; 【代碼15】 /創(chuàng)建對象circle 【代碼16】 /創(chuàng)建對象trangle。 【代碼17】 /創(chuàng)建對象lader 【代碼18】 / circle調(diào)用方法返回周長并賦值給length System.out.println("圓的周長:"+length); 【代碼19】 / circle調(diào)用方法返回面積并賦值給area System.out.println("圓的面積:"+area); 【代碼20】 / trangle調(diào)用方法返回周長并賦值給length System.out.println("三角形的周長:"+length); 【代碼21】 / trangle調(diào)用方法返回面積并賦值給area System.out.println("三角形的面積:"+area); 【代碼22】 / lader調(diào)用方法返回面積并賦值給area System.out.println("梯形的面積:"+area); 【代碼23】 / trangle調(diào)用方法設(shè)置三個邊,要求將三個邊修改為12,34,1。 【代碼24】 / trangle調(diào)用方法返回面積并賦值給area System.out.println("三角形的面積:"+area); 【代碼25】 / trangle調(diào)用方法返回周長并賦值給length System.out.println("三角形的周長:"+length); 2、學(xué)習(xí)實例成員與類成員的區(qū)別:按照下面模板代碼中的注釋信息將該程序補充完整并調(diào)試運行。Example.javaclass A 【代碼1】 /聲明一個float型實例變量a 【代碼2】 /聲明一個float型類變量b,即static變量b void setA(float a) 【代碼3】 /將參數(shù)a的值賦值給成員變量a void setB(float b) 【代碼4】 /將參數(shù)b的值賦值給成員變量b float getA() return a; 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】 /通過類名操作類變量b,并賦值100 【代碼6】 /通過類名調(diào)用方法inputB() A cat=new A(); A dog=new A(); 【代碼7】 /cat象調(diào)用方法setA(int a)將cat的成員a的值設(shè)置為200 【代碼8】 /cat調(diào)用方法setB(int b)將cat的成員b的值設(shè)置為400 【代碼9】 /dog象調(diào)用方法setA(int a)將dog的成員a的值設(shè)置為150 【代碼10】 /dog調(diào)用方法setB(int b)將dog的成員b的值設(shè)置為300 【代碼11】 /cat調(diào)用inputA()。 【代碼12】 /cat調(diào)用inputB()。 【代碼13】 /dog調(diào)用inputA()。 【代碼14】 /dog調(diào)用inputB()。 3、使用package語句與import語句:上機調(diào)試下面程序,學(xué)會package與import語句的用法。SquareEquation.javapackage tom.jiafei;public class SquareEquation 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; 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*a); System.out.printf("方程的根:%f,%fn",root1,root2); else System.out.printf("方程沒有實根n"); else System.out.println("不是一元2次方程"); public 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.javaimport tom.jiafei.*;class SunRise 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>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】: 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*radius;【代碼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(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);【代碼10】:dog.setB(300);【代碼11】:cat.inputA();【代碼12】:cat.inputB();【代碼13】:dog.inputA();【代碼14】:dog.inputB();第2部分 繼承與接口實驗?zāi)康?、掌握java 繼承中父類及其子類的定義方法。2、掌握子類重寫父類同名方法的方法。3、掌握用法。實驗要求1、 復(fù)習(xí)理論教學(xué)中所學(xué)的內(nèi)容。2、 認真進行實驗預(yù)習(xí),查閱參考書,書寫源程序,書寫實驗預(yù)習(xí)報告。3、 認真總結(jié)實驗并書寫實驗報告。實驗課時 2學(xué)時實驗教學(xué)方式 學(xué)生上機實驗,教師隨堂指導(dǎo)。實驗內(nèi)容1、定義父類People,分別定義People類的子類ChinaPeople,AmericanPeople和BeijingPeople并分別重寫父類中的各個方法。最后在主方法中分別創(chuàng)建各子類的對象并調(diào)用各自的方法打印輸出信息。該程序的模板代碼如下:請將其補充完整并調(diào)試運行。class People protected double weight,height; public void speakHello() 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 ChinaPeople extends People 【代碼1】 /重寫public void speakHello()方法,要求輸出類似“你好,吃了嗎”這樣的 /漢語信息【代碼2】 /重寫public void averageHeight()方法,要求輸出類似 /“中國人的平均身高:168.78厘米”這樣的漢語信息【代碼3】 /重寫public void averageWeight()方法, /要求輸出類似“中國人的平均體重:65公斤”這樣的漢語信息 public void chinaGongfu() 【代碼4】/輸出中國武術(shù)的信息,例如:"坐如鐘,站如松,睡如弓"等 class AmericanPeople extends People【代碼5】 /重寫public void speakHello()方法,要求輸出類似 /“How do you do”這樣的英語信息?!敬a6】 /重寫public void averageHeight()方法 【代碼7】 /重寫public void averageWeight()方法 public void americanBoxing() 【代碼8】/輸出拳擊的信息,例如,“直拳”、“鉤拳”等 class BeijingPeople extends ChinaPeople 【代碼9】 /重寫public void speakHello()方法,要求輸出類似“您好”這樣的漢語信息 【代碼10】 /重寫public void averageHeight()方法 【代碼11】 /重寫public void averageWeight()方法 public void beijingOpera() 【代碼12】/輸出京劇的信息 public class Example public static void main(String args) ChinaPeople chinaPeople=new ChinaPeople(); AmericanPeople americanPeople=new AmericanPeople(); BeijingPeople beijingPeople=new BeijingPeople(); chinaPeople.speakHello(); americanPeople.speakHello(); beijingPeople.speakHello(); chinaPeople.averageHeight(); americanPeople.averageHeight(); beijingPeople.averageHeight(); chinaPeople.averageWeight(); americanPeople.averageWeight(); beijingPeople.averageWeight(); chinaPeople.chinaGongfu(); americanPeople.americanBoxing(); beijingPeople.beijingOpera() ; beijingPeople.chinaGongfu(); 2、讀懂下面模板代碼,按要求補充程序并調(diào)試運行。掌握抽象類的定義及其實現(xiàn)方法,學(xué)習(xí)上轉(zhuǎn)型對象的運用方法。abstract class Employee public abstract double earnings();class YearWorker extends Employee 【代碼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.employee=employee; public double salariesPay() salaries=0; 【代碼4】 /計算salaries。 return salaries; public class HardWork public static void main(String args) Employee employee=new Employee20; for(int i=0;i<employee.length;i+) if(i%3=0) employeei=new WeekWorker(); else if(i%3=1) employeei=new MonthWorker(); else if(i%3=2) employeei=new YearWorker(); Company company=new Company(employee); System.out.println("公司年工資總額:"+company.salariesPay(); 3、讀懂下面模板代碼,按要求補充程序并調(diào)試運行。掌握接口的定義及其實現(xiàn)方法,學(xué)習(xí)接口回調(diào)的運用方法。interface ComputerWeight public double computeWeight();class Television implements ComputerWeight 【代碼1】 /實現(xiàn)computeWeight()方法。class Computer implements ComputerWeight 【代碼2】 /實現(xiàn)computeWeight()方法。 class WashMachine implements ComputerWeight 【代碼3】 /實現(xiàn)computeWeight()方法。class Car ComputerWeight goods; double totalWeights=0; Car(ComputerWeight goods) this.goods=goods; public double getTotalWeights() totalWeights=0; 【代碼4】 /計算totalWeights return totalWeights; public class Road public static void main(String args) ComputerWeight goodsOne=new ComputerWeight50, goodsTwo=new ComputerWeight22 ; for(int i=0;i<goodsOne.length;i+) if(i%3=0) goodsOnei=new Television(); else if(i%3=1) goodsOnei=new Computer(); else if(i%3=2) goodsOnei=new WashMachine(); for(int i=0;i<goodsTwo.length;i+) if(i%3=0) goodsTwoi=new Television(); else if(i%3=1) goodsTwoi=new Computer(); else if(i%3=2) goodsTwoi=new WashMachine(); Car 大貨車=new Car(goodsOne); System.out.println("大貨車裝載的貨物重量:"+大貨車.getTotalWeights(); Car 小貨車=new Car(goodsTwo); System.out.println("小貨車裝載的貨物重量:"+小貨車.getTotalWeights(); 參考答案1答案:【代碼1】: public void speakHello() System.out.println("你好,吃飯了嗎?"); 【代碼2】: public void averageHeight() height=173; System.out.println("中國人的平均身高:"+height+"厘米"); 【代碼3】: public void averageWeight() weight=67.34; System.out.println("中國人的平均體重:"+weight+"公斤"); 【代碼4】: System.out.println("坐如鐘,站如松,睡如弓");【代碼5】: public void speakHello() 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 weight:"+weight+" kg"); 【代碼8】: System.out.println("直拳、鉤拳");【代碼9】: public void speakHello() System.out.println("您好"); 【代碼10】: public void averageHeight() height=16; System.out.println("北京人的平均身高:"+height+"厘米"); 【代碼11】: public void averageWeight() weight=6; System.out.println("北京人的平均體重:"+weight+"公斤"); 【代碼12】: System.out.println("京劇術(shù)語");2答案:【代碼1】: public double earnings() return 50000.456; 【代碼2】: public double earnings() return 12*2300; 【代碼3】: public double earnings() return 52*500; 【代碼4】: for(int i=0;i<employee.length;i+) salaries=salaries+employeei.earnings(); 3答案:【代碼1】: public double computeWeight() return 45.5; 【代碼2】: public double computeWeight() return 65.5; 【代碼3】: public double computeWeight() return 145; 【代碼4】: for(int k=0;k<goods.length;k+) totalWeights=totalWeights+goodsk.computeWeight(); 作業(yè)課外繼續(xù)完成實驗項目,認真完成實驗報告。