一、实验内容
1、定义一个抽象类Shape,它包含一个抽象方法getArea(),从Shape类派生出Rectangle和Circle类,这两个类都用getArea()方法计算对象的面积。编写应用程序使用Rectangle和Circle类。
实验要求:定义Rectangle和Circle类的构造方法,初始化成员变量。
2、学校中有老师和学生两类人,而在职研究生既是老师又是学生。
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中实现各个接口声明的抽象方法。
二、实验记录
1、Shape.java(抽象类)
package exceptionsix;
public abstract class Shape {
double x,y;
double r;
Shape () {
x = 0;
y = 0;
r = 0;
}
Shape (double a) {
r = a;
}
Shape (double a, double b) {
x = a;
y =b;
}
abstract double getArea();
}
2、Rectangle.java
package exceptionsix;
public class Rectangle extends Shape {
Rectangle () {
super();
}
Rectangle (double a, double b) {
super(a, b);
}
public double getArea () {
return super.x * super.y;
}
}
3、Circle.java
package exceptionsix;
public class Circle extends Shape {
Circle () {
super ();
}
Circle (double r) {
super(r);
}
public double getArea () {
return super.r * 2 * 3.1415;
}
}
4、StudentInterface.java(接口类)
package questionTwo;
public interface StudentInterface {
double setFee();//设置学费
double getFee();//获取学费
}
5、TeacherInterface.java(接口类)
package questionTwo;
public interface TeacherInterface {
double setPay();//设置工资
double getPay();//获取工资
}
6、Graduate.java
package questionTwo;
public class Graduate implements StudentInterface, TeacherInterface{
private String name;
private String sex;
private int age;
private double fee;
private double pay;
public void setName(String a) {
name = a;
}
public void setSex(String a) {
sex = a;
}
public void setAge(int a) {
age = a;
}
public void setFeePay(double a, double b) {
fee = a;
pay = b;
}
public double setFee(){
return 0;
}
public double getFee(){//返回每学年的费用
return fee * 2;
}
public double setPay(){
return 0;
}
public double getPay(){//返回年收入
return pay * 12;
}
}
7、ExceptionSix.java(主类)
package exceptionsix;
import questionTwo.*;
public class ExceptionSix {
public static void main(String[] args) {
System.out.println("问题一:*************************************************");
Rectangle rec = new Rectangle (5.2, 13.14);
System.out.println("矩形的面积为:"+rec.getArea());
Circle cir = new Circle (5.2);
System.out.println("圆的面积为:"+cir.getArea());
System.out.println("问题二:*************************************************");
Graduate graduate = new Graduate();
graduate.setName("zhangSan");//设置姓名
graduate.setFeePay(3250, 500);//设置每学期的费用,月工资
System.out.println("学费为:"+graduate.getFee());
System.out.println("年收入为:"+graduate.getPay());
if(graduate.getPay() - graduate.getFee() > 2000) {
System.out.println("You income is enough!");
} else {
System.out.println("You need a loan!");
}
}
}