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

Erro ao chamar método por ter esquecido de fazer o main

Boa tarde pessoal.

Fui fazer esse exercício que está na descrição acima dessa pergunta e acabei esquecendo de declarar o main(public static void main(String[] args)):

package br.com.bytebank.banco.teste;

import br.com.bytebank.banco.modelo.Conta;
import br.com.bytebank.banco.modelo.ContaCorrente;
import br.com.bytebank.banco.modelo.GuardadorDeContas;

public class TesteGuardadosDeContas {

    GuardadorDeContas guardador =new GuardadorDeContas();

    Conta cc1=new ContaCorrente(12,123);
    guardador.adiciona(cc1);
}

Acabou surgindo erros na linha do método adiciona. Quando insiro o método main o erro desaparece. Classe GuardadosDeContas:

package br.com.bytebank.banco.modelo;

public class GuardadorDeContas {

    private Conta[] referencias;
    private int posicaoLivre;

    public GuardadorDeContas() {
        this.referencias = new Conta[10];
        this.posicaoLivre = 0;
    }

    public void adiciona(Conta ref) {
        referencias[this.posicaoLivre] = ref;
        this.posicaoLivre++;
    }

}

Erro no primeiro ponto de (guardador.adiciona(cc1)): Syntax error on token ".", @expected afterthis token

Erro no segundo ponto de (guardador.adiciona(cc1)): Syntax error, insert ")" to complete Method Declaration.

Podem me explicar o motivo desses erros? O correto seria eu declarar o método main para continuar o exercício, mas por qual motivo eu não consigo chamar o método adiciona sem declarar o main? Eu não conseguiria chamar ele de qualquer outra classe?

Obrigado.

2 respostas
solução!

Olá, Eduardo

Acontece que o compilador aí quer que você coloque essa ação de "chamar o método de outra classe passando um parâmetro" dentro de um bloco { } pode ser o main ou outro método que você mesmo crie, assim ele vai saber quando chamar .

Pode ser interessante ler isso: https://www.caelum.com.br/apostila-java-orientacao-objetos/orientacao-a-objetos-basica/#mtodos

Até...

Nossa que mancada, esqueci desse importantíssimo detalhe hahaha. Realmente não consigo chamar um método fora do main ou fora de outro método dessa classe.

Obrigado.