第22_4章 将模型转换为Java代码.ppt

第22_4章 将模型转换为Java代码

第 4 章 Transforming Model into Java Code 将模型转换为Java代码 SRS类图中的面对对象特性 在这一章中,我们将执行SRS的一个命令行驱动版本;接下来编写UML图的8个模块类: Course.java Person.java Professor.java ScheduleOfClasses.java Section.java Student.java Transcript.java TranscriptEntry.java 1. Person 类 首先,我们注意到UML框架图中,类的名字是斜体的,由此可知Person是抽象类。 public abstract class Person { Person 类(续) Person类的属性 private String name; private String ssn; Person类的构造函数 public Person(String name, String ssn) { setName(name); setSsn(ssn); } public Person() { setName(?); setSsn(???-??-????); } Person 类(续) Person类的get/set方法 public void setName(String n) { name = n; } public String getName() { return name; } public void setSsn(String ssn) { this.ssn = ssn; } public String getSsn() { return ssn; } Person 类(续) toString() public abstract String toString(); 这个方法确保:所有从Person 类衍生出来的类统一地用它们自己的具体版本覆盖这个抽象方法。 Person 类(续) display() public void display() { System.out.println(Person Information:); System.out.println(\tName: + getName()); System.out.println(\tSoc. Security No.: + getSsn()); } 2. Student 类 继承重用,抽象类扩展,委派 public class Student extends Person { Student类(续) Student类的属性 Student类有以下两种关联: attends, 与Section 类多对多关联 maintains, 与Transcript 类一对一关联 必须允许每个Student对象维持一个Transcript 对象的句柄和多个Section对象的句柄。 因此Student类的属性如下所示: private String major; private String degree; private Transcript transcript; private ArrayListSection attends; // 存放Section对象的容器 如果attends声明为 ArrayList型,我们可以用以下语句来验证一个Student 是否选修了特定的Section: if (attends.contains(someSection)) { ... 1. Student类的构造函数 public Student(String name, String ssn, String major, String degree) { super(name, ssn); setMajor(major); setDegree(degree); setTranscript(new Transcript(this)); attends = new ArrayList(); } public Student(String ssn) { ? ? ? ? this(TBD, ssn, TBD, TBD) } 2. Student 的get/set方法 3. display() public void display() { super.display(

文档评论(0)

1亿VIP精品文档

相关文档