怎么设计好类?

java练习——情景模拟,模拟学校里的某几个情景 题目: 定义普通人、老师、班主任、学生、学校这些类,提供适当的成员变量、方法用于描述其内部数据和行为特征,并提供主类运行。要求尽量抽象,封装好各个对象的职责。  场景1:学生在学校上课  场景2:老师给学生布置作业  场景3:班主任要求学生参加学校的文体比赛 对于这道题,我定义了普通人,学生,老师,班主任,学校,作业,课程,活动这几个类 作业类: public class Hom 阅读详情

 

定义普通人、老师、班主任、学生、学校,提供适当的属性、方法用于描述其内部数据和行为方式,要求有良好的封装。

 

class Person {
 private  String name;
 private  int age;

。。。省略set/get
 }

class Teacher extends Person{
}

class Student extends Person{
}

class  BanZhuRen  extends Teacher{
}
class ClassRoom{
 List<Teacher> t;
 List<Student> s;
 List<BanZhuRen> ban;

。。。省略set/get

}
class School{
 private List<ClassRoom> classroom; 
}

或者把BanZhuRen  当作Teacher 的属性

如下:

class Teacher extends Person{

   private BanZhuRen banzhuren ;
}

?这两种设计方式哪种好啊?求各位各抒己见》

组合实现(普通人,学校,学生,老师,班主任) //-------------------------------------------------------------------普通人----------------------------------------------------------- //----------------------------------------------------------------- 阅读详情

相关推荐

设计一个名为Triangle的类来扩展GeometricObject类。

设计一个名为Triangle的类来扩展GeometricObject类。该类包括: 三个名为side1、side2和side3的double数据域表示这个三角形的三条边,他们的默认值是1.0. 一个无参构造方法创建默认的三角形。 一个能创建带指定side1,side2和side3的三角形构造方法。 所有三个数据域的访问器方法。 一个名为getArea()的方法返回这个三角形的面积。 一个名为ge...

qq_21274765的博客 8921

面向对象学习第四节

1.编写一个学生类,提供name、age、gender、phone、address、email成员变量,且为每个成员变量提供setter、getter方法。为学生提供默认的构造器和带所有成员变量的构造器。为学生提供方法,用于描绘吃、喝、玩、睡等行为。 2.利用第1题定义的Student类,定义一个Student[]数组保存多个Student对象作为通讯录数据。程序可通过name、email、ad...

xiao_chainiao的博客 3000

编程规则 - 3 类设计规则 (2) 类设计的基本要求

3.3 类设计的基本要求     上面讲述了系统设计和类设计的基本规则,理论性较强,你也许一段时间难以理解好,下面介绍类设计的基本要求,更加易于实践,你需要认真做好,上面的那些规则你可以在实践过程中逐步理解,软件设计是一门实践科学,纸上谈兵永远难以得其门而入,实践是最好的老

探讨软件之道 -- 纪青君的博客 3170

如何设计一个类

设计一个优秀的类,需要兼顾代码的清晰性、复用性和可维护性。遵循单一职责原则、封装性、高内聚低耦合等面向对象的设计思想,不仅能够提升代码质量,还能更高效地应对复杂的业务需求。在实际开发中,结合具体的场景和需求,灵活运用这些原则,就能设计出既实用又优雅的类。免费征集 | 自动化需求还在为重复性工作头疼?数据处理耗时过长?我们正在免费征集 自动化需求,无论是文件整理、报表生成、邮件处理还是网页爬取,只要您有需求,我愿意免费为您编写脚本,让繁琐任务一键完成!🎯 我们能帮您做什么?

游客520 1164

ENSP之配置静态路由

ENSP之配置静态路由 两台路由器两台PC 拓扑图如下: 配置AR1线路上的两条IP地址 配置AR2线路上的两条IP地址 3.AR2上 配置静态IP 路由 AR1上 配置静态IP 路由 设置两台PC 的IP地址 网关 PC1 PC2 全部配置好了之后 现在测试PC1是否ping 得通PC2 在命令行输入 成功的话如下图 ...

浪友与泪的博客 3545

遗传算法解整数规划IntCon

x = ga(fun,nvars,A,b,[],[],lb,ub,nonlcon,IntCon) IntCon就是代表整数的参量,描述的是哪几个自变量是0-1整数变量。比如navrs设置有4个变量,设置IntCon为[2 3],代表第2和第3个变量是整数。 再比如设置IntCon=2:2:nvars,代表偶数项的变量是整数。 值得注意的是一旦设置了非空的IntCon,则Aeqandbeqmust be an empty entry ([]), andnonlconmust re...

jianti9962的博客 9220

类的设计概述

