Array de objetos retorna o HashCode ao imprimir - RESOLVIDO

Boa noite a todos!

Tenho um array de objetos do tipo Endereco(classe).
Após preenchê-lo, ao tentar imprimir, estão sendo impressos os HashCodes de cada posição do vetor.
Gostaria de saber como imprimir o valor real de cada posição, da forma mais simples possível, pois
ainda não quero sobrescrever o método toString, nem nada parecido. Segue abaixo o código dos 3
arquivos utilizados no projeto.

//Este é o primeiro arquivo, onde implemento a classe Endereço

class Endereco{

    String endereco;
    String cidade;
    String cep;
    String estado;
    String tipo;
    
}

class Cliente {

    String nome;

    Endereco[] enderecos;    

    char sexo;
    int cpf;    
    int telefone;

    double valorUltimaCompra;
    double limiteCredito;
    boolean bomPagador;

               void imprimir () {
            System.out.println("Nome : " + nome
                           +"\nEndereco : " + enderecos
                           +"\n Cpf : " + cpf
                           +"\n Telefone :"  + telefone
                           +"\n sexo :"  + sexo  
                           +"\n Valor Ultima Compra :"  + valorUltimaCompra
                           +"\n Limite Credito :"  + limiteCredito
                           +"\n Bom Pagador :"  + bomPagador  );
    }

        {
         void inicializaEnderecos(Endereco... novoEnderecos) {

           enderecos = novoEnderecos; 
	}
				
}


class TestaCliente {

   public static void main (String[] args) {

        Cliente cliente = new Cliente();  

           
        Endereco[] enderecos = new Endereco[5]; 
												
    
        for ( int i= 0 ; i < enderecos.length ; i++) { 
            Endereco endereco = new Endereco(); 
           
            endereco.endereco = " Rua do zé jaco jécão" + i;    
            endereco.cep = "12332-22" + i;
            endereco.cidade = "Cidade de Sjc " + i;
            endereco.estado = "estado de SP  " + i;
    

            enderecos[i] = endereco;
    
        
		} 
        {
            
           cliente.inicializaEnderecos(enderecos);  
          
    
        cliente.enderecos[4] = null ; 
 			 }
		 			
			 for ( int i= 0 ; i < enderecos.length ; i++) {  

					System.out.println ("eh " + enderecos[i]);
			}
      }
}

O programa retorna o seguinte ao executar o TestaCliente:

eh Endereco@c17164
eh Endereco@1fb8ee3
eh Endereco@61de33
eh Endereco@14318bb
eh null

O seu código está um pouco confuso… Você quer imprimir o endereço ou o cliente? Enfim, para imprimir uma classe dentro do System.out.println() vc precisa sobrescrever o método toString() para a classe.

Abaixo um exemplo do método toString() para a sua classe endereço…


class Endereco{

	String endereco;
	String cidade;
	String cep;
	String estado;
	String tipo;

	public String toString(){
		String formatado = String.format("%s, %s - %s (%s)", endereco, cidade, estado, cep);
		return formatado;
	}
}

O resultado, de acordo com os dados que você utilizou seria:

eh Rua do zé jaco jécão0, Cidade de Sjc 0 - estado de SP 0 (12332-220)
eh Rua do zé jaco jécão1, Cidade de Sjc 1 - estado de SP 1 (12332-221)
eh Rua do zé jaco jécão2, Cidade de Sjc 2 - estado de SP 2 (12332-222)
eh Rua do zé jaco jécão3, Cidade de Sjc 3 - estado de SP 3 (12332-223)
eh Rua do zé jaco jécão4, Cidade de Sjc 4 - estado de SP 4 (12332-224)

Espero ter ajudado

olá acnazarejr, obrigado pela ajuda, mas não é exatamente isto que queria,
na verdade como descrevi acima, gostaria de imprimir cliente, mas sem usar
o toString() na classe. vi que é possível sim, mas não consegui.

Você seta a quarta posição como null, por isso o null do ultimo print.

Quanto ao hashcode, é claro que vai imprimir isso aí pelo que você tá fazendo.

Não entendi sua dúvida.

será que é isso que você quer?

System.out.println ("eh " + enderecos[i].endereco);
System.out.println ("eh " + enderecos[i].cep );
System.out.println ("eh " + enderecos[i].cidade );    
System.out.println ("eh " + enderecos[i].estado );

olá JhowTroMundo, realmente a quarta posicao do print foi setada como null nesta
parte do codigo ( cliente.enderecos[4] = null ; ) .
quanto á saida do System.out.println , era realmente isto que estava precisando.
compilei meu código e deu certo. me desculpem talvez pela má legibilidade do código,
estou aprendendo agora a linguagem Java. mas novamente, agradeco pela disposição e
a vontade de todos em ajudar. obrigado.

Você seta a quarta posição como null, por isso o null do ultimo print.
Quanto ao hashcode, é claro que vai imprimir isso aí pelo que você tá fazendo.
Não entendi sua dúvida.
será que é isso que você quer?

view plaincopy to clipboardprint?
System.out.println ("eh " + enderecos[i].endereco);
System.out.println ("eh " + enderecos[i].cep );
System.out.println ("eh " + enderecos[i].cidade );
System.out.println ("eh " + enderecos[i].estado );