学生选课系统的最简逻辑--一个学生选一门课
需求:设计一个学生选课系统,要求如下:有一个学生类,有一个课程类,还有一个Teacher类。。学生类包括姓名、学号、已选课程。课程类包括课程名称、授课老师属性。 老师包括老师的名字、老师的电话,老师的课程。需要设计学生选课和退课方法。
package com.donglijiedian.javase.oop04;
/*老师类,拥有课程名字、老师的名字、老师的电话*/
public class Teacher {/*老师名字*/private String name;/*老师电话*/private String tel;/*老师所教课程名字*/private Course course;public Teacher(String name, String tel, Course course) {this.name = name;this.tel = tel;this.course = course;}public Teacher() {}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getTel() {return tel;}public void setTel(String tel) {this.tel = tel;}public Course getCourse() {return course;}public void setCourse(Course course) {this.course = course;}
}
package com.donglijiedian.javase.oop04;
/*设计一个学生选课系统,要求如下:有一个学生类,有一个课程类,还有一个Teacher类。。学生类包括姓名、学号、已选课程。课程类包括课程名称、授课老师属性。 老师包括老师的名字、老师的电话,老师的课程。需要设计学生选课和退课方法。*/public class Course {//课程名字private String name;//课程老师private Teacher teacher;public Course(String name, Teacher teacher) {this.name = name;this.teacher = teacher;}public Course(){}public String getName() {return name;}public void setName(String name) {this.name = name;}public Teacher getTeacher() {return teacher;}public void setTeacher(Teacher teacher) {this.teacher = teacher;}
}
package com.donglijiedian.javase.oop04;
/*设计一个学生选课系统,要求如下:有一个学生类,有一个课程类。学生类包括姓名、学号、已选课程。课程类包括课程名称授课老师
属性。
需要设计学生选课和退课方法。再设计一个打印某学生具体的选课信息的方法。
*/public class Student {private String name;//学号private String id;//已选的课程private Course course;/*定义为course类的原因:* 首先是学生要选课,而每个课程呐都含有课程名称* 、授课老师属性,已经规定好要定义课程的对象了,因此与课程相关的变量自然应该是课程类的。* 而且,学生选课就是课程类来的,因此选的课一定就是Course的呀。*///选课方法:选课这个行为是学生对象完成的,因此选课和退课方法都应该定义在学生类中public void selection(Course course){System.out.println(this.name + "正在选课中");this.course = course;System.out.println("选课成功");}public void cancle(Course course){System.out.println(this.name + "正在退课中");this.course = null;System.out.println("退课成功");}public Student() {}public Student(String name, String id, Course course) {this.name = name;this.id = id;this.course = course;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getId() {return id;}public void setId(String id) {this.id = id;}public Course getCourse() {return course;}public void setCourse(Course course) {this.course = course;}
}
package com.donglijiedian.javase.oop04;
public class Select01 {public static void main(String[] args) {Teacher laodu = new Teacher("老杜", "1234561", null);Course java = new Course("java", laodu);laodu.setCourse(java);Student zhangsan = new Student("zhangsan","123456",java);/*zhangsan选课*/zhangsan.selection(java);/*输出张三选课的课程的老师的名字*/System.out.println(zhangsan.getCourse().getTeacher().getName());/*张三退课*/zhangsan.cancle(java);}}
==这个程序旨在学习对象的定义逻辑,当一个“变量”,他有自己的很多属性时,那么就把他定义为一个对象来使用,由对象来进行属性的实现。 ==
学生和选课的内存图概念如下:

相关文章:
学生选课系统的最简逻辑--一个学生选一门课
需求:设计一个学生选课系统,要求如下:有一个学生类,有一个课程类,还有一个Teacher类。。学生类包括姓名、学号、已选课程。课程类包括课程名称、授课老师属性。 老师包括老师的名字、老师的电话,老师的课程…...
波司登高德康:以有“韧性”的创新应变市场新浪潮
伴随着消费升级,羽绒服市场需求日益旺盛。愈发多元化的需求对于企业发展也有着更高的要求。如何更好推动行业多元化发展,可以从波司登的品牌升级、产品创新、模式创新、数字技术创新、绿色发展创新等方面窥得一二。 高德康总裁接受新华网主持人采访 对此…...
装饰你的APP:使用Lottie-Android创建动画效果
1. Lottie-Android简介 Lottie-Android是一个强大的开源库,由Airbnb开发,旨在帮助开发者轻松地在Android应用中添加高质量的动画效果。它基于Adobe After Effects软件中的Bodymovin插件,通过解析导出的JSON文件来渲染并播放复杂的矢量动画。 Lottie-Android提供了许多令人…...
成都爱尔林江院长解析巩膜镜是什么?它适合哪些人群
巩膜镜,全称为硬性透氧性巩膜接触镜,它有着特殊设计,大直径镜片像桥梁一样呈拱形覆盖角膜及角巩膜缘,从角膜上方横跨而过完全无接触、无任何机械性摩擦,最终贴合于巩膜。 巩膜镜的作用原理 光学成像: 配戴…...
苹果cms模板保护设置,防止被扒
苹果cms模板保护设置,防止被扒 如今互联网时代,网站模板前端被扒是常有的事,如何防止模板数据被扒? 保护设置方法: 登录宝塔 找到安装模板的网站 设置禁止访问文件 方法参考截图后缀填:php|html 目录填&a…...
Claude3、GPT-4、Gemini、Sora VS :谁将成为下一代科研利器?
2023年随着OpenAI开发者大会的召开,最重磅更新当属GPTs,多模态API,未来自定义专属的GPT。微软创始人比尔盖茨称ChatGPT的出现有着重大历史意义,不亚于互联网和个人电脑的问世。360创始人周鸿祎认为未来各行各业如果不能搭上这班车…...
vue 函数防抖
背景 一个页面使用监听器,监听了页面的三个参数,页面初始化的时候,三个参数都发生了变化。发送了三次请求,页面却使用的是第二次请求的数据。希望短时间内发生多次变化的时候,只发送一次请求 思路 这个需求可以通过使用…...
WordPress建站入门教程:如何创建菜单和设置前端导航菜单?
前面我们跟大家分享了WordPress如何上传安装WordPress主题,但是启用主题后前端没有看到有导航菜单,这是因为我们还没有创建菜单和设置导航菜单。 JianYue主题导航菜单和右上角菜单 今天boke112百科就继续跟大家分享WordPress站点如何创建菜单和设置前端…...
Rust:为 Trait 定义默认的方法
当你提到“指定 trait 的实现”并使用 :: 符号时,你可能是指在某些情况下,你想直接通过 trait 而不是具体的类型来调用方法。这在 trait 提供了默认方法实现时尤其有用,因为你可以不依赖任何具体的类型实现来调用这些方法。 然而,…...
掌握Redis,看完这篇文章就够了
一,数据库的配置 内存数据库 MySQL与mongodb都是以文件的形式存储在磁盘上的 redis数据在内存中,操作内存的速度远远高于磁盘并且redis数据最终也可以存储在磁盘上 redis的存储结构为简直存储数据库类似于python中的字典的存储方式 redis的服务器与客户…...
烟火识别检测摄像头-火焰烟雾智能检测预警系统---豌豆云
火焰烟雾智能检测预警系统利用现场已有的监控摄像头,火焰烟雾智能检测预警系统对监控区域内的烟雾和火焰进行识别。 这种识别技术不仅准确率高,而且速度快,能够在短时间内对大量的视频数据进行处理和分析。 同时,该系统还能够动…...
js【详解】Promise
为什么需要使用 Promise ? 传统回调函数的代码层层嵌套,形成回调地狱,难以阅读和维护,为了解决回调地狱的问题,诞生了 Promise 什么是 Promise ? Promise 是一种异步编程的解决方案,本身是一个构…...
八股文-持续更新......
文章目录 SpringSpringBootDubboMQMysqlNettyRedis并发ZookeeperMybatisElasticsearchLinux微服务ZookeeperMybatisElasticsearchLinux...
Redis 大key和热key问题及处理
一、说说什么是Redis、及特点? Redis是一个基于内存存储数据运行并支持持久化、使用key/value形式存储的高性能的nosql数据库,适合用于存储频繁访问,数据量较小的场景下。 特点: 支持数据持久化:可以将内存中的数据保…...
SpringBoot中RestTemplate 发送http请求
SpringBoot中RestTemplate 发送http请求 引入fastjson <!--fastjson--> <dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>2.0.47</version> </dependency>创建配置文件 新建c…...
HTTP有什么缺陷,HTTPS是怎么解决的
缺陷 HTTP是明文的,谁都能看得懂,HTTPS是加了TLS/SSL加密的,这样就不容易被拦截和攻击了。 SSL是TLS的前身,他俩都是加密安全协议。前者大部分浏览器都不支持了,后者现在用的多。 对称加密 通信双方握有加密解密算法…...
OWASP Top 10 网络安全10大漏洞——A02:A02:2021-加密机制失效
10大Web应用程序安全风险 2021年top10中有三个新类别、四个类别的命名和范围变化,以及一些合并。 A02:A02:2021-加密机制失效 上升一个位置,当前top2,以前称为敏感数据泄露,是一种状况而不是根本原因。更新后的类别…...
2024-3-11-C++作业
1>试编程 要求: 提示并输入一个字符串,统计该字符中大写、小写字母个数、数字个数、空格个数以及其他字符个数 源代码: #include <iostream>using namespace std;int main() {string s;cout << "请输入字符串:"…...
Spring Boot 实现文件本地以及OSS上传
Spring Boot 实现文件上传 Maven依赖 <dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>3.15.1</version> </dependency>上传到本地 package yang.controller;import java.…...
如何选择一家优秀的APP开发公司?
在移动应用市场的激烈竞争中,选择一家合适的APP开发公司至关重要。然而,仅仅选择了一家公司并不足以确保项目的成功。本文将为您详细介绍选择好APP开发公司后,还应该注意的关键因素,并引入虎克技术公司的以往合作客户的过程中给出…...
浅谈 React Hooks
React Hooks 是 React 16.8 引入的一组 API,用于在函数组件中使用 state 和其他 React 特性(例如生命周期方法、context 等)。Hooks 通过简洁的函数接口,解决了状态与 UI 的高度解耦,通过函数式编程范式实现更灵活 Rea…...
第19节 Node.js Express 框架
Express 是一个为Node.js设计的web开发框架,它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用,和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...
手游刚开服就被攻击怎么办?如何防御DDoS?
开服初期是手游最脆弱的阶段,极易成为DDoS攻击的目标。一旦遭遇攻击,可能导致服务器瘫痪、玩家流失,甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案,帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...
springboot 百货中心供应链管理系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,百货中心供应链管理系统被用户普遍使用,为方…...
label-studio的使用教程(导入本地路径)
文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...
为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?
在建筑行业,项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升,传统的管理模式已经难以满足现代工程的需求。过去,许多企业依赖手工记录、口头沟通和分散的信息管理,导致效率低下、成本失控、风险频发。例如&#…...
基于当前项目通过npm包形式暴露公共组件
1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹,并新增内容 3.创建package文件夹...
【算法训练营Day07】字符串part1
文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接:344. 反转字符串 双指针法,两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...
人机融合智能 | “人智交互”跨学科新领域
本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...
【Linux系统】Linux环境变量:系统配置的隐形指挥官
。# Linux系列 文章目录 前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变量的生命周期 四、环境变量的组织方式五、C语言对环境变量的操作5.1 设置环境变量:setenv5.2 删除环境变量:unsetenv5.3 遍历所有环境…...
