首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 开源 FAQ 第二书店 博文视点 程序员
频道: 研发 数据库 中间件 信息化 视频 .NET Java 游戏 移动 服务: 人才 外包 培训
    图书品种:235680
       
热门搜索: ASP.NET Ajax Spring Hibernate Java

现在,我们回头看两种对象——学生和课程——探讨它们各自的行为。学生的行为(当然是与大学学习相关的)可能包括

l      选修一门课程

l      退选一门课程

l      选择主修方向(major field of study)

l      选择导师(advisor)

l      告诉你他(或她)的GPA

l      告诉你他(或她)是否已选修某门课程,如果选修了该门课程,是在什么时候修的,哪位教授上课,以及得到的分数。

有些难以想象,类似课程这样的无生命的概念性对象会做出什么行为,但如果把课程当作一种生命体,可以想见一门课程的行为会是

l      允许学生选修

l      判断指定的学生是否已经选修

l      告诉你已经有多少学生选修,反过来说,还有多少名额空缺

l      告诉你需要什么先修课程

l      告诉你课程有效学时是多少

l      告诉你本学期哪位教授将上这门课

等等。

当特指软件对象时,我们把对象的行为或称操作operations),定义为用以访问对象的attribute(数据)和修改/维护attribute值(数据)的方法。

花点时间回顾上文所列的学生行为,可以看到每种操作都与学生的一个或多个attribrte有关。例如:

l      “告诉你他(或她)的GPA”与“访问学生的GPA attribute”相关

l      “选择主修方向”与“修改学生的主修attribute”相关

l      “选修一门课程”与“修改学生的当前课程列表”相关

我们已经知道,对象的attribute值集合定义了对象的状态,现在可以看到,操作能够修改对象状态。例如,定义一位尚未选定主修方向的学生为“未选定方向”的学生。调用这样一个学生对象的“选择主修方向”方法,将导致对象更新其“主修”attribute,反映出刚选定的主修方向。然后,学生的状态就从“未选定方向”变更到“已选定方向”。

从另一种角度来考虑,对象操作也可以看作是可以向对象要求提供的服务。例如,课程对象提供一种服务,该服务提供当前选修该课程的学生列表(花名册)。

在用C#这样的语言编写对象时,使用更严格的编程语言术语“method方法)”来表示“操作”,而术语“操作”则被用于表示概念意义上的行为。

查看所有评论(0)条】

最近评论



正在载入评论列表...
热点评论