Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Duvida Ex.2 aula 4

quando estou compilando esta dando erro, como se eu tivesse usado o abstract de maneira errada,segue meu codigo e o erro.

package fj11;

abstract class Funcionario {
    private String nome;
    protected double salario;

    public void setSalario(double salario) {
        this.salario = salario;
    }

    public abstract double getBonus();

}

class Gerente extends Funcionario {

    public double getBonus() {
        return this.salario * 0.3;
    }

}

class Desenvolvedor extends Funcionario {

    public double getBonus() {
        return this.salario * 0.25;
    }

}

class Totalizadordebonus {
    private double total = 0;

    public void adiciona(Funcionario f) {
        total += f.getBonus();
    }

    public double getTotal() {
        return this.total;
    }

}

abstract class Conta {
    protected double saldo;
    double atualiza;

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

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

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

    }

    public abstract void atualiza(double taxa);

}

class ContaCorrente extends Conta {

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

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

}

class ContaPoupanca extends Conta {

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

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

}

class AtualizaConta {
    private double saldototal = 0;
    private double selic;

    public AtualizaConta(double selic) {
        this.selic = selic;
    }

    public void roda(Conta c) {
        System.out.println(c.getSaldo());
        c.saldo += c.saldo * selic;
        System.out.println(c.getSaldo());
        this.saldototal += c.getSaldo();

    }

    public double getSaldoTotal() {
        return this.saldototal;
    }
}

class TesteConta {
    public static void main(String[] args) {

        ContaCorrente silviacc = new ContaCorrente();
        ContaPoupanca silviacp = new ContaPoupanca();

        silviacc.deposito(1000);
        silviacp.deposito(1000);

        AtualizaConta selic = new AtualizaConta(0.01);

        selic.roda(silviacc);
        selic.roda(silviacp);

        System.out.println("Saldo total: " + selic.getSaldoTotal());
    }
}

class Teste {

    public static void main(String[] args) {

        Gerente joaquim = new Gerente();
        joaquim.setSalario(2000.0);

        System.out.println(joaquim.getBonus());

        Totalizadordebonus totalizador = new Totalizadordebonus();
        totalizador.adiciona(joaquim);

        System.out.println(totalizador.getTotal());
    }

}
``

erro

Exception in thread "main" java.lang.NoSuchMethodError: fj11.ContaCorrente: method ()V not found at fj11.TesteConta.main(Funcionario.java:113)

3 respostas
solução!

Olá Samuel

Copiei as suas classes e rodei aqui no meu pc, está funcionando sem problemas. Não fiz nenhuma alteração só executei.

Na ocasião você tinha salvo as alterações que fez nas classes ?

Att,

a main Teste roda normal, mas a TesteConta da esse erro

Também testei aqui e está normal.

Eu acho que vc ta é executando o Teste, melhor qdo for executar clicar com o botao direito na classe q vc quer rodar e escolher run as.