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

news2024/11/22 1:06:08

在实际项目开发中需要进行对象类型的设计,给你的问题是,在学生信息系统中需要你设计班级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 一键生成
  • 安装插件 Java Code Generators
  • 具体教程参考VScode Java代码自动生成器
  1. eclipse 一键生成
  • 本人不使用该软件,所以一键生成功能自行摸索或百度

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/127051.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

看完这篇,我不允许你还不会用Allegro显示PCB的3D模式

看完这篇,我不允许你还不会用Allegro显示PCB的3D模式 Allegro可以显示PCB的3D效果,利于查看和检查,如下图 具体操作如下 选择Set-up-user preferences选择Display

游戏党别错过,提升FPS试试这样

如果你准备畅玩游戏&#xff0c;却频繁掉帧&#xff0c;严重影响游戏体验&#xff0c;那这里有些提升FPS的小方法&#xff0c;游戏党别错过了。 整理主硬盘更改电源选项更新显卡驱动降低屏幕分辨率关闭其他应用程序并禁用启动项 方法一、整理主硬盘 1、打开文件资源管理器&am…

APP Inventor练习——蓝牙通信

文章目录前言一、蓝牙调试1.组件设计2.逻辑设计二、蓝牙对战1.组件设计2.逻辑设计3.效果展示总结前言 练习APP Inventor中蓝牙的使用&#xff0c;并为之前的项目APP小游戏——一个都不能死增加了蓝牙对战功能。 一、蓝牙调试 先写一个蓝牙调试的APP&#xff0c;用来收发文本 …

2023年七大网络攻击手段预测

受疫情和网络攻击的加持下&#xff0c;2022年对网络安全领域的人来说并不是轻松的一年&#xff0c;一系列备受瞩目的网络攻击、数据泄露事件打的网安人手忙脚乱&#xff0c;供应链攻击、勒索软件攻击、业务欺诈、关键基础设施攻击、大规模数据泄露、地缘政治相关黑客攻击等网络…

热点舆情监测软件方法,舆情监测软件介绍,舆情软件监测意义?

热点舆情监测是指监测和分析当前热门话题或事件的舆情监测。这种监测可以帮助企业、政府机构或媒体机构了解公众对当前热门话题或事件的看法&#xff0c;接下来TOOM舆情监测小编简单介绍热点舆情监测软件方法&#xff0c;舆情监测软件介绍&#xff0c;舆情软件监测意义? 一、…

java8后接口的默认方法

这里我们先看一个案例 我们创建一个包 包下创建一个接口 testInterface 参考代码如下 public interface testInterface {void show(); }然后 我们创建一个类型 realizationMethod 来实现这个接口 并重写这个show方法 realizationMethod 参考代码如下 public class realizat…

腊八节吃什么What to eat on the Laba Festival

农历十二月初八是中国的传统节日——腊八节&#xff0c;腊代表中国农历的十二月&#xff0c;而八是eight的发音&#xff0c;因此&#xff0c;这个节日被翻译成腊八。 The Laba Festival is a traditional Chinese holiday celebrated on the eighth day of the twelfth month …

Selenium switch_to 处理多Web页签窗口与封装

目录 前言 脚本案例 未做页签切换处理的 做了页签切换处理的脚本 面签切换封装 1、按面签位置切换封装 2、按页签标题切换封装 3、两个封装的调用 前言 在做自动化测试时&#xff0c;经常会遇到一个链接&#xff0c;它会重新打开一个Web签&#xff0c;如下图的样式 如…

Tif地形数据下载CTB切片nginx发布及cesium调用

访问这个网站&#xff1a;https://urs.earthdata.nasa.gov/ 需要注册 选择数据类型如下 点击Search,可以看到很多搜索结果 点击下载一项tif 下载成功后&#xff0c;需要切片的话&#xff0c;可以选择两种方式 1CesiumLab3,如下图 可以选择多个tif&#xff0c;输出类型选择散…

LeetCode118.杨辉三角 | LeetCode119.杨辉三角Ⅱ

LeetCode刷题记录 文章目录&#x1f4dc;杨辉三角Ⅰ⌨C代码&#x1f4dc;杨辉三角Ⅱ⌨C代码&#x1f4dc;杨辉三角Ⅰ 给定一个非负整数 numRows&#xff0c;生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中&#xff0c;每个数是它左上方和右上方的数的和。 示例1 输入: n…

