Help

7 respostas
D
ja quebrei a cuca mas nao acho o erro. Alguém pode me ajudar!!!
public conta{
	private double saldo;
	double depositar;
	double sacar;
	
	void deposita(double valor) {
	this.saldo += valor;
	}
	void saca(double valor) {
	this.saldo = valor;
	}
	
	double getSaldo() {
	return this.saldo;

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

	class ContaCorrente extends Conta {
		void atualiza(double taxa) {
		this.saldo += this.saldo * taxa * 2;

		}
		void deposita(double valor) {
		this.saldo += valor * 0.9962;
		}
	}
	class ContaPoupanca extends Conta {
		void atualiza(double taxa) {
		this.saldo += this.saldo * taxa * 3;
					}
				}
			}
		}
	}
}



public class TestaContas {
	public static void main(String[] args) {
			Conta c = new Conta();

	ContaCorrente cc = new ContaCorrente();
	ContaPoupanca cp = new ContaPoupanca();

	c.deposita(1000);
	cc.deposita(1000);
    cp.deposita(1000);
    c.atualiza(0.01);
    cc.atualiza(0.01);
    cp.atualiza(0.01);
    
    
	System.out.println(c.getSaldo());
	System.out.println(cc.getSaldo());
	System.out.println(cp.getSaldo());
	}
}

7 Respostas

s4nchez

Começa a usar uma IDE decente senão você vai ficar maluco…

De qualquer maneira, aqui vai o código corrigido:

class Conta{
        double saldo;
        double depositar;
        double sacar;

        void deposita(double valor) {
        this.saldo += valor;
        }
        void saca(double valor) {
        this.saldo = valor;
        }

        double getSaldo() {
                return this.saldo;
        }

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

class ContaCorrente extends Conta {
        void atualiza(double taxa) {
                this.saldo += this.saldo * taxa * 2;
        }
        void deposita(double valor) {
                this.saldo += valor * 0.9962;
        }
}

class ContaPoupanca extends Conta {
        void atualiza(double taxa) {
                this.saldo += this.saldo * taxa * 3;
        }
}
D

O Ivan valeu, mas quanto a classe teste seria a main nao vou precisar usar , sou iniciante e me perco um pouco,mas não vai precisar dela !!!

davidbuzatto

1 - Vc define uma classe “conta” (na verdade não define pois nem a palavra chave class vc usou) e depois duas classes internas que estendem “Conta”.
2 - Vc inseriu vááárias chaves a mais… Isso que dá não identar o código direito… Começou um bloco, abra e feche as chaves, simples né? Ai vc diminui as chances de colocar chaves a mais ou a menos.
3 - Vc tenta acessar membros privados (saldo) de Conta nas suas subclasses, crie o método setSaldo para fazer isso nas subclasses ao invés de tentar acessar ele diretamente.
4 - Vc praticamente deixou sua classe “aberta” para as outras classes do mesmo pacote, com excessão do campo saldo que é privado… Adicione um modificador de acesso aos membros (atributos e métodos) da classes visando o encapsulamento.
5 - TestaContas está em um arquivo .java separado? Parece que não pois vc tenta instanciar uma classe interna da Conta diretamente.

Nossa, ainda tem um monte de coisa errada… Cansei…

davidbuzatto

Ajeitei seu código, mas ainda pode ser melhorado... Separar as classes Conta e suas subclasses em outros arquivos, etc... Acho que tem alguns erros nas lógicas dos seus métodos...

class Conta { 
 
    private double saldo;  
    
    public void deposita(double valor) {  
        setSaldo( getSaldo() + valor );  
    }
    
    public void saca(double valor) {
        setSaldo( valor );  
    }  
    
    public void atualiza(double taxa) {  
        setSaldo( getSaldo() * taxa );  
    }
    
    public double getSaldo() {  
        return this.saldo;  
    }
    
    public void setSaldo(double saldo) {  
        this.saldo = saldo;
    }
     
}

class ContaCorrente extends Conta {  
    public void atualiza(double taxa) {  
        setSaldo( getSaldo() + ( getSaldo() * taxa * 2 ) );  
    }  
    public void deposita(double valor) {  
        setSaldo( getSaldo() + valor * 0.9962 );
    }  
}

class ContaPoupanca extends Conta {  
    public void atualiza(double taxa) {  
        setSaldo( getSaldo() + ( getSaldo() * taxa * 3 ) );   
    }  
}  
                          
public class TestaContas {  
    public static void main(String[] args) {  
        
        Conta c = new Conta();  
        
        ContaCorrente cc = new ContaCorrente();  
        ContaPoupanca cp = new ContaPoupanca();  
        
        c.deposita(1000);  
        cc.deposita(1000);  
        cp.deposita(1000);  
        c.atualiza(0.01);  
        cc.atualiza(0.01);  
        cp.atualiza(0.01);  
        
        System.out.println(c.getSaldo());  
        System.out.println(cc.getSaldo());  
        System.out.println(cp.getSaldo());  
            
    }  
        
}

Quanto a IDE, como vc é iniciante não use uma, aprenda a codificar na mão pelo menos o básico, nunca se sabe por qual situação você pode passar, as vezes vc pode não ter uma IDE para te ajudar.

Até mais!

D

Valeu pelas dicas… abraços

Andre_Brito

Sobre não usar IDE eu concordo…
Acho que sou iniciante… a única coisa que uso numa IDE é o editor, o Run e o Build pra gerar um .jar (que eu nem sei fazer direito nessas IDE’s fodonas de Netbeans e Eclipse).

Eu usava vIM, mas senti uma GIGANTESCA dificuldade de reusar o código e refatorar… hoje uso o Eclipse só pra codar normal mesmo… E NetBeans pra interface, claro.

s4nchez

davidbuzatto:
Quanto a IDE, como vc é iniciante não use uma, aprenda a codificar na mão pelo menos o básico, nunca se sabe por qual situação você pode passar, as vezes vc pode não ter uma IDE para te ajudar.

Você está certo… Esqueci que o cara estava aprendendo e neste caso concordo que é melhor sofrer um pouco mais no começo pra aprender direito como funciona o básico da linguagem.

Em resumo, sofra agora para não sofrer depois :stuck_out_tongue:

Criado 19 de janeiro de 2008
Ultima resposta 19 de jan. de 2008
Respostas 7
Participantes 4