Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

Estou com dúvida no curso de Java e Orientação a Objetos, no exercício do capítulo Herança, reescrita e polimorfismo.

Estou com problema na minha classe pois não consigo criar o método principal esta com erro: segue o codigo:

package br.com.caelum.javaoo;

public class Conta{

protected double saldo;

public double getSaldo() { return this.saldo; }

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

public void saca(double valor) { this.saldo -= valor; }

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

public class ContaCorrente extends Conta {

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

public class ContaPoupanca extends Conta {

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

public void deposita(double valor) { this.saldo += valor - 0.10; } }

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());

} }

}

8 respostas

Luiz, a classe de teste e a classe Conta estão corretas. O erro está ocorrendo porque você está executando a classe Conta e não a TestaContas.

João, estou executando pelo eclipse e tenho a seguinte mensagem de erro: Erro: Não foi possível localizar nem carregar a classe principal br.com.caelum.javaoo.TestaContas. Ao passar o mouse em cima de onde esta o erro na linha (main(String[] args)) tenho a mensagem: The method main cannot be declared static; static methods can only be declared in a static or top level type

O que será que posso fazer para corrigir isso???

Luiz, o método está assim "public static void main(String[] args) {"? (sem aspas)

Está sim, vi no código. Faça o seguinte, atualize o projeto usando F5, ou project > clean. Faça um teste em seguida.

solução

Luiz, há uma chave a mais fechando o código. Provavelmente este é o motivo.

Fiz um clean no projeto n mudou nada e n tem chaves fechando a mais, pois ele daria erro nas aspas e se eu tirar ou colocar alguma a mais ja da erro nelas. Estranho que acompanhando as aulas refiz os codigos passo a passo e estão de acordo com as respostas mas essa classe testacontas ta com esse erro no string[]args. Travei nele n consigo passar

Luiz, faça um teste com a classe abaixo:

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());

}

}

Valeu João, o problema era falta de uma chave fechando a minha classe Conta. Agora esta ok!!!