[RESOLVIDO] chamar valores através de solicitação ao usuario. OO

Bom dia pessoal,

Alguém poderia me ajudar, preciso fazer um método que receba um valor, de um livro por exemplo, e exiba assim todos os dados deste livro.
Tenho a classe livro, com get e set conforme os atributos que o for está setando.

[code]class Biblioteca{
public static void main( String[] args){
Livro livro = new Livro();
livro.setQuantidadeDeLivros( Short.parseShort(JOptionPane.showInputDialog("Digite a quantidade de livros que deseja salvar: ")));

	Livro[] livros = new Livro[livro.getQuantidadeDeLivros()];
	
	for(int i=0; i<livro.getQuantidadeDeLivros(); i++){
		livros[i] = new Livro();
		livros[i].setIsbn(Integer.parseInt(JOptionPane.showInputDialog( "Digite o ISBN do livro "+ (i+1) +": ")));
		livros[i].setTitulo(JOptionPane.showInputDialog( "Digite o titulo do livro "+ (i+1) +": "));
		livros[i].setAutor(JOptionPane.showInputDialog( "Digite o nome do autor do livro "+ (i+1) +": "));
		livros[i].setQuantidadeDePaginas(Short.parseShort(JOptionPane.showInputDialog( "Digite a quantidade de paginas do livro "+ (i+1) +": ")));
	}
	
	for( Livro livroCorrente : livros ){
		livroCorrente.exibir();
	}
	
	procurar();
}

// FAZER UM MÉTODO AQUI FORA.
public static void procurar(){
	//Livro livro = new Livro();
	Integer valor = Integer.parseInt(JOptionPane.showInputDialog( "Digite o valor do ISBN que quer chamar: " ));
	for(int i=0;  ; i++){
}

}[/code] >

Simplesmente faça isso dentro da classe Livro:

public class Livro
{
   //..Atributos e Métodos.....

   @Override
   public String toString()
  {
      String valor = "ISBN: "+this.isbn
                         +"\nTítulo: "+this.titulo
                         +"\nAutor: "+this.autor
                         +"\nQtd. Páginas: "+this.quantidadeDePaginas;
      return valor;
  }

  public void exibir()
 {
      System.out.println(this.toString());
 }
}

O Método toString é membro da classe Object, que é a super class de todas as classes, e serve justamente para retornar a descrição dos campos de uma classe.

Você também poderia fazer isso, ao invez de criar o método exibir em Livro:

]for( Livro livroCorrente : livros ){  
            System.out.println(livroCorrente.toString());
        }  

[quote=guilherme.dio]Simplesmente faça isso dentro da classe Livro:

public class Livro
{
   //..Atributos e Métodos.....

   @Override
   public String toString()
  {
      String valor = "ISBN: "+this.isbn
                         +"\nTítulo: "+this.titulo
                         +"\nAutor: "+this.autor
                         +"\nQtd. Páginas: "+this.quantidadeDePaginas;
      return valor;
  }

  public void exibir()
 {
      System.out.println(this.toString());
 }
}

O Método toString é membro da classe Object, que é a super class de todas as classes, e serve justamente para retornar a descrição dos campos de uma classe.

Você também poderia fazer isso, ao invez de criar o método exibir em Livro:

]for( Livro livroCorrente : livros ){  
            System.out.println(livroCorrente.toString());
        }  

[/quote]

Rodou cara, vlw…

Para conseguir consultar os livros cadastrados, como ele foi instanciado dentro do main, você precisará passar array ao método procurar:

procurar(livros);

Depois é só completar o for no método procurar:

public static void procurar(Livro[] livros){  
        Integer valor = Integer.parseInt(JOptionPane.showInputDialog( "Digite o valor do ISBN que quer chamar: " ));  
        for(int i=0; i<livros.lenght ; i++){ 
                 if(livros[i].getIsbn() == valor){
                        // aqui você mostra as informações do livro
                }
        }
}  

[quote=Scobar20][quote=guilherme.dio]Simplesmente faça isso dentro da classe Livro:

public class Livro
{
   //..Atributos e Métodos.....

   @Override
   public String toString()
  {
      String valor = "ISBN: "+this.isbn
                         +"\nTítulo: "+this.titulo
                         +"\nAutor: "+this.autor
                         +"\nQtd. Páginas: "+this.quantidadeDePaginas;
      return valor;
  }

  public void exibir()
 {
      System.out.println(this.toString());
 }
}

O Método toString é membro da classe Object, que é a super class de todas as classes, e serve justamente para retornar a descrição dos campos de uma classe.

Você também poderia fazer isso, ao invez de criar o método exibir em Livro:

]for( Livro livroCorrente : livros ){  
            System.out.println(livroCorrente.toString());
        }  

[/quote]

Rodou cara, vlw…[/quote]

A, e tem um detalhe interessante sobre o println:

System.out.println(livro);

Faça isso, e verá que mesmo assim, o livro aparecerá descrito na saída do console ! justamente porque o println chama o método toString quando recebe um Object de parametro.

[quote=guilherme.dio][quote=Scobar20][quote=guilherme.dio]Simplesmente faça isso dentro da classe Livro:

public class Livro
{
   //..Atributos e Métodos.....

   @Override
   public String toString()
  {
      String valor = "ISBN: "+this.isbn
                         +"\nTítulo: "+this.titulo
                         +"\nAutor: "+this.autor
                         +"\nQtd. Páginas: "+this.quantidadeDePaginas;
      return valor;
  }

  public void exibir()
 {
      System.out.println(this.toString());
 }
}

O Método toString é membro da classe Object, que é a super class de todas as classes, e serve justamente para retornar a descrição dos campos de uma classe.

Você também poderia fazer isso, ao invez de criar o método exibir em Livro:

]for( Livro livroCorrente : livros ){  
            System.out.println(livroCorrente.toString());
        }  

[/quote]

Rodou cara, vlw…[/quote]

A, e tem um detalhe interessante sobre o println:

System.out.println(livro);

Faça isso, e verá que mesmo assim, o livro aparecerá descrito na saída do console ! justamente porque o println chama o método toString quando recebe um Object de parametro.[/quote]

Blz cara, vou tentar aqui…vlw

[quote=cogumello]Para conseguir consultar os livros cadastrados, como ele foi instanciado dentro do main, você precisará passar array ao método procurar:

procurar(livros);

Depois é só completar o for no método procurar:

public static void procurar(Livro[] livros){ Integer valor = Integer.parseInt(JOptionPane.showInputDialog( "Digite o valor do ISBN que quer chamar: " )); for(int i=0; i<livros.lenght ; i++){ if(livros[i].getIsbn() == valor){ // aqui você mostra as informações do livro } } } [/quote]

Deu certo também cara, só mudei algumas coisinhas de acordo com o que eu precisava e boa…
Vlw…