Boa noite, fiz o FJ11 com a Caelum em Brasília e foi abordado o toString() em uma das aulas. Entendi que temos que sobrescrever o método de Object, para mudar o que sairia na saida padrão quando usar o sysout em um Object. Fiz esse código abaixo apenas para brincar e treinar um pouco com um Array simples e testar o toString() porém não consegui fazer funcionar e não consigo achar o erro. Alguém pode me ajudar por favor ?
package aulas;
public class Array {
public static void main(String[] args) {
double[] notasDoJoao = { 7.0, 8.7, 9, 10, 18.9 };
double[] notasPedro = new double[5];
notasPedro[0] = 1;
notasPedro[1] = 5;
notasPedro[2] = 19;
notasPedro[3] = 5;
notasPedro[4] = 20;
double totalJoao = 0;
for (int i = 0; i < notasDoJoao.length; i++) {
totalJoao += notasDoJoao[i];
}
double totalPedro = 0;
for (int i = 0; i < notasPedro.length; i++) {
totalPedro += notasPedro[i];
}
StringBuilder notas = new StringBuilder();
System.out.println(notas.append("Média de Notas Pedro: ").append(totalPedro / notasPedro.length)
.append("\nMédia de Notas João: ").append(totalJoao / notasDoJoao.length));
System.out.println(notasPedro);
}
@Override
public String toString() {
return "Não sei porque não funciona";
}
}
O Java usa o método toString() toda vez que for necessário converter um objeto em String, ou seja, para obter uma representação textual do objeto.
public class Funcionario {
@Override
public String toString() {
return "Esse é o método toString";
}
public static void main(String[] args){
Funcionario funcionario = new Funcionario();
System.out.println(funcionario);//Imprime "Esse é o método toString".OBS Não é necessario chamar o método para fazer ele funcionar;
}
}
Você disse que não esta conseguindo chamar o toString, bom… Para você chamar o toString, tem que criar um objeto da mesma classe que você sobrescreveu o método.
Se você sobrescreveu o método toString na classe Aluno, você terá que criar um objeto do tipo Aluno e então dar System.out.println() passando como parâmetro o objeto
Entendi Mike, Obrigado !
No caso acima eu criei apenas esta classe Array com um main nela mesmo, somente para testes e sobrescrevi na própria classe pra tentar retornar algo no toString() quando eu tentasse imprimir este array. Mas não funcionou, sabe me dizer porque ?