java---School 功能

本文探讨如何创建一个School类,包括添加和访问老师、学生数据。文章着重解决在getter方法前处理数据、通过setter方法实现单一老师或学生添加,以及设计getter方法以方便数据使用的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

创建一个School类对象
// 添加数据 老师们|学生们 ? 老师|学生
// 访问数据 老师们|学生们 ? 老师|学生

public class School {
    private String msg;
    private Collection<Teacher> teachers;
    private Collection<Student> students;
    public String getMsg() {
        return msg;
    }
    public void setMsg(String msg) {
        this.msg = msg;
    }

// 问题一:
// 在getter方法前,应该将teacher | students处理完毕
// 在构造School类对象时,处理teachers | students

public School() {
        // 饿汉
        this.teachers = new ArrayList<Teacher>();
//      this.students = new ArrayList<Student>();
    }
    // 懒汉
    private Collection<Student> exist(){
        if (students == null) 
            return new ArrayList<Student>();
        return students;
    }

// 问题二:如何做到对外接口为添加 单一 老师|学生
// 答:按功能性设计setter方法

public void setTeacher(Teacher t) {
        teachers.add(t);
    }
    public void setStudent(Student s) {
        exist();
        students.add(s);

    }

// 问题三:如何设计getter方法
// 答:数据解析的最终目的时使用解析得到的数据,
// 如:获取第三个老师的姓名 – 该功能应该为Teacher类自身功能
// 如:获取第三个老师
// 如:获取所有老师

    public Collection<Teacher> teachers(){
        return teachers;
    }
    public Teacher geTeacher(int index) {
        if (index >= teachers.size())
            return null;
        return ((ArrayList<Teacher>) teachers).get(index);
    }
    public Collection<Student> students(){
        exist();
        return students;
    }
    public Student getStudent(int index) {
        exist();
        if (index >= students.size())
            return null;
        return ((ArrayList<Student>) students).get(index);
}
    @Override
    public String toString() {
        return "School [msg=" + msg + ", teachers=" + teachers + ", students=" + students + "]";
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值