如何在 JAVA 中实现此 Class 图?
How to implement this Class Diagram in JAVA?
我正在关注一个 Class 项目图。我对这部分感到困惑:
我应该如何创建一个包含 Class 的变量?
(不知道说清楚没有,不过这none个类是主要的)
请记住,我是一名学生,而且我以前从未需要遵循任何 Class 图。
您可以像创建任何其他变量一样为 class 创建变量:
// what you're probably used to:
int myInt;
假设你有一个 class Usuario
如图所示,你可以像这样为它创建一个变量:
Usuario usuario;
不确定你在问什么,但你甚至可以有一个 class 的实例,指向相同 class 的其他实例,例如节点:
public class Node {
public Node prev;
public Node next;
public Node(Node prev, Node next) {
this.prev = prev;
this.next = next;
}
}
会是这样的:
class Usuario {
public Usuario() {
// TODO Auto-generated constructor stub
}
}
class Historico {
private Usuario responsavel;
public Historico() {
// TODO Auto-generated constructor stub
}
public Usuario getResponsavel() {
return responsavel;
}
public void setResponsavel(Usuario responsavel) {
this.responsavel = responsavel;
}
}
public class Demo {
public static void main(String[] args) {
Usuario u = new Usuario();
Historico h = new Historico();
h.setResponsavel(u);
}
}
Class 图表显示了 Historico 和 Usuario 之间的组合。这是一个 has 关系(Historico 有一个 Usuario)。
您可以像这样定义零参数化构造函数:
class Usuario {
public Usuario() {
}
}
如果没有定义构造函数,编译器将添加零参数构造函数,而如果没有定义构造函数,则会生成字节代码。
您可以这样定义组合:
public class Historico {
private Usuario responsavel;
}
完整代码:
public class Usuario {
String login;
String senha;
/**
* @return the login
*/
public String getLogin() {
return login;
}
/**
* @param login the login to set
*/
public void setLogin(String login) {
this.login = login;
}
/**
* @return the senha
*/
public String getSenha() {
return senha;
}
/**
* @param senha the senha to set
*/
public void setSenha(String senha) {
this.senha = senha;
}
}
class 历史:
public class Historico {
private Usuario responsavel;
private String dataatualizacao;
private String descricao;
/**
* @return the dataatualizacao
*/
public String getDataatualizacao() {
return dataatualizacao;
}
/**
* @param dataatualizacao the dataatualizacao to set
*/
public void setDataatualizacao(String dataatualizacao) {
this.dataatualizacao = dataatualizacao;
}
/**
* @return the descricao
*/
public String getDescricao() {
return descricao;
}
/**
* @param descricao the descricao to set
*/
public void setDescricao(String descricao) {
this.descricao = descricao;
}
public void setResponsavel(Usuario responsavel) {
this.responsavel = responsavel;
}
}
我正在关注一个 Class 项目图。我对这部分感到困惑:
我应该如何创建一个包含 Class 的变量? (不知道说清楚没有,不过这none个类是主要的)
请记住,我是一名学生,而且我以前从未需要遵循任何 Class 图。
您可以像创建任何其他变量一样为 class 创建变量:
// what you're probably used to:
int myInt;
假设你有一个 class Usuario
如图所示,你可以像这样为它创建一个变量:
Usuario usuario;
不确定你在问什么,但你甚至可以有一个 class 的实例,指向相同 class 的其他实例,例如节点:
public class Node {
public Node prev;
public Node next;
public Node(Node prev, Node next) {
this.prev = prev;
this.next = next;
}
}
会是这样的:
class Usuario {
public Usuario() {
// TODO Auto-generated constructor stub
}
}
class Historico {
private Usuario responsavel;
public Historico() {
// TODO Auto-generated constructor stub
}
public Usuario getResponsavel() {
return responsavel;
}
public void setResponsavel(Usuario responsavel) {
this.responsavel = responsavel;
}
}
public class Demo {
public static void main(String[] args) {
Usuario u = new Usuario();
Historico h = new Historico();
h.setResponsavel(u);
}
}
Class 图表显示了 Historico 和 Usuario 之间的组合。这是一个 has 关系(Historico 有一个 Usuario)。
您可以像这样定义零参数化构造函数:
class Usuario {
public Usuario() {
}
}
如果没有定义构造函数,编译器将添加零参数构造函数,而如果没有定义构造函数,则会生成字节代码。
您可以这样定义组合:
public class Historico {
private Usuario responsavel;
}
完整代码:
public class Usuario {
String login;
String senha;
/**
* @return the login
*/
public String getLogin() {
return login;
}
/**
* @param login the login to set
*/
public void setLogin(String login) {
this.login = login;
}
/**
* @return the senha
*/
public String getSenha() {
return senha;
}
/**
* @param senha the senha to set
*/
public void setSenha(String senha) {
this.senha = senha;
}
}
class 历史:
public class Historico {
private Usuario responsavel;
private String dataatualizacao;
private String descricao;
/**
* @return the dataatualizacao
*/
public String getDataatualizacao() {
return dataatualizacao;
}
/**
* @param dataatualizacao the dataatualizacao to set
*/
public void setDataatualizacao(String dataatualizacao) {
this.dataatualizacao = dataatualizacao;
}
/**
* @return the descricao
*/
public String getDescricao() {
return descricao;
}
/**
* @param descricao the descricao to set
*/
public void setDescricao(String descricao) {
this.descricao = descricao;
}
public void setResponsavel(Usuario responsavel) {
this.responsavel = responsavel;
}
}