类的设计
1 父类Person
成员属性: id(编号) name(姓名) sex(性别)birthday(生日) age(年龄-由生日计算得出)
构造方法: 无参构造 全参构造 成员方法: toString()
抽象方法: type():由各子类实现,返回各自的"类型"字符串。 work():由各子类实现,返回各自的"工
2 子类Student
构造方法 无参构造 全参构造(super调用父类全参构造)
重写抽象方法 重写type() 重写work()
3 子类Teacher
构造方法 无参构造 全参构造(super调用父类全参构造)
重写抽象方法 重写type() 重写work()
4 工具类MyUtil
全局变量 学员ID值(添加学员信息时,编号由此ID加1生成)
教师ID值(添加教师信息时,编号由此ID加1生成)
全局方法 根据生日计算年龄的方法
5登录判断类Login
成员属性:username(账号)password(密码)
构造方法: 无参构造 全参构造
6启动类Test
定义启动类:启动程序
程序设计
父类Person
import com.itheima.util.MyUtil;
import java.util.Date;
public abstract class Person {
private int id;
private String name;
private String sex;
private Date birthday;
private int age;
//无参
public Person() {
}
//有参
public Person(int id, String name, String sex, Date birthday, int age) {
this.id = id;
this.name = name;
this.sex = sex;
this.birthday = birthday;
this.age = age;
}
//getter & setter
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 Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
//toString重写
@Override
public String toString() {
return String.format("%s\t\t%s\t%s\t\t%s\t%s\t\t%s", id, name, sex, MyUtil.format(birthday), age,
"我是一名" + type() + ",我的工作是" + work());
}
//类型
protected abstract String type();
//工作
protected abstract String work();
}
子类Student
import java.util.Date;
public class Student extends Person{
public Student() {
}
public Student(int id, String name, String sex, Date birthday, int age) {
super(id, name, sex, birthday, age);
}
@Override
protected String type() {
return "学生";
}
@Override
protected String work() {
return "学习";
}
}
子类Teacher
import java.util.Date;
public class Teacher extends Person{
public Teacher() {
}
public Teacher(int id, String name, String sex, Date birthday, int age) {
super(id, name, sex, birthday, age);
}
@Override
protected String type() {
return "老师";
}
@Override
protected String work() {
return "教书";
}
}
工具类MyUtil
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class MyUtil {
//记录学生编号
private static int currentStudentId = 0;
//记录老师编号
private static int currentTeacher = 0;
//日期格式化对象
private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
/**
* 获取下一个学生编号
*/
public static int nextStudentId(){
return ++currentStudentId;
}
/**
* 获取下一个老师编号
*/
public static int nextTeacherId(){
return ++currentTeacher;
}
/**
* 将字符串类型的生日转换成日期类型的生日
*/
publ