学校有学生和老师两类人,而在职研究生既是老师也是学生,对学生的管理和对老师的管理在他们身上都有体现。
(1)设计Person类,含有name,age属性,有构造函数、一般方法set和get,有抽象方法speak用于说出自己的身份。
(2)在文件ManageInterface.java设计两个信息管理接口StudentManage和TeacherManage。其中StudentManage接口包括setFee(double f) 和getFee()方法,分别用于设置和获取学生的学费;TeacherManage接口包括setPay(double p)和getPay()方法,分别用于设置和获取教师工资。
(3)在文件Graduate.java定义一个研究生类Graduate,继承自Person类,添加成员变量有fee(每学期学费)和pay(月工资);含构造方法,实现StudentManage和TeacherManage接口定义的抽象方法。
(4)在测试类的main方法中创建一个姓名为“张三”的研究生,利用setFee()和setPay()设置他的学费和月收入。统计年学费和年收入,用收入减去学费,如果小于2000,则显示“需要贷款”信息,否则显示“无需贷款”信息。
import java.util.Scanner; public class test { public static void main(String[] args) { Graduate graduate=new Graduate("张三",23); Scanner sc=new Scanner(System.in); System.out.print("请输入研究生的月输入:"); int pay=sc.nextInt(); System.out.print("请输入研究生一学期的学费:"); int fee=sc.nextInt(); graduate.setPay(pay); graduate.setFee(fee); double YearPay=graduate.getPay()*12; double YearFee=graduate.getFee()*2; double sum=YearPay-YearFee; if(sum>0) { System.out.print("无需贷款"); } else{ System.out.print("需要贷款"); } } }
abstract class Person { private String name; private int age; public Person() { } public Person(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String toString() { return "Person{name = " + name + ", age = " + age + "}"; } public abstract void speak(); }
public interface ManageInterface { public interface StudentManage{ public abstract void setFee(double f); public abstract double getFee(); } public interface TeacherMange{ public abstract void setPay(double p); public abstract double getPay(); } } class Graduate extends Person implements ManageInterface.TeacherMange,ManageInterface.StudentManage{ double fee; double pay; public Graduate() { } public Graduate(String name, int age) { super(name, age); } public Graduate(String name, int age, double fee, double pay) { super(name, age); this.fee = fee; this.pay = pay; } public void speak() { System.out.println("研究生在说话"); } public void setFee(double f) { this.fee=f; } public double getFee() { return fee; } public void setPay(double p) { this.pay=p; } public double getPay() { return pay; } }