Ir ao conteúdo
  • Cadastre-se
Entre para seguir isso  
Air-Gear

Dúvidas em associar Classes

Recommended Posts

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?

Compartilhar este post


Link para o post
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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora
Entre para seguir isso  





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×