《Java实验项目二 面向对象编程 3部分.doc》由会员分享,可在线阅读,更多相关《Java实验项目二 面向对象编程 3部分.doc(16页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Java实验项目二 面向对象编程第1部分 类与对象实验目的1、 熟悉Java面向对象程序设计的基本思想。2、 掌握类与对象的定义及使用方法。3、 掌握package语句与import语句的用法。实验要求1、 复习理论教学中所学的内容。2、 认真进行实验预习,查阅参考书,书写源程序,书写实验预习报告。3、 认真总结实验并书写实验报告。实验课时 2学时实验教学方式 学生上机实验,教师随堂指导。实验内容1、三角形、梯形和圆形的类封装:分别定义三角形、梯形和圆形类,要求每个类中包含构造方法、求周长及面积的方法。最后在主方法中为三角形、梯形和圆形类创建对象并打印输出各种图形的周长及面积。该程序的模板代码
2、如下:请将其补充完整并调试运行。AreaAndLength.javaclass 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】 /给boo赋值。 else 【代码4】 /给boo赋值。 double getLength() 【代码5】 /方法体,要求计算出length的值并返回 public doub
3、le 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】 /参数a,b,c分别赋值给sideA,sideB,sideC if(【代码7】) /a,b,c构成三角形的条件表达式 【代码8】 /给boo赋值。 else
4、【代码9】 /给boo赋值。 class Lader double above,bottom,height,area; Lader(double a,double b,double h) 【代码10】 /方法体,将参数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
5、() 【代码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】 /创建对象circle 【代码16】 /创建对象trangle。 【代
6、码17】 /创建对象lader 【代码18】 / circle调用方法返回周长并赋值给length System.out.println(圆的周长:+length); 【代码19】 / circle调用方法返回面积并赋值给area System.out.println(圆的面积:+area); 【代码20】 / trangle调用方法返回周长并赋值给length System.out.println(三角形的周长:+length); 【代码21】 / trangle调用方法返回面积并赋值给area System.out.println(三角形的面积:+area); 【代码22】 / lader
7、调用方法返回面积并赋值给area System.out.println(梯形的面积:+area); 【代码23】 / trangle调用方法设置三个边,要求将三个边修改为12,34,1。 【代码24】 / trangle调用方法返回面积并赋值给area System.out.println(三角形的面积:+area); 【代码25】 / trangle调用方法返回周长并赋值给length System.out.println(三角形的周长:+length); 2、学习实例成员与类成员的区别:按照下面模板代码中的注释信息将该程序补充完整并调试运行。Example.javaclass A 【代码1
8、】 /声明一个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; float getB() return b; void inputA() System.out.println(a); static void inputB() System.out.println(b); public class Example public static void
9、 main(String args) 【代码5】 /通过类名操作类变量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(int b)将dog的成员b的值设置为300 【代码11】 /cat调用inputA()。 【代码12】 /
10、cat调用inputB()。 【代码13】 /dog调用inputA()。 【代码14】 /dog调用inputB()。 3、使用package语句与import语句:上机调试下面程序,学会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; th
11、is.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.prin
12、tln(不是一元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.
13、setCoefficient(-3,4,5); equation.getRoots(); 实验参考代码1、【代码1】: sideA=a;sideB=b;sideC=c;【代码2】: a+bc&a+cb&c+ba 【代码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+bc&a+cb&c+ba
14、【代码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
15、】: 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】:
16、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部分 继承与接口实验目的1、掌握java 继承中父类及其子类的定义方法。2、掌握子类重写父类同名方法的方法。3、掌握用法。实验要求1、 复习理论教
17、学中所学的内容。2、 认真进行实验预习,查阅参考书,书写源程序,书写实验预习报告。3、 认真总结实验并书写实验报告。实验课时 2学时实验教学方式 学生上机实验,教师随堂指导。实验内容1、定义父类People,分别定义People类的子类ChinaPeople,AmericanPeople和BeijingPeople并分别重写父类中的各个方法。最后在主方法中分别创建各子类的对象并调用各自的方法打印输出信息。该程序的模板代码如下:请将其补充完整并调试运行。class People protected double weight,height; public void speakHello() Sy
18、stem.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】 /重写publ
19、ic void averageHeight()方法,要求输出类似 /“中国人的平均身高:168.78厘米”这样的汉语信息【代码3】 /重写public void averageWeight()方法, /要求输出类似“中国人的平均体重:65公斤”这样的汉语信息 public void chinaGongfu() 【代码4】/输出中国武术的信息,例如:坐如钟,站如松,睡如弓等 class AmericanPeople extends People【代码5】 /重写public void speakHello()方法,要求输出类似 /“How do you do”这样的英语信息。【代码6】 /重写p
20、ublic 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()方法 p
21、ublic 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(); be
22、ijingPeople.speakHello(); chinaPeople.averageHeight(); americanPeople.averageHeight(); beijingPeople.averageHeight(); chinaPeople.averageWeight(); americanPeople.averageWeight(); beijingPeople.averageWeight(); chinaPeople.chinaGongfu(); americanPeople.americanBoxing(); beijingPeople.beijingOpera() ;
23、 beijingPeople.chinaGongfu(); 2、读懂下面模板代码,按要求补充程序并调试运行。掌握抽象类的定义及其实现方法,学习上转型对象的运用方法。abstract class Employee public abstract double earnings();class YearWorker extends Employee 【代码1】 /重写earnings()方法class MonthWorker extends Employee 【代码2】 /重写earnings()方法。class WeekWorker extends Employee 【代码3】 /重写earni
24、ngs()方法。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;iemploye
25、e.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、读懂下面模板代码,按要求补充程序并调试运行。掌握接口的定义及其实现方法,学习接口回调的运用方法。interface ComputerWeig
26、ht public double computeWeight();class Television implements ComputerWeight 【代码1】 /实现computeWeight()方法。class Computer implements ComputerWeight 【代码2】 /实现computeWeight()方法。 class WashMachine implements ComputerWeight 【代码3】 /实现computeWeight()方法。class Car ComputerWeight goods; double totalWeights=0; Ca
27、r(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;igoodsOne.length;i+) i
28、f(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;igoodsTwo.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(goodsO
29、ne); 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+厘米); 【代
30、码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); 【代码
31、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 a
32、verageWeight() weight=6; System.out.println(北京人的平均体重:+weight+公斤); 【代码12】: System.out.println(京剧术语);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;iemployee.length;i+) salaries=sal
33、aries+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;kgoods.length;k+) totalWeights=totalWeights+puteWeight(); 作业课外继续完成实验项目,认真完成实验报告。第3部分 常用类与异常处理实验目的1、掌握java String类的各个常用方法的应用。2、掌握Date类和Calendar类的各个常用方法的应用。3、掌握Java正则表达式的应用。4、掌握Java异常处理的方法。5掌握Java数组及枚举类型的应用。实验要求1、 复习理论教学中所学的内容。2、 认真进行实验预习,查阅参考书,书写源程序,书写实验预习报告。3、 认真总结实验并书写实验报告。实验课时 2学时实验教学方式 学生上机实验,教师随堂指导。实验内容1 完成教材P430实验5.1。2 完成教材P116例题5.11。3 完成教材P431实验5.2。4 完成教材P430实验5.4。5 完成教材P434实验6.1,6.2和6.3。
限制150内