Loading

对象类型的设计(简答题)

在实际项目开发中需要进行对象类型的设计,给你的问题是,在学生信息系统中需要你设计班级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)一键生成

  1. idea 一键生成
    在这里插入图片描述
    在这里插入图片描述
  2. vscode 一键生成
  1. eclipse 一键生成
  • 本人不使用该软件,所以一键生成功能自行摸索或百度
posted @ 2022-12-29 22:31  qing影  阅读(13)  评论(0)    收藏  举报  来源