JavaSE师生管理系统(ArrayList)

这篇博客介绍了使用JavaSE设计的一个师生管理系统,包括了Person父类,拥有id、name、sex、birthday和age属性,并包含toString方法以及两个抽象方法type和work。系统中有Student和Teacher两个子类,分别实现了父类的抽象方法,提供了不同的工作描述。此外,还设计了一个工具类MyUtil用于计算年龄,以及Login类用于登录判断,最后通过启动类Test运行整个系统。
摘要由CSDN通过智能技术生成

类的设计

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值