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

在初次谈及与Student类相关的attribute和方法时,我们曾提到,该类的一些attribute可以用C#语言的预定义类型来表示,但另外一些(advisorcourseLoadtranscript)则没有做说明应该怎样处理。现在我们来把学到的关于预定义类型的知识付诸使用。

我们把Student类的advisor attribute声明为用户定义类型Professor(见表3-2),而不是简单地用string类型来表示导师姓名。

3-2  Student类的attribute,第2

attribute         类型

name        string

studentID       string

birthdate       DateTime

address     string

major       string

gpa         double

advisor     Professor

courseLoad  ???

transcript ???

通过声明advisorattribute的类型为Professor——即,使advisor attribute成为引用变量——使得Student对象得到一个真实Professor对象的句柄,该对象表示学生的导师。对于courseLoadtranscript类型,稍后再作理会。

现在轮到Professor类了,表3-3列出了该类的attribute定义。

3-3  Professor 类的attribute

attribute                       类型

name                    string

employeeID              string

birthdate                   DateTime

address                 string

worksFor string            (Department)

studentAdvisee                  Student

teachingAssignments ???

Professor类的studentAdvisee attribute声明为Student类型—即,使studentAdvisee attribute成为引用变量—我们让Professor对象能够抓住/指向一个Student对象,该对象表示教授指导的学生。teachingAssignments attribute类型放到后面讨论。

Professor类的方法大概如下所示:

1.  TransferToDepartment

2.  AdviseStudent

3.  AgreeToTeachCourse

4.  AssignGrades

关于Professor类,需要说明几点:

l      一位教授应该会同时指导数名学生,而类似studentAdvisee这样的attribute只能指向单个Student对象,不十分管用。我们将在第6章谈到群集(collections)时讨论处理这种情况的技术,它对于定义Professor类的teachingAssignments attributeStudent类的courseLoadtranscript attribute非常有用。

l     worksFor attribute表示教授任职的院系。可以选择使用简单的string类型来表示院系名,如“MATH(数学系)”;或将其定义为指向一个Department对象的引用变量,特别地,Department对象代表“真实世界”中的数学系。当然,这需要定义一个名为Department的新类,以及其attribute和方法。如你将在本书第二部分所看到的那样,是否应该创造用来表示真实世界概念/抽象模型的用户定义类型/类,并非简单的决定。

查看所有评论(0)条】

最近评论



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