Linux进程间通信

1.进程间通信介绍 1.1进程间通信目的 数据传输&#xff1a;一个进程需要将它的数据发送给另一个进程。资源共享&#xff1a;多个进程之间共享同样的资源。通知事件&#xff1a;一个进程需要向另一个或一组进程发送消息&#xff0c;通知它&#xff08;它们&#xff09;发生了某…

深度学习入门(六十六)循环神经网络——束搜索

深度学习入门&#xff08;六十六&#xff09;循环神经网络——束搜索&#xff09;前言循环神经网络——束搜索课件贪心搜索穷举搜索束搜索总结教材1 贪心搜索2 穷举搜索3 束搜索4 小结前言 核心内容来自博客链接1博客连接2希望大家多多支持作者 本文记录用&#xff0c;防止遗忘…

MySQL批量导入数据时,为何表空间膨胀了N倍

GreatSQL社区原创内容未经授权不得随意使用&#xff0c;转载请联系小编并注明来源。GreatSQL是MySQL的国产分支版本&#xff0c;使用上与MySQL一致。作者&#xff1a;叶金荣文章来源&#xff1a;GreatSQL社区原创 问题缘起 同事在客户现场利用DTS工具&#xff0c;从A实例将数据…

I2C(IIC)的仲裁、时钟同步和时钟扩展

I2C&#xff08;IIC&#xff09;的仲裁、时钟同步和时钟扩展 注意&#xff0c;CSDN以及博客园上有大量抄袭和以讹传讹的情况&#xff0c;注意鉴别。 本文参考了Philip的I2C specification以及wiki pedia&#xff0c;并且通过实践验证。 阅读本文要求你已经对i2c的协议有基本的…

调剂的事情该什么时间想?

小部分硕士考生已经开始关心调剂的事情了&#xff0c;其实这个事情还早&#xff0c;但对于考试成绩不是很理想又想要今年顺利读书的考生&#xff0c;调剂有可能会成为实现其目标的一条途径。针对这个问题小立老师针对MBA/MPA/MEM管理类硕士为大家做个前期的梳理&#xff0c;以平…

立足信创国产化运维,打造安全可控IT运维管理系统

随着国产化信创应用试点行业的不断扩大&#xff0c;应用信创产品的企事业单位逐渐增多。大多数企业均面临着陌生的国产化环境与产品&#xff0c;其使用习惯和解决问题的方式都面临改变。北京智和信通切实立足用户需求&#xff0c;提供信创运维服务。 通过“监、管、控、析、安…

监控 DolphinDB 进程对服务器资源的使用情况

本方案主要用于监控 DolphinDB 进程对服务器资源的使用情况及 DolphinDB 性能&#xff0c;如 DolphinDB 进程 CPU 占用情况、DolphinDB 进程内存占用情况、DolphinDB 进程磁盘资源使用情况等。DolphinDB 内置了相应的运维函数以获取当前节点的资源使用情况&#xff0c;Promethe…

OpenHarmony#深入浅出学习eTs#(五)eTs语言初识

本项目Gitee仓地址&#xff1a;深入浅出eTs学习: 带大家深入浅出学习eTs (gitee.com) 一、eTs介绍 概述 基于TS扩展的声明式开发范式的方舟开发框架是一套开发极简、高性能、跨设备应用的UI开发框架&#xff0c;支持开发者高效的构建跨设备应用UI界面。 基础能力 使用基于…

实战:一个脚本实现统计linux进程相关的信息

文章目录公司任务脚本思路脚本源码及写作过程执行测试又遇到问题问题解决总结公司任务 王同学刚刚入职&#xff0c;就被安排了一项任务&#xff0c;据说还比较紧急。 公司一共有200多台服务器&#xff0c;要求王同学统计一下每台服务器的IP&#xff0c;以及各个进程的数量。 …

Spring Boot[概述、功能、快速入门]

系列文章目录 从今天开始&#xff0c;将会发关于SpringBoot的内容&#xff0c;持续更新基础篇、高级篇&#xff08;查看源码部分&#xff09;。今天是第一天&#xff0c;我们来了解SpringBoot和快速创建SpringBoot项目。 该系列文章会持续更新~ 目录 系列文章目录 前言 一…