社区
Java SE
帖子详情
关于面向对象的简单问题
whn1119
2010-03-19 03:13:57
初学面向对象 很多地方不是很理解
比如有三个类
Teacher:教授很多门Module
Module:包含多个Course(比如 实验课 习题课 等等)
Course
现在有一个操作 Teacher想在某一个Module里面增加一个Course, 假设这个操作为 AddCourse
那这个 AddCourse 的操作应该作为哪一个类的方法呢?还是这三个类都有这个方法?
希望多多指教 越详细越好 谢谢~!!!
...全文
114
13
打赏
收藏
关于面向对象的简单问题
初学面向对象 很多地方不是很理解 比如有三个类 Teacher:教授很多门Module Module:包含多个Course(比如 实验课 习题课 等等) Course 现在有一个操作 Teacher想在某一个Module里面增加一个Course, 假设这个操作为 AddCourse 那这个 AddCourse 的操作应该作为哪一个类的方法呢?还是这三个类都有这个方法? 希望多多指教 越详细越好 谢谢~!!!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
whn1119
2010-03-19
打赏
举报
回复
[Quote=引用 10 楼 dracularking 的回复:]
老师有所教课程属性,表明他任教有哪些课,可用集合表示
老师还可以添加课程,结果是增加了课程属性元素,就有addCourse方法
[/Quote]
谢谢 我更加清晰了!
Ark032425
2010-03-19
打赏
举报
回复
[Quote=引用 5 楼 xiesisi3 的回复:]
那么你首先得想清楚,AddCourse是一种能力,这种能力应该谁来具有呢?
是不是每个Teacher都可以加属于自己的Course?
但具体到每个不同的Teacher肯定是不同的Course,那么就可以把Teacher设计成接口或是抽象类,它有一个方法就是AddCourse.同样Course也是一样,因为可以具体到每一个Course,所以也可以设计成接口或抽象类。
[/Quote]
比较灵活的,可以有多种设计
whn1119
2010-03-19
打赏
举报
回复
[Quote=引用 5 楼 xiesisi3 的回复:]
那么你首先得想清楚,AddCourse是一种能力,这种能力应该谁来具有呢?
是不是每个Teacher都可以加属于自己的Course?
但具体到每个不同的Teacher肯定是不同的Course,那么就可以把Teacher设计成接口或是抽象类,它有一个方法就是AddCourse.同样Course也是一样,因为可以具体到每一个Course,所以也可以设计成接口或抽象类。
[/Quote]
我明白了,是我自己没弄清楚类和对象的概念。
非常感谢!
dracularking
2010-03-19
打赏
举报
回复
老师有所教课程属性,表明他任教有哪些课,可用集合表示
老师还可以添加课程,结果是增加了课程属性元素,就有addCourse方法
ifrancis
2010-03-19
打赏
举报
回复
典型的面向对象认识问题 楼主加油啊 java里面万事万物皆对象 你可以是个对象 我也是个对象 我们之间的距离也是个对象 你对我这个回帖的看法也可以是对象
TillPerfect
2010-03-19
打赏
举报
回复
面向对象,理解为面向实际生活场景来思考问题。面向对象是前辈们摸索多年总结出来的设计思想,就是想让编程尽可能的简单易懂些。退后一步,不要凑在代码跟前去想怎么“面向对象”,要从一个设计的高度来看待问题。额。。。这个要慢慢体会,可能我描述的不够好。。。
xiesisi3
2010-03-19
打赏
举报
回复
其实面向对象,就是把事物想成一个一个的类,然后类方法就是那个事物能做什么,属性就是那个事物是什么样的。
poFate
2010-03-19
打赏
举报
回复
这个用观察者模式较好。。。
xiesisi3
2010-03-19
打赏
举报
回复
那么你首先得想清楚,AddCourse是一种能力,这种能力应该谁来具有呢?
是不是每个Teacher都可以加属于自己的Course?
但具体到每个不同的Teacher肯定是不同的Course,那么就可以把Teacher设计成接口或是抽象类,它有一个方法就是AddCourse.同样Course也是一样,因为可以具体到每一个Course,所以也可以设计成接口或抽象类。
poFate
2010-03-19
打赏
举报
回复
[Quote=引用 3 楼 whn1119 的回复:]
引用 2 楼 xiesisi3 的回复:
Module:包含多个Course(比如 实验课 习题课 等等)
既然都是这样了,说明Module这个类就是专门用来盛装Course的,当然无论是增加Course还是减少都应该是Module这个类来做
可如果没有这个Module类 只有Teacher类和Course类的话 AddCourse这个方法应该放在哪儿呢?
谢谢!
[/Quote]
如果这样那就应该放在Teacher里面,但是Teache里面必须有module字段
即使这样module也必须有一个addCourse()形式的方法
如果有多个module的话 就不好办了
whn1119
2010-03-19
打赏
举报
回复
[Quote=引用 2 楼 xiesisi3 的回复:]
Module:包含多个Course(比如 实验课 习题课 等等)
既然都是这样了,说明Module这个类就是专门用来盛装Course的,当然无论是增加Course还是减少都应该是Module这个类来做
[/Quote]
可如果没有这个Module类 只有Teacher类和Course类的话 AddCourse这个方法应该放在哪儿呢?
谢谢!
xiesisi3
2010-03-19
打赏
举报
回复
Module:包含多个Course(比如 实验课 习题课 等等)
既然都是这样了,说明Module这个类就是专门用来盛装Course的,当然无论是增加Course还是减少都应该是Module这个类来做
不姓贾_请叫我甄先生
2010-03-19
打赏
举报
回复
当然是Module里有AddCourse()方法
public void AddCourse(){
//-TODO......
}
打造最漂亮的串口通讯调试助手 基于C# WPF .net4开发 附源码带详细注释
WPF界面全部用XAML语言手打,基本都是Grid布局,VS很强大,编程很舒服便捷,源码有很详细的注释。 * 学C#和WPF编的第一个软件,整个编程过程,通过百度不断学习 * 作者是做硬件的,只为学习做
简单
的上位机程序,C#
简单
,开发效率高,所以选择C# * 以前没有PC端软件编程经验,所以该编程思想继承于单片机编程思想,未用到
面向对象
和WPF的精髓,不建议模仿,仅供参考 * 实际上到现在我还不知道
面向对象
是什么意思 ̄□ ̄|| * 欢迎反馈BUG QQ45213212 E-MAIL lincolne@126.com 图片看这里 http://blog.csdn.net/q45213212/article/details/35265773
简单
的扑克牌游戏程序
一个
简单
的扑克牌游戏程序.
Swift中文教程DOC版
Apple Swift编程语言入门教程 中文版本文档。主要通过实例讲解基础的语法
C#学编程从入门到实践【PPT课件】
C#学编程从入门到实践,免费下载,ppt格式,共521页。是一份不错的C#学习资料,内附有一些学习的教程,欢迎大家下载学习!
JavaScript教程--从入门到精通(PPT精简版)
JavaScript教程--从入门到精通PPT 精简版
Java SE
62,630
社区成员
307,264
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章