没有合适的资源?快使用搜索试试~ 我知道了~
java实验报告
资源详情
资源评论
资源推荐
实验报告
学年第 学期 任课老师:
课程名称 Java 语言与系统设计 班级 学号 姓名
实验名称
实验四 抽象类和接口
实验时间
实验环境
PC/windows /Eclipse/Jcreator Pro/JBuild/JDK。
实验目的和内容要求
实验四 抽象类和接口
1.实验目的
掌握抽象类和接口的设计方法。
2.实验内容
1、定义一个抽象类 Shape,它包含一个抽象方法 getArea(),从 Shape 类派生出 Rectangle 和 Circle 类,这
两个类都用 getArea()方法计算对象的面积。编写应用程序使用 Rectangle 和 Circle 类。
实验要求:定义 Rectangle 和 Circle 类的构造方法,初始化成员变量。
2、(1)设计一个继承自抽象类 Shape 的新的 Triangle 类,并编写一个测试程序,提示用户输入三角形的
三条边、一种颜色以及一个表明该三角形是否填充的布尔值。程序应该根据用户的输入,使用这些边以及
颜色和是否填充的信息,创建一个 Triangle 对象。程序应该显示面积、周长、颜色以及真或者假来表明是
否被填充。
(2)创建名为 ComparableCircle 的类,它继承自 Circle 类,并实现 Comparable 接口。设计并实现一个
compareTo 方法,使其根据面积比较两个圆。编写一个测试程序求出 ComparableCircle 对象的两个实例中
的较大者。
(3)设计一个名为 Colorable 的接口,其中有名为 howToColor()的 void 方法。要求可着色对象的每个类必
须实现 Colorable 接口。设计一个继承 Shape 类并实现 Colorable 接口的名为 Square 的类,实现 howToColor
方法来输出显示消息“给所有的四条边着色”。编写一个测试程序,创建有五个 Shape 对象的数组。对于数
组中的每个对象而言,如果对象是可着色的,则调用 howToColor 方法。
3、学校中有老师和学生两类人,而在职研究生既是老师又是学生。
(1)设计两个信息管理接口 StudentInterface 和 TeacherInterface,其中 StudentInterface 接口包括 setFee()方
法和 getFee()方法,分别用于设置和获取学生的学费,TeacherInterface 接口包括 setPay()和 getPay()方法,
分别用于设置和获取老师的工资。
(2)定义一个研究生类 Graduate,实现 StudentInterface 接口和 TeacherInterface 接口,它定义的成员变量
有 name(姓名),sex(性别),age(年龄),fee(每学期学费) pay(月工资)。
(3)创建一个姓名为“zhangsan”的研究生,统计他的年收入和学费,如果收入减去学费不足 2000 元,则
输出“You need a loan!”(需要贷款)的信息,否则输出“You income is enough!”信息。
实验要求:在 Graduate 中实现各个接口声明的抽象方法。
4、跳水比赛计算选手成绩的方式是去掉一个最高分和一个最低分然后再计算平均分,而学校考察某个班
级某科目的考试情况时则直接采用计算全班学生平均成绩的方式。请分别实现跳水比赛得分计算的 Diving
类和学校班级科目考试分数计算的 Exam 类,这两个类均实现了接口 CalculateAverage。
实验过程、结果分析与总结
1、程序运行过程和结果(请提供所完成的各道题主要实验代码和运行结果的界面截图):
1. abstract class Shape{
public abstract double getArea();
}
class Rectangle extends Shape{
int width;
int height;
public Rectangle(int a,int b){
this.width=a;
this.height=b;
}
public double getArea(){
return 0.5*this.width*this.height;
}
}
class Circle extends Shape{
int radius;
public Circle(int a){
this.radius=a;
}
public double getArea(){
return 3.14*this.radius*this.radius;
}
}
public class abstractshape{
public static void main(String[] args){
Rectangle x=new Rectangle(1,2);
Circle y=new Circle(2);
System.out.print("rectangle S=");
System.out.println(x.getArea());
System.out.print("circle S=");
System.out.println(y.getArea());
}
}
2.(1)import java.util.Scanner;
abstract class Shape{
public abstract double getArea();
}
class Triangle extends Shape{
int x1,x2,x3;
String colour;
Boolean x;
public Triangle(int a,int b,int c,String d,Boolean e){
this.x1=a;
this.x2=b;
this.x3=c;
this.colour=d;
this.x=e;
}
public double getArea() {
double s = (x1+x2+x3)/2;
double area = Math.pow(s*(s-x1)*(s-x2)*(s-x3),0.5);
return area;
}
public double getPerimeter() {
return x1+x2+x3;
}
}
public class Ts{
public static void main(String[] args){
Scanner input=new Scanner(System.in);
System.out.println("input each sidelength of the triangle,colour and whether it is
printed.");
int x1=input.nextInt();
int x2=input.nextInt();
int x3=input.nextInt();
String colour=input.next();
Boolean x=input.nextBoolean();
剩余16页未读,继续阅读
silent__spirit
- 粉丝: 0
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0