Ir ao conteúdo
  • Cadastre-se

Dúvidas em associar Classes


Air-Gear

Posts recomendados

O exercício pede o seguinte:

20. Idem ao exercício anterior, com as seguintes modificações:

Na classe Livro, crie uma lista de autores ao invés de armazenar todos os

autores em uma única string. Também modifique a informação sobre a

editora que publicou o livro, passando agora a ter os seguintes dados

sobre cada editora: CNPJ, nome, endereço e telefone;

Crie uma classe de interface com o usuário com opções para cadastrar e

excluir livros (e editoras) de uma biblioteca, pesquisar por um livro

imprimindo seus dados e imprimir a relação de todos os livros.

Faça também um diagrama UML do sistema.

Então fiz esses programas:

public class Editora {

private String razaoSocial;

private String cnpj;

private String endereco;

public Editora (String razao, String cnpj, String endereco){

this.razaoSocial = razao;

this.cnpj = cnpj;

this.endereco = endereco;

}

public String getRazao(){

return razaoSocial;

}

public String getCnpj(){

return cnpj;

}

public String getEndereco(){

return endereco;

}

}

public class Autor {

private String nome;

private String cpf;

public Autor (String nome, String cpf){

this.nome = nome;

this.cpf = cpf;

}

public String getNome(){

return nome;

}

public String getCpf(){

return cpf;

}

}

import java.util.*;

public class Livro {

private String titulo;

private ArrayList autores;

private Editora editora;

public Livro (String titulo, Editora editora){

this.titulo = titulo;

this.editora = editora;

this.autores = autores;

}

public void adicionaAutor (Autor autor){

autores.add(autor);

}

public void adicionaAutor (String nome, String cpf){

adicionaAutor (new Autor (nome,cpf));

}

public String getTitulo (){

return titulo;

}

public ArrayList getAutores (){

return autores;

}

public Editora getEditora (){

return editora;

}

}

import java.util.*;

public class Biblioteca {

private ArrayList livros = new ArrayList();

public void adicionaLivro (Livro liv){

livros.add(liv);

}

public void adicionaLivro (String titulo, ArrayList autores, Editora editora){

livros.add(new Livro (titulo,autores,editora));

}

public boolean excluiLivro (String titulo){

Iterator i = livros.iterator();

while (i.hasNext()){

Livro liv = (Livro) i.next();

if (liv.getTitulo().equals(titulo)){

i.remove();

return true;

}

}

return false;

}

public Livro getLivro (String titulo){

Iterator i = livros.iterator();

while (i.hasNext()){

Livro liv = (Livro)i.next();

if (liv.getTitulo().equals(titulo))

return liv;

}

return null;

}

public ArrayList getListaLivros (){

return livros;

}

public static void main (String[]args){

Biblioteca bib = new Biblioteca();

Editora edit = new Editora ("Campus","111","R.ABC");

Autor aut1 = new Autor ("Anderson","222");

Autor aut2 = new Autor ("Alexandre","333");

Livro liv = new Livro ("POO",edit);

liv.adicionaAutor(aut1);

liv.adicionaAutor(aut2);

bib.adicionaLivro(liv);

}

}

Eu fiz o seguinte, cada classe eu fiz em um programa separado, a classe biblioteca é há que possui "public static void main(){" e há um erro que não consigo entender que é este aqui:

public void adicionaLivro (String titulo, ArrayList autores, Editora editora){

livros.add(new Livro (titulo,autores,editora)); //o erro está aqui!

}

Alguem pode explicar o que eu fiz de errado, por favor?

Link para o comentário
Compartilhar em outros sites

Sua classe livro tem o seguinte construtor


public Livro (String titulo, Editora editora){
this.titulo = titulo;
this.editora = editora;
this.autores = autores;
}

Ou seja, tem 2 argumentos: String e Editora.

Na linha onde há erro:


livros.add(new Livro (titulo,autores,editora));

...você tenta criar um objeto Livro com 3 argumentos. Isso que está errado.

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...