Duvidas em um exercicio

8 respostas
Bruno_Nascimento

E ai galera to com uma duvida aqui nesse exercicios.

é um exercicio da apostila da caelum!

Eu preciso criar uma conta, colocar o atributo saldo( em private), criar os metodos setSaldo(), deposita(), saca(double) e atualiza ();

ficaria assim:

//ContaPoupança

class Continha {
	//Atributos
	private double saldo;

	void atualiza(double taxa){
		this.saldo += this.saldo + taxa;
	}
		

	
	//método  deposita	
	void deposita(double valor){
		this.saldo += valor;
	}
	//método sacar 	
	void sacar(double valor){
		this.saldo -=valor;
	}
	//set de saldo 
	void setSaldo(double saldo){
		this.saldo = saldo;
	}
	//get de saldo
	double getSaldo() {
		return this.saldo;
	}
}

Agora eu preciso criar 2 class usando o extends(herança) uma ContaCorrente e outra ContaPoupança! só que a contaPoupanca a taxa é * por 3 e a corrente * 2 e com cpmf de 0,38%.

class ContaPoupanca extends Continha{
	void atualiza(double taxa){
		this.deposita(taxa * 3);
	}
	
	
}

//contaCorrente

class ContaCorrente extends Continha{
	void atualiza(double taxa){
		this.deposita(taxa * 2);
	}
	void deposita(double valor){
		 super.deposita(valor * 0.9962);
	}
	
}

//Ai fui testar

class TestaContas {
	public static void main(String[] args){
		Continha c1 = new Continha();
		ContaCorrente cc = new ContaCorrente ();
		ContaPoupanca cp = new ContaPoupanca ();
			
		c1.deposita(1000);
		cc.deposita(1000);
		cp.deposita(1000);
				
		c1.atualiza(0.01);
		cc.atualiza(0.01);
		cp.atualiza(0.01);
			
		System.out.println("Continha: " + c1.getSaldo());
		System.out.println("ContaCorrente : " + cc.getSaldo());			
		System.out.println("ContaPoupanca : " + cp.getSaldo());
	}
}

Ai saiu os valores
Continha: 2000.01
ContaCorrente:996.213…
ContaPoupanca: 1000.3

ai vem a duvida
não entendi muito o que eu fiz hehe ele copilou mais acho que tem algo de errado pois a continha não poderia ter 2000 se coloquei 1000, não entendi muito o que exatamente faz o atualiza, se usei o super de maneira certa, alguem poderia me falar se isso o que fiz esta certo, esta muito ruim a sintaxe? se sim mostre um jeito mais elegante/certo de se fazer hehe

Eu to pegando muito informação e as vezes acabo juntando tudo ehehe foi o que aconteceu agora hehe

8 Respostas

alanbrasil1984

sem construtores… ???

Maniezo

Esse 2000 vem da classe “Continha” e essa classe Continha ta faltando posta ela ai para analisarmos…

Bruno_Nascimento

descupa esse conta é a continhaaa vou editar

alanbrasil1984
isso mesmo sem construstores estou seguindo o exercicio e nem não fala para criar construtores, mais vou modificar colocar mais atributos e colcoar contrustores, mais só gostaria de enteder mesmo o que eu fiz hehehe

Maniezo

Ta dando 2000 por causa desse metodo da continha:

void atualiza(double taxa){   
        this.saldo += this.saldo + taxa;   
    }

Ta somando duas vezes o saldo, por causa do " += " this.saldo += this.saldo + taxa;

Maniezo

Desculpe algum problema com a net duplicou os posts…

Maniezo

Desculpe algum problema com a net duplicou os posts…

M

erro ta no metodo atualiza

void atualiza(double taxa){     
        this.saldo = this.saldo + taxa;     
    }

ou

Bruno_Nascimento

hummm não tinha visto que estava somando o saldo 2 vezes hehe

//coloquei assim e deu certo agora

# void atualiza(double taxa){     
#         this.saldo += taxa;     
#     }

=D agora to começando a entender hehe

Criado 28 de setembro de 2007
Ultima resposta 28 de set. de 2007
Respostas 8
Participantes 4