Boa noite a todos, este é meu primeiro post não somente neste forum como também de todos que participei, caso não for aqui que poste ou o titulo esteja incorreto ou alguma outro coisa, agradecerei por instruções.
Bem, eu estou estudando java através de uma apostila, e em determinado momento, ele pede para fazer alguns exercicios onde preciso mostrar na tela um atributo de uma variavel, porém eu esqueci de colocar qual atributo deveria chamar e apenas coloquei a referencia System.out.print(c1); , apareceu como se fosse um codígo, EA31293, este código seria algo como o caminho dele para a memoria na JVM ?. Eu não tenho internet, estou passando por uns apertos mas assim que conseguir posto um print da execução do código, obrigado a todos
Todo e qualquer objeto é identificado por um código que o identifica (univocamente) no projeto, isto é, é seu ID. Quando tu chama, ou melhor, passa um objeto para uma saída, como por exemplo o método println sem ‘invocar’ nenhum de seus atributos, o que é mostrado é esse ID e assume a seguinte formatação:
NomeDaClasse + @ + CodeObjectHexadecimal
Exemplo:
publicclassTeste{privatelongidTeste;privateStringnomeTeste;publicTeste(longid,Stringnome){setIdTeste(id);setNomeTeste(nome);}/* * Métodos acessores e modificadores */publicvoidsetIdTeste(longidTeste){this.idTeste=idTeste;}publiclonggetIdTeste(){returnidTeste;}publicvoidsetNomeTeste(StringnomeTeste){this.nomeTeste=nomeTeste;}publicStringgetNomeTeste(){returnnomeTeste;}publicstaticvoidmain(String[]args){Testet1=newTeste(15L,"Teste01");Testet2=newTeste(1050L,"Teste89");System.out.println("O ID do objeto T1 (definido pela JVM): "+t1);System.out.println("O ID do objeto T1 (definido pelo usuário): "+t1.getIdTeste());System.out.println("Nome do Teste T1 (definido pelo usuário): "+t1.getNomeTeste());System.out.println("\n\n");System.out.println("O ID do objeto T2 (definido pela JVM): "+t2);System.out.println("O ID do objeto T2 (definido pelo usuário): "+t2.getIdTeste());System.out.println("Nome do Teste T2 (definido pelo usuário): "+t2.getNomeTeste());}}
Você deve sobrescrever o método toString() que qualquer classe herda da classe Object. @override
public String toString() {
return...;
}
PS: Também estou aprendendo Java ou reaprendendo depois de trabalhar algum tempo em Visual Basic e tentar trabalhar com C#.
Saraivaaaa
Muito obrigado Staroski por tirar esta duvida , mais a frente do ponto onde estou na apostila da Caelun FJ-11, falara sobre toString e uma classe parecida que serve para não precisar fazer aquele bolo de System.out.print();
Saraivaaaa
Sei que faltou informações para que pudessem me ajudar, mas mesmo assim agradeço
Saraivaaaa
System.out.println("O ID do objeto T1 (definido pela JVM): " + t1); System.out.println("O ID do objeto T1 (definido pelo usuário): " + t1.getIdTeste()); System.out.println("Nome do Teste T1 (definido pelo usuário): " + t1.getNomeTeste());
Aquele numero que eu havia mencionado era o ID i o numero é definido pela JVM. Muito obrigado cara, me ajudou e muito.