如何在 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;
    }
}