一、类设计
1. 父类Person(抽象)
有学生信息管理和教师信息管理 系统,所以可以使用模板设计模式,定义一个父类,把共有的部分放在Person类中.
-
成员属性:
- id(编号)
- name(姓名)
- sex(性别)
- birthday(生日)
- age(年龄-由生日计算得出)
-
构造方法:
- 无参构造
- 全参构造
-
成员方法:
- toString()
-
抽象方法:
- getType():由各子类实现,返回各自的"类型"字符串。
- getWork():由各子类实现,返回各自的"工作"字符串。
2. 子类Student
- 构造方法
- 无参构造
- 全参构造(super调用父类全参构造)
- 重写抽象方法
- 重写getType()
- 重写getWork()
3. 子类Teacher
-
构造方法
- 无参构造
- 全参构造(super调用父类全参构造)
-
重写抽象方法
- 重写getType()
- 重写getWork()
4. 工具类Utils类
- 全局变量
- 学员ID值(添加学员信息时,编号由此ID加1生成)
- 教师ID值(添加教师信息时,编号由此ID加1生成)
- 全局方法
- 根据生日计算年龄的方法
- 打印一个Person对象的方法;
- 打印一个ArrayList集合的方法;
5. 启动类
定义启动类:MainApp启动程序。
二、类制作
1. 父类Person(抽象)
public abstract class Person {
// 成员变量
/**
* 编号
*/
private int id;
/**
* 姓名
*/
private String name;
/**
* 性别
*/
private String sex;
/**
* 生日
*/
private String birthday;
/**
* 年龄
*/
private int age;
// 构造方法
public Person() {
}
public Person(int id, String name, String sex, String birthday, int age) {
this.id = id;
this.name = name;
this.sex = sex;
this.birthday = birthday;
this.age = age;
}
// set\get方法
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getBirthday() {
return birthday;
}
public void setBirthday(String birthday) {
this.birthday = birthday;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
// 成员方法
/**
* @return 返回类型
*/
public abstract String getType();
/**
* @return 返回工作
*/
public abstract String getWork();
/**
* 按照指定格式,返回数据信息
* @return
*/
public String show(){
return "我是一名:"+getType()+",我的工作是:"+getWork();
}
}
2. 子类Student
public class Student extends Person {
public Student() {
}
public Student(int id, String name, String sex, String birthday, int age) {
super(id, name, sex, birthday, age);
}
@Override
public String getType() {
return "学生";
}
@Override
public String getWork() {
return "学Java...";
}
}
3. 子类Teacher
public class Teacher extends Person {
public Teacher() {
}
public Teacher(int id, String name, String sex, String birthday, int age) {
super(id, name, sex, birthday, age);
}
@Override
public String