在实际项目开发中需要进行对象类型的设计,给你的问题是,在学生信息系统中需要你设计班级Classes类型和学生Student类型,为了便于数据的查询,需要建立对象之间的联系,比如一个班级有多个学生,每个学生属于一个班,请你利用Jva程序设计思想完成该两个类型的设计。
(1)Classes类型基本属性包含班级编码classId,班级名称classname,以及关联属性学生集stus;请你确定学生集类型的选择并分析原因;
(2)Student类型基本属性包含学生学号stuid,姓名name,性别sex,以及关联属性班级classes;:请你确定班级类型的选择并分析原因;
(3)如果Classes类型的成员变量限制为private,请合理设计其构造方法和成员方法,写出该类型的设计代码。
(4)如果Student类型的成员变量限制为private,请合理设计其构造方法和成员方法,写出该类型的设计代码。
标准答案:
正确答案:
答:(1)由于一个班级对象有多名学生,需要使用数组或集合存储,但由于学生不能重复,只有选择St类型,可以使用他的子类HashSeti或TreeSet类型为学生集成员变量。
(2)由于一个学生必须属于一个班级,在学生类型中必须定义一个Classes类型的班级成员变量。
(3)为Classesl的所有成员变量提供setter和getter方法;构造方法提供全部成员变量的参数,解决成员变量赋值问题;代码省。
(4)为Student的所有类型提供setter7和getter方法:构造方法提供全部成员变量的参数,解决成员变量赋值问题;代码省。
参考代码
import java.util.Set;
// 设计 Classes 类型
class Classes {
// 班级编码 classId
private Integer classId;
// 班级名称 classname
private String classname;
// 关联属性学生集 stuid
private Set<Student> stus;
// 设计构造方法
public Classes(Integer classId, String classname, Set<Student> stus) {
this.classId = classId;
this.classname = classname;
this.stus = stus;
}
// 设计成员方法
public Integer getClassId() {
return classId;
}
public void setClassId(Integer classId) {
this.classId = classId;
}
public String getClassname() {
return classname;
}
public void setClassname(String classname) {
this.classname = classname;
}
public Set<Student> getStus() {
return stus;
}
public void setStus(Set<Student> stus) {
this.stus = stus;
}
}
// 设计 Student 类型
class Student {
// 学生学号 stuid
private Integer stuid;
// 姓名 name
private String name;
// 性别 sex
private char sex;
// 关联属性班级 classes
private Classes classes;
// 设计构造方法
public Student(Integer stuid, String name, char sex, Classes classes) {
this.stuid = stuid;
this.name = name;
this.sex = sex;
this.classes = classes;
}
// 设计成员方法
public Integer getStuid() {
return stuid;
}
public void setStuid(Integer stuid) {
this.stuid = stuid;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public char getSex() {
return sex;
}
public void setSex(char sex) {
this.sex = sex;
}
public Classes getClasses() {
return classes;
}
public void setClasses(Classes classes) {
this.classes = classes;
}
}
小技巧
成员方法和构造方法可以利用软件(如 idea、vscode、exlipse)一键生成
- idea 一键生成
- vscode 一键生成
- 安装插件 Java Code Generators
- 具体教程参考VScode Java代码自动生成器
- eclipse 一键生成
- 本人不使用该软件,所以一键生成功能自行摸索或百度