社区
Java SE
帖子详情
关于面向对象的简单问题
whn1119
2010-03-19 03:13:57
初学面向对象 很多地方不是很理解
比如有三个类
Teacher:教授很多门Module
Module:包含多个Course(比如 实验课 习题课 等等)
Course
现在有一个操作 Teacher想在某一个Module里面增加一个Course, 假设这个操作为 AddCourse
那这个 AddCourse 的操作应该作为哪一个类的方法呢?还是这三个类都有这个方法?
希望多多指教 越详细越好 谢谢~!!!
...全文
105
13
打赏
收藏
关于面向对象的简单问题
初学面向对象 很多地方不是很理解 比如有三个类 Teacher:教授很多门Module Module:包含多个Course(比如 实验课 习题课 等等) Course 现在有一个操作 Teacher想在某一个Module里面增加一个Course, 假设这个操作为 AddCourse 那这个 AddCourse 的操作应该作为哪一个类的方法呢?还是这三个类都有这个方法? 希望多多指教 越详细越好 谢谢~!!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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开发 附源码带详细注释
* 以前没有PC端软件编程经验,所以该编程思想继承于单片机编程思想,未用到
面向对象
和WPF的精髓,不建议模仿,仅供参考 * 实际上到现在我还不知道
面向对象
是什么意思 ̄□ ̄|| * 欢迎反馈BUG QQ45213212 E-MAIL ...
Swift中文教程DOC版
3.
面向对象
和面向过程的功能:Swift 引入了很多新功能和结合
面向对象
和面向过程的功能。 4. 友好的编程语言:Swift 是工业级品质的系统编程语言,却又像脚本语言一样的友好。 5. 支持 playground:Swift 支持 ...
JavaScript教程--从入门到精通(PPT精简版)
* Java 是一种真正的
面向对象
的语言,即使是开发
简单
的程序,必须设计对象。 * JavaScript 是一种基于对象(Object Based)和事件驱动(Event Driver)的编程语言。 五、解释和编译 * Java 的源代码在传递到客户端...
面向对象
编程与面向过程编程的基本区别
面向对象
:
面向对象
编程(Object Oriented Programming,
面向对象
程序设计)的主要思想是把构成
问题
的各个事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙一个事物在整个解决
问题
的步骤中的...
面向对象
与面向过程的本质的区别
前言: 如果你很想搞明白
面向对象
是什么,面向过程是什么,或者说二者之间的区别是什么,那么就花费一点...
面向对象
是把构成
问题
事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个
Java SE
62,624
社区成员
307,283
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章