6
respostas

Como implementar esse cadastro?

Pessoal estou quebrando a cabeça aqui pra fazer o backend de um projeto, preciso criar um cadastro pra livros, mas na cllasse livro implementar a editora que é um tipo da classe cadastro,

//codigo omitido

public abstract class Cadastro {

private Integer id;
private String nome;
private Long telefone;
private String email;



public Cadastro(int id, String nome, Long telefone, String email) {
    this.id = id;
    this.nome = nome;
    this.telefone = telefone;
    this.email = email;
}

//codigo omitido

--- o ponto é que não sei como inicializar esse cadastro dentro da classe livro pra quando eu for criar o objeto poder definir a editora. alguém pode ajudar?

//codigo omitido

public class Livro extends Produto {

private Integer paginas;
private String autor;
private Cadastro editora;

public Livro(int id, String codigoDeBarras, String titulo, double valorVenda, int paginas, String autor) {
    super(id, codigoDeBarras, titulo, valorVenda);
    this.paginas = paginas;
    this.autor = autor;

}

public Cadastro getEditora() {
    return editora;
}

public void setEditora(Cadastro editora) {
    this.editora = editora;
6 respostas

Bom dia Leonardo!

Um primeiro ponto: eu trocaria o nome da classe Cadastro para Editora. Assim, é mais facil identificar.

Para resolver o seu problema, você pode fazer de duas formas:

01 - Receber todos os dados:

public Livro(int id, String codigoDeBarras, String titulo, double valorVenda, int paginas, String autor, int id, String nome, Long telefone, String email) {
    super(id, codigoDeBarras, titulo, valorVenda);
    this.paginas = paginas;
    this.autor = autor;
    Cadastro cadastro = new Cadastro (id, nome, telefone, email).
    setEditora(cadastro);
}

Opção 2 - receber o objeto pronto:

public Livro(int id, String codigoDeBarras, String titulo, double valorVenda, int paginas, String autor, Cadastro cadastro) {
    super(id, codigoDeBarras, titulo, valorVenda);
    this.paginas = paginas;
    this.autor = autor;
    setEditora(cadastro);
}

Na segunda opção, quem chama o new Livro(xxxx), antes, precisa fazer um new Cadastro(yyyy), e enviar a instancia para o new Livro(xxxx).

Bons estudos!

O problema é que no diagrama o cadastro também é usado pra cliente de compra e artista do produto cd.

Bom dia!

Crie classes Cliente, Artista, Editora, que estendam da classe cadastro.

Assim, você consegue segmentar melhor sua implementação, e a forma de construção funciona da mesma forma.

Eu queria fazer isso também, mas diagrama que o professor me passou pediu pra usar esses dados como atributos das classes, exemplo : Na classe livro. // Private Cadastro editora; //

Bom dia.

Se o Cliente, Artista, Editora, estenderem da classe cadastro, vai funcionar como eu passei anteriormente.

Você vai ter uma private Cadastro editora.

Obrigado amigo! Vou tentar implementar aqui, se não der certo volt aqui novamente kkkkkkk