Olá
não consegui entender por que nao consigo compilar o código abaixo. Dá o seguinte erro: Conta.java:46: error: non-static variable this cannot be referenced from a static context ContaCorrente cc = new ContaCorrente(); ^ Conta.java:47: error: non-static variable this cannot be referenced from a static context ContaPoupanca cp = new ContaPoupanca(); ^ Conta.java:44: error: Illegal static declaration in inner class Conta.TestaContas public static void main(String[] args) { ^ modifier 'static' is only allowed in constant variable declarations
Abaixo como deixei meu código:
class Conta
{
protected double saldo;
public void saca(double valor)
{
this.saldo -= valor;
}
public void deposita(double valor)
{
this.saldo += valor;
}
public void atualiza(double taxa)
{
this.saldo += this.saldo * taxa * 1;
}
public double getSaldo()
{
return this.saldo;
}
class ContaCorrente extends Conta
{
public void atualiza(double taxa)
{
this.saldo += this.saldo * taxa * 2;
}
}
class ContaPoupanca extends Conta
{
public void atualiza(double taxa)
{
this.saldo += this.saldo * taxa * 3;
}
}
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());
}
}
}
Neste caso o "static" é preciso? Há coisas ainda que me confunde pois não tenho experiência em Java.