toString()

Estou tentando enteder a funcionalidade desse método mais não estou conseguindo ele serve para converter tipo…??li no livro que todos os objetos tem esse método mais como le funciona? alguém pode me explicar com um exemplo??

Ele dá uma representação em String do seu objeto, que por defaut é o nome da classe @ e o hash dela em hexa.

Mas muitas classes tem uma representação em string interessante. Por exemplo, a INetAddress vai te retornar o host (ou o IP, caso o Host não tenha sido devolvido).

Você também pode fazer uma classe Telefone que retorne o número do telefone com código de área, era.

Eu recomendo que você leia o item 9 do capítulo 3 do livro Effective Java. O livro foi escrito por um dos criadores do Java, que desenvolveu a biblioteca de collections, um cara chamado Joshua Bloch. Lá explica direitinho o toString().

http://java.sun.com/docs/books/effective/chapters.html

2 curtidas

Vamos a um exemplo, temos uma classe chamada usuario:

[code]
public class Usuario{

Nome String;
Idade String;
Sexo String;
}[/code]

e voce esta chamando usuario em outra classe

Usuario usuario = new Usuario();
System.out.println(usuario);

Se voce fizer isso oq ira ser impresso??? o java nao sabe pois dentro da sua classe usuario existem varias strings! entao para voce definir oq sera impresso, dentro da classe usuario voce tem q fazer esse metodo para ele falar para o java oq deve ser impresso… EX:

[code]
public class Usuario{

Nome String;
Idade String;
Sexo String;

public String toString(){
//Metodo publico que retorna uma String
return Nome;
}
}[/code]

pronto agora quando voce fizer:

Usuario usuario = new Usuario();
System.out.println(usuario);

Ele ira imprimir o nome do usuario!!!

Eh issoo… eh meio dificil de intenter sem voce usar… mais eh issu ai!

2 curtidas

Converter não é a explicação mais correta, o certo seria dizer representar, por exemplo

Uma classe pessoa:

class Pessoa{
  String nome;
  int idade;
}

na hora de chamar um System.out.println, vai aparecer na tela
Pessoa@82ba41

mas se você sobrescrever o toString com:

public String toString() {
  return "Nome - "+this.nome+",idade - "+this.idade;
}

vai aparece mais legal o System.out.println:

Nome - fulano, idade - 21

E também existe frameworks que usam o toString, principalmente na web e para log!!!

2 curtidas

ele converte um objeto para string. Por exemplo, você tem um arraylist, e pode pegar um determinado índice desse arraylist e convertê-lo para string usando o toString.

for (int i=0; array.size()) {
String bbb = array(i).toString();

}

[code] for (int i=0; array.size()) {
String bbb = array(i).toString();

}[/code]

isso funciona? o.O

List<Pessoas> array = new  ArrayList<Pessoas>();

//... add's
for (int x = 0; x < array.size();x++){
       String b = array.get(x).toString();
}

[code]
public class Pessoas {
private String nome;
private int idade;
//getters e setters

 public String toString() {
        return "Nome: " + nome + "  Idade: " + idade; 
   }

}[/code]

Assim dá pra dar uma idéia melhor, se tivermos um Objeto Pessoas no ArrayList() com nome = Deh e idade = 18
a saida seria:

“Nome: Deh Idade: 18”

Obrigado

muda o nome do topico e poe resolvido lah !!!

Não era bem isso que o arthurnn quis dizer.

A palavra resolvido deveria ter sido adicionada ao assunto criado originalmente senão resolvido significa o que?

O que foi resolvido???

no cara foi burrice minha desculpa ai e porque eu achei que era para mudar o tópico

Eu também tô me batendo com esse método…

O problema é que estou usando uma classe que baixei, Jama.Matrix, e não consigo ver o conteúdo do objeto. Tô tentando usar toString, mas ele exige, obviamente, uma String no return.

Alguém sabe como faço pra ver o conteúdo de x no código abaixo, seja com toString ou não?

Código:[code]
import Jama.Matrix
public class TesteJama {

public static void main (String[] args){
  double[][] array = {{1.,2.,3},{4.,5.,6.},{7.,8.,10.}}; 
  Matrix A = new Matrix(array); 
  Matrix b = Matrix.random(3,1); 
  Matrix x = A.solve(b);
  Matrix Residual = A.times(x).minus(b); 
  double rnorm = Residual.normInf(); 
  double []a= new double [3];      
}

[/code]

Boa noite amigos,

Estou estudando este método toString(), gostaria de saber o porque deste programa abaixo não enviar na tela o dado ‘Junio’ ?

public class Person {
	private String name;

	public Person(String a){
		name = a; //copia para name
	}
	
	public String getName(){
		return name;
	}

	public String toString(){
		return "Nome: " + name;
	}


	public static void main(String[] args){
		Person x = new Person("Junio");
		x.toString();
	}

}

Agradeço desde já,

Junio Cesar Silva

Para enviar para a tela, você tem que usar o comando print. Tente assim:

public static void main(String[] args){ Person x = new Person("Junio"); System.out.println("Person " + x); }

Muito obrigado ViniGodoy.Paz e saúde para ti.