需求:
做一个校园信息管理的系统
需要对教师和学生信息进行管理,包括教师和学生信息的增删改查
注意:该案例没有涉及到数据库,只是对于初学者的思路进行一些扩展
编程思路 以及 实现步骤:
代码展示:
代码纯手敲,细节的地方可能回有纰漏,望见谅🤭
Person 父类:
public abstract class Person {
// 成员属性
private int id;
private String name;
private String sex;
private String birthday;
private int age;
// 抽象方法
// 返回职业
abstract String getType();
// 返回基本信息
abstract String getWork();
// 打印基本信息
public String show(){
return "我是一名:" + getType() + ",我的工作是:" + getWork();
}
// 构造方法
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;
}
// get/set方法
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;
}
}
Student 子类 继承 Person父类 :
public class Student extends Person {
// 构造代码块 老师ID编号自增 每次执行构造方法,老师ID编号都会自增+1
{
Util.sid++;
}
// 构造方法
public Student () {
}
public Student (int id, String name, String sex, String birthday, int age) {
super(id, name, sex, birthday, age);
}
// 重写父类抽象方法
@Override
String getType () {
return "我是学生";
}
@Override
String getWork () {
return "我在学习Java...";
}
}
Teacher 子类 继承 Person父类:
public class Teacher extends Person {
// 构造代码块 老师ID编号自增 每次执行构造方法,老师ID编号都会自增+1
{
Util.tid++;
}
public Teacher () {
}
public Teacher (int id, String name, String sex, String birthday, int age) {
super(id, name, sex, birthday, age);
}
// 重写父类抽象方法
@Override
String getType () {
return "我是老师";
}
@Override
String getWork () {
return "我在教Java...";
}
}
Utils工具类:
public class Util {
// 创建老师和学生的ID
public static int tid;
public static int sid;
{
tid = 0;
sid = 0;
}
// 通过生日计算年龄
public static int birthdayToAge(String birthday_str){
// 判断birthday-str是否为空
if(birthday_str == null){
return -1;
}
// 将String类型的生日转换为Date类型的
// 定义日期格式
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd");
//解析
Date birthday_date = null;
try {
birthday_date = simpleDateFormat.parse(birthday_str);
} catch (ParseException e) {
e.printStackTra