5
respostas

Dúvida no Ex. 6 da Aula 1 - Herança, reescrita e polimorfismo

Ao inserir o código abaixo, sistema exibe mensagem de erro: Erro: o método main não foi encontrado na classe AtualizadorDeContas; defina o método main como: public static void main(String[] args) ou uma classe de aplicativo JavaFX deve expandir javafx.application.Application

Como devo inserir este método main corretamente ?

class AtualizadorDeContas {
    private double saldoTotal = 0;
    private double selic;

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

    public void roda(Conta c) {
        System.out.println("===============================");
        System.out.println("Saldo anterior: " + c.getSaldo());
        c.atualiza(this.selic);
        System.out.println("Saldo atualizado: " + c.getSaldo());
        this.saldoTotal += c.getSaldo();
    }

    public double getSaldoTotal() {
        return this.saldoTotal;
    }
}
5 respostas

Oi Leandro, a ideia é que vc cria uma outra classe, crie o método main e aí use as classes que vc criou para testar. O main é o normal que vc usa numa classe para que vc possa pedir para a JVM executar uma classe sua.

public static void main(String[] args){ 
}

Estou com a mesma duvida

Wander para utilizar a classe AtualizadorDeContas é necessário criar uma nova classe com o método main, que é a classe no qual a JVM entende como a classe executável.

EX.:

class TestaAtualizador{

// Método main
    public static void main(String []args){

    Conta c = new Conta();
    c.deposita(1000);

//Referência ao objeto da classe AtualizadorDeContas
    AtualizadorDeContas atualizador = new AtualizadorDeContas(0.01);

//utilizando os métodos da classe AtualizadorDeContas
    atualizador.roda(c);

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

    }

}

Espero ter ajudado!

Estava com a mesma dúvida, porém a dica do Gustavo esclareceu tudo, o que fiz foi:

No mesmo Conta.java que estava utilizando no exercício, criei uma nova classe "AtualizadorDeConta":

class AtualizadorDeContas {

    private double saldoTotal = 0;
    private double selic;

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

    public void roda(Conta c) {
        System.out.println("O saldo anterior desta conta é: " + c.saldo);
        c.atualiza(selic);

        System.out.println("O saldo atual desta conta é: " + c.saldo);
        System.out.println("===========================================");
        saldoTotal += c.saldo;
    }

    public double getSaldoTotal() {
        return saldoTotal;
    }
}

Como eu já estava utilizando um "main" ("TestaConta") criado para os exercícios anteriores, então comentei este main e criei um novo main para testar a classe "AtualizadorDeContas":

/*class TestaConta {
  public static void main(String[] args) {
    Conta c = new Conta();
    Conta cc = new ContaCorrente();
    Conta cp = new ContaPoupanca();

    c.deposita(1000.0);
    cc.deposita(1000.0);
    cp.deposita(1000.0);

    c.atualiza(0.01);
    cc.atualiza(0.01);
    cp.atualiza(0.01);

    System.out.println("O saldo da conta é: " + c.getSaldo());
    System.out.println("O saldo da conta corrente é: " + cc.getSaldo());
    System.out.println("O saldo da conta poupança é: " + cp.getSaldo());

  }
}*/

class TestaAtualizador {
  public static void main(String[] args) {
    Conta c = new Conta();
    Conta cc = new ContaCorrente();
    Conta cp = new ContaPoupanca();

    c.deposita(1000.0);
    cc.deposita(1000.0);
    cp.deposita(1000.0);

    AtualizadorDeContas atualizador = new AtualizadorDeContas(0.01);
    atualizador.roda(c);
    atualizador.roda(cc);
    atualizador.roda(cp);


    System.out.println("Saldo total das contas é: " + atualizador.getSaldoTotal());
  }
}

Utilizei os três tipos de contas criadas nos exercícios anteriores para fazer os testes. Então foi só compilar a mesma classe Conta.java do início do exercício e rodar o "TestaAtualizador", que tudo funcionou:

O saldo anterior desta conta é: 1000.0

O saldo atual desta conta é: 1010.0

O saldo anterior desta conta é: 1000.0

O saldo atual desta conta é: 1020.0

O saldo anterior desta conta é: 999.9

O saldo atual desta conta é: 1029.897

Saldo total das contas é: 3059.897

Espero ter ajudado!.

Para rodar você deve ter um método main que é onde você irá iniciar todo o seu programa java e chamar seus métodos, conforme especificado na aula 1 do java primeiros passos:

public static void main(String[] args) { 
}