Erro executar mostra o endereco e nao o valor da variavel

Ola!!

Quando executo a classe principal, ao invés de mostrar o valor da variável ele mostra o endereço dela: br.com.banco.contas.SeguroVida@33909752

O que faz gerar este erro?
Alguma declaração errada?

#novata :slight_smile:

Isso não é um erro, é apenas a implementação padrão do método toString(), que retorna:

getClass().getName() + '@' + Integer.toHexString(hashCode())

Se você quer que o toString() da classe br.com.banco.contas.SeguroVida retorne outra coisa, você precisa sobrescrevê-lo.

Mas isso esta vindo de um get:

cli.apolice.getApolice(1308); //chamo no principal

//get na classe:
public int getApolice(int a) {
this.apolice = a;
return (this.apolice);
}

Com certeza o br.com.banco.contas.SeguroVida@33909752 não está vindo do seu método getApolice(int), até porque seu método retorna um int e não um objeto do tipo SeguroVida.

Posta o código da sua classe principal.

package br.com.banco.contas;

public class Principal {

public static void main(String[] args) {
	
	CPoupanca c = new CPoupanca(2973,4290);
	Cliente cli = new Cliente();
	Data d = new Data();
	SeguroVida s = new SeguroVida();
	
	//preenchendo os atributos da conta
	c.titular= cli;
	c.titular.getNome("Mario");
	c.getSaldo(0.0);
	c.dataAbertura = d; //passa a referencia da data
    	c.dataAbertura.dia=28;
    	c.dataAbertura.mes=02;
    	c.dataAbertura.ano=2018;
    
	System.out.println("Deposito realizado: " + c.deposito(500.0));				
	c.saque(50.0);		
	System.out.println(c.extrato());
	System.out.println("Valor rendimento mensal (1%): " + c.rendimento());
	
	System.out.println("Seguro de Vida");
	cli.apolice = s;
	cli.apolice.getApolice(1308);
	s.getValorSeguro(200000.00);
	
	System.out.println("O numero a apolice de seguro é: " + cli.apolice + "com o valor de: " + s.valorSeguro);
	
	System.out.println("Contas criadas: " + Conta.getContador() + "\n");
	
}

}

Você está implimindo o objeto cli.apolice e não o numero retornado pelo método cli.apolice.getApolice(1308). :slight_smile:

int numeroApolice = cli.apolice.getApolice(1308);
s.getValorSeguro(200000.00);
System.out.println("O numero a apolice de seguro é: " + numeroApolice + " com o valor de: " + s.valorSeguro);
1 curtida

Qual a necessidade de ter um método getApolice que retorna o próprio parâmetro que você informou?

aaaaaaaa que erro tosco! risos!

quanto ao get, é exigência não inserir nenhum numero direto, todos devem ter o get.