Java实验三Microsoft_Word_文档

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Java面向对象程序设计实验报告
课程名称Java面向对象程序设计实验名称继承与接口
学院计算机专业班级计Y126
姓名 xxxx _学号20120040300 实验日期:2014 年 4月17 日
一.实验目的
1.让学生巩固子类的继承性,子类对象的创建过程以及方法的继承与重写。

2.让学生掌握上转型对象的使用,理解不同对象的上转型对象调用同一方法可能产生不同的行为,即理解上转型对象在调用方法时可能具有多种形态。

3.让学生掌握面向接口编程思想。

二.实验内容
(一)实验题目
编写程序模拟中国人、美国人、北京人。

除主类外,程序中有四个类:People、ChinaPeople、AmericanPeople、BeijingPeople类。

要求如下:
(1)People类有权限是protected的double型成员变量:height和weight,以及public void speakHello()、public void averageHeight()、public void averageWeight()方法。

(2)ChinaPeople类是People的子类,新增了public void chinaGongfu()方法。

要求ChinaPeople重写public void speakHello()、public void averageHeight()、public void averageWeight()方法。

(3)AmericanPeople类是People的子类,新增了public void americanBoxing()方法。

要求AmericanPeople重写public void speakHello()、public void averageHeight()、public void averageWeight()方法。

(4)BeijingPeople类是People的子类,新增了public void beijingOpera()方法。

要求AmericanPeople重写public void speakHello()、public void averageHeight()、public void averageWeight()方法。

1部分代码
public void averageWeight(){ //代码1 重写averageWeight()方法
weight=65;
System.out.println("中国人的平均体重:"+weight+"公斤");
}
public void speakHello(){ //代码2 重写speakHello()方法System.out.println("How do you do ");
}
public void averageHeight(){//代码3 重写averageHeight方法height=176;
System.out.println("American'saverage
height:"+height+"cm");
}
public void averageHeight(){//代码4 重写averageHeight()方法height=172.5;
System.out.println("北京人的平均身高:"+height+"厘米");
}
public void averageWeight(){ //代码5 重写averageWeight()方法
weight=70;
System.out.println("北京人的平均体重:"+weight+"公斤");
}
2实验结果
实验后的练习
可以省略People类中的
public void speakHello()
public void averageHeight()
public void averageWeight()
的方法体中的语句。

实验结果
(二)实验题目
(1)编写一个abstract 类,类名为Geometry ,该类有一个abstract方法:
public abstract getArea();
(2)编写TotalArea类,该类用Geometry对象数组:tuxing作为成员,以便计算各种图形的面积之和。

Geometry类中定义一个public double computerTotalArea()方法,该方法返回tuxing的元素调用getArea()方法返回的面积之和。

(3)在主类MainClass的main方法中创建一个TotalArea对象,让该对象计算若干个矩形和圆的面积之和。

1.部分代码
public double getArea(){ //代码1 重写getArea()
return a*b;
}
public double getArea(){ //代码2 重写getArea()
return r*r*3.14;
}
for(int i=0;i<tuxing.length;i++)//代码3
totalArea=totalArea+tuxing[i].getArea();
2.实验结果
实验后的练习
程序代码
public class Tixing extends Geometry{
double a,b,h;
Tixing(double a,double b,double h){
this.a=a;
this.b=b;
this.h=h;
}
public double getArea(){
return ((a+b)*h/2);
}
}
if(i%3==1) tuxing[i]=new Tixing(1+i,2+i,3+i);//梯形
实验结果
(三)实验题目
天气可能出现不同的状态,要求用接口封装天气的状态。

具体要求如下。

(1)编写一个接口WeatherState,该接口有一个名字为void showState()的方法。

(2)编写Weathe类,该类中有一个WeatherState接口声明的变量state。

另外,该类有一个show()方法,在该方法中让接口state回调showState()的方法。

(3)编写若干个实现WeatherState接口的类,负责刻画天气的各种状态。

(4)编写主类,在主类中进行天气预报。

1部分代码
public void showState(){//代码1 重写showState()
System.out.print("多云,有时阴");
}
public void showState(){//代码2 重写showState()
System.out.print("大雨");
}
public void showState(){//代码3 重写showState()
System.out.print("小雨.");
}
2实验结果
实验后的练习
程序代码
//WaterWen.java
public interface WaterWen{//接口
public void showWen();
}
//Water.java
public class Water{
WaterWen water;
public void show(){
water.showWen();
}
public void setWen(WaterWen w){
water=w;
}
}
//WaterShow.java
public class WaterShow{ //主类
public static void main (String args[]){
Water waterbei=new Water();//创建对象与C++不同
System.out.print("水在0度以下的状态:");
waterbei.setWen(new Gutai());
waterbei.show();
System.out.print("\n水在0——100度的状态:");
waterbei.setWen(new Yetai());
waterbei.show();
System.out.print("\n水在100度以上的状态:");
waterbei.setWen(new Qitai());
waterbei.show();
}
}
//Gutai.java
public class Gutai implements WaterWen {
public void showWen(){
System.out.print("固态");
}
}
//Yetai.java
public class Yetai implements WaterWen {
public void showWen(){
System.out.print("液态");
}
}
//Qitai.java
public class Qitai implements WaterWen {
public void showWen(){
System.out.print("汽态");
}
}
实验结果
三.实验总结
这次实验后更加熟悉了Java编程环境以及对它的使用和操作,但是加快加强电脑的基本操作,在敲代码是尽量少出点错,比如漏掉字母,不区分大小写。

要逐步形成良好的编程习惯,如文件、类的命名,出错时有目的的调试修改。

通过此次实验,我更加理解与掌握了类的继承性,子类对象的创建过程以及方法的继承与重写,还有上转型对象的使用以及面向接口的编程思想,对Java 的编程能力也有了进一步的提高。

相关文档
最新文档