类的设计概述 编写程序前的设计与思考1.分析业务,从业务流和业务规则中归纳出领域对象.这些对象一般放在src/com/yourname/domain下.2.根据业务,考虑为领域对象提供完整的服务需要那些服务类.这些对象一般放在src/com/yourname/service下.3.思考从输入开始,到输出结束,程序要运行正常,服务类需要那些属性和方法,这些成员代表什么意义具有什么价值,方法的

CherryPeng的专栏 1259

EZ-USB-FX3 slavefifo调试

最近使用fx3-usb-3.0调试slave fifo的传输,期间遇到许多难以理解的问题。在这里分享给大家,希望可以少走一些弯路,我自己是这样走过来的。 1,首先去官网下载原始的参考设计,并安装所提供的SDK软件:FX3SDKSetup_1.3.4.exe 2,接着把参考设计文档AN65974阅读一遍,分别创建新的SDK工程和FPGA工程。如果使用的原厂的开发板,那么可以按照文档提示,可以很顺畅的跑完整过测试。否则需要匹配自己的硬件,做针对性的更改和移植,而我走的是后一条路,于是开始了漫长的调试之路。.

YDY5659150的专栏 3630

好的类设计

在软件开发中,类设计是一个非常重要的环节,它决定了代码的可维护性和可扩展性,一个好的类设计可以使代码更易于理解、维护和扩展,同时减少错误的发生。然而,在实际开发中,由于各种原因,我们经常会遇到一些设计不合理、依赖关系复杂、难以维护的类,这些类不仅会影响代码的质量,还会降低开发效率。

D0126_的博客 514

RK3566/RK3568 Android 11 无操作自动隐藏导航栏、底部上拉显示导航栏

RK3566/RK3568 Android 11 定制大全在系统服务中增加无操作自动隐藏导航栏方法,在上层app动态调用无操作自动隐藏导航栏方法,系统会在5秒无操作后自动隐藏导航栏,隐藏导航栏后从底部上拉可显示导航栏,设备关机和重启后也能继续生效。

qq_23921815的博客 1259

matlab处理las点云(1)——las/laz格式解析【2024最新版】

matlab中的las/laz格式解析。博客长期更新,本文最近一次更新时间为:2024年11月9日。

点云侠的博客 8460

类的设计

一、类的基础:抽象数据类型ADTADT最大的益处是 实现细节隐藏,把关键数据隐藏在接口内,数据改动不会影响接口函数。把常用的底层数据类型创建为ADT,并使用这些ADT,而不需要使用底层数据(底层数据操作在ADT内部实现),也就是说尽可能的使用更高的抽象层次。二、良好的类接口1、类的接口应该具有一致的抽象层次。即每个类的接口仅能实现一个ADT的操作,包含多个ADT的操作功能的类都是不明确的类接口。

老徐的博客 2305

Unitree G1仿人机器人协同搬箱:从仿真搭建到多机协同部署完整指南

Unitree G1仿人机器人协同搬箱技术方案摘要 本文提供了一套完整的Unitree G1人形机器人协同搬箱解决方案,涵盖从仿真环境搭建到多机协同部署的全流程。核心内容包括: 双仿真环境配置:同时搭建Gazebo+ROS Noetic基础仿真环境与Isaac Gym+Mujoco高性能RL训练环境,支持Sim2Sim迁移验证 训练框架搭建:详细配置unitree_rl_gym框架,提供PPO算法定制化训练流程和参数优化方案 数据集应用:整合宇树开源真机数据集(UnifoLM-WBT-Dataset)~~~

huanghm88的专栏 471

类的设计,类应该怎么设计?

突然最近在设计类的时候,有所感悟,但是肯定不全,记录以下。 类的设计具有包含性,怎么体会这个点 举个例子,比如我们在开发的时候要定义一些状态量去设置看这个类的变化,其实从其他角度来看,我们设计这个类的时候,是不是应该考虑类里有这个状态量,作为它的属性呢? 比如:机票作废这个功能,,作废这个状态呢怎么去设计呢? 普通工程师设计:人去作废机票。高级工程师设计:机票有作废的这个属性。 后期会继续补充自己的心得。 ...

pvmsmfchcs的博客 743

AgentScope 2.0 源码解析-工具系统解读:从内置工具到权限管控的完整实践

本文深入解析AgentScope 2.0工具系统的完整架构,覆盖内置工具集(文件读写、命令执行、搜索匹配)、MCP协议集成(STDIO/HTTP双传输、客户端封装、工作空间网关)、工具包管理与动态分组、权限引擎的多级决策机制(危险路径保护、只读识别、模式控制),以及自定义工具开发流程。通过分层架构图和时序图直观展示组件协作关系,结合安全最佳实践与故障排除指南,为开发者提供从工具使用到安全管控的全链路参考。

program哲学 567

【变化检测】变化检测相关数据集+代码+论文合集

光学影像变化检测领域数据集(有label的,无label的)、高光谱影像变化检测领域数据集、3D变化检测领域数据集、传统变化检测算法、深度学习变化检测算法、SAR变化检测算法、高光谱变化检测算法论文及代码等资源。

向上生长的程序媛的博客 2089

设计一个学生类&班级类

第一题 设计一个学生类 属性:姓名、学号、年龄、成绩 设计一个班级类要求:实现向班级中添加学生、删除学生、查看学生、按照指定条件排序 属性:班级代号,所有学生 需要使用 calss, __int__, __str__, sort, append, dict, list, remove, for in class Stu: # 设置学生基础属性 ...

weixin_33756418的博客 3593

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

java学生类设计_学生类设计

7-2 学生类设计 (20分)设计一个类Student,并在Main类中生成Student类对象进行测试1.对于Student类,设计私有属性name和age,并为每一个成员变量name和age设计其setXXX()和getXXX()方法,并对于setAge方法,如果age被赋值为<=6,则age值为7,其他为参数值。2.对于Student类,设计无参构造方法,在构造方法中为age赋值为7,...

weixin_31054839的博客 3333

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

java的类的设计_Java 类设计技巧

摘自《Java核心技术》卷I:基础知识 p140 第4章对象与类 - 类设计技巧1)一定将数据设计为私有。最重要的是:绝对不要破坏封装性。有时候,需要编写一个访问器方法或更改器方法,但是最好还是保持实例域的私有性。很多惨痛的经验告诉我们,数据的表示形式很可能会改变,但它们的使用方式却不会经常发生变化。当数据保持私有时,它们的表示形式的变化不会对类的使用者产生影响,即使出现bug也易于检测。2)一定...

weixin_30767895的博客 788

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

设计一个BankAccount类

设计一个BankAccount类 设计一个BankAccount类,这个类包括: (1)一个int型的balance表时账户余额。 (2)一个无参构造方法,将账户余额初始化为0。 (3)一个带一个参数的构造方法,将账户余额初始化为该输入的参数。 (4)一个getBlance()方法,返回账户余额。 (5)一个withdraw()方法:带一个amount参数,并从账户余额中提取amount指定的款额。 (6)一个deposit()方法:带一个amount参数,并将amount指定的款额存储到该银行账户上。 设

caixiaobai123的博客 1万+

初学呐喊!——Java类的设计编写以及使用设计好的类

第二单元 第一部分——类设计和编写 特别提醒 软件开发:先设计,再开发; 先思考设计,根据设计写代码 1.如何设计类 用什么工具? EA(Enterprise) Architecture VP Rational Rose StarUML:搜索UML工具 谁开设计? 系统分析师,系统分析员:软考中级 1.1设计类 1.面向的编程主线(步骤) 写类,创造对象,对象调用方法 2.什么是类? 类就是类型的缩写/简称:类是抽象的,不具体,不明确。同类事物的概括; :手机,学生,鼠标,电脑,桌子 3.什么是对象

weixin_48318054的博客 503

关于类的设计

看了robert的《敏捷软件开发》后真不知道类怎么设计比较好,虽然符合srp(单一责任原则)和isp(接口分离)原则会给我带来灵活。可是会产生大量的类和接口。如果是设计类库,也许不是个好办法。看来rober是不喜欢胖胖的类了。

小城序员 1476

UML类图设计

设计模式(2):UML类图 UML类图   解释UML类图: 1.       首先看“动物”矩形框,它代表一个类。该类图分为三层,第一层显示类的名称,如果是抽象类就要用斜体显示。第二层是类的特性,通常就是字段和属性。第三层是类的操作,通常是方法和行为。注意前面的符号,‘+’表示public, ‘—’ 表示private, ‘#’表示protected.

1万+

Java如何设计一个类

1. 类和成员最小化可访问性 问题 要区分设计良好的模块和设计不好的模块,最重要的因素在于,这个模块对于外部其他模块而言,是否隐藏其内部数据和其他细节。设计良好的模块会隐藏所有的实现细节,把它的API与它的实现清晰的隔离起来,模块之间只通过它们的API进行通信,那么,在设计类和成员时有怎样的设计原则? 解决 设计类和成员有这样几个基本原则: 尽可能使每个类或者成员不被外界访问,应该使用与你正在编写的软件的对应功能相一致的、尽可能最小的访问级别;对于成员(域、方法、嵌套类或者嵌套接

Mick_^_^的博客 4400
上一篇: java Swing
下一篇: LinkedList实现栈,队列
SOMECT
博客等级 码龄15年 11粉丝 35原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值