编辑: 星野哀 2019-07-15

如果不想让应用程序的源代码使用它,可以将其定义为 private.某些 JDO 实现可 以替你产生一个默认的构造函数, 不过此功能会视产品的类型而异, 而且是无法移植的. 例1-2提供 Actor 类的源代码.在此展示用的范例中,所有的演员都有可辨识他们的唯 一的名字 (这可以是与本名不同的艺名) . 因此, 我们用一个String来表示演员的名字. 每位演员可以扮演一个以上的角色,而roles 成员则描述于 Actor端Actor与Role之 间的关系.在行 ? 的批注只是提供说明,在JDO 中没有任何功能上的用途.行?及行 ? 的addRole()与removeRole()方法则用来为应用程序维护 Actor 实例与其相关的 Role 实例间的关系. 例1-2:Actor.java package com.mediamania.prototype;

import java.util.Set;

import java.util.HashSet;

import java.util.Collections;

public class Actor { private String name;

private Set roles;

// 数据类型:Role private Actor() {} public Actor(String name) { this.name = name;

roles = new HashSet();

} public String getName() { return name;

} public void addRole(Role role) { roles.add(role);

} public void removeRole(Role role) { roles.remove(role);

? ? ?

第一章

14 6 } public Set getRoles() { return Collections.unmodifiableSet(roles);

} } 最后,例1-3 列出了 Role 类的源代码.此类为 Movie与Actor间的关系的对象模型,并 包括在影片中由该演员所扮演的特定角色的名称. Role 构造函数会初始化指向Movie 与Actor 的引用,并且借着调用在 Movie 及Actor 类中都有定义的 addRole()更新 此关系中的另一端. 例1-3:Role.java package com.mediamania.prototype;

public class Role { private String name;

private Actor actor;

private Movie movie;

private Role() {} public Role(String name, Actor actor, Movie movie) { this.name = name;

this.actor = actor;

this.movie = movie;

actor.addRole(this);

movie.addRole(this);

} public String getName() { return name;

} public Actor getActor() { return actor;

} public Movie getMovie() { return mov........

下载(注:源文件不在本站服务器,都将跳转到源网站下载)
备用下载
发帖评论
相关话题
发布一个新话题