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

Porque o metodo1 e o metodo2 devem ser static nesse código?

public class FluxoComTratamento {

    public static void main(String[] args) {
        System.out.println("Ini do main");
        try{
        metodo1();
        } catch(ArithmeticException | NullPointerException ex){
            String msg = ex.getMessage();
            System.out.println("Exception "+msg);
            ex.printStackTrace();
        } 
        System.out.println("Fim do main");
    }

    private static void metodo1(){
        System.out.println("Ini do metodo1");
        metodo2();
        System.out.println("Fim do metodo1");
    }

    private static void metodo2(){
        System.out.println("Ini do metodo2");

        throw new ArithmeticException("Deu errado");

        //System.out.println("Fim do metodo2");
    }

}
4 respostas
solução!

Bom dia Victor, no caso é pq vc esta chamando os métodos dentro da main, que também é um método static. Todo método static, só aceita variáveis e métodos que também sejam static.

Métodos e variáveis static são parte da classe q vc ta criando então poderiam ser chamados sem vc ter q instanciar a classe, os métodos que não são static, vc precisa de uma instancia, então pra evitar erros quando vc for usar um método static, tudo q ta dentro dele precisa ser static tbm, pq os não static vão precisar de alguma instancia pra poder funcionar.

Oi Victor, tudo bem? São estáticos para que você possa executar dentro do main diretamente usando apenas o nome do método. :)

Muito obrigado, pessoal.

Oi Vitor, tudo bem? Só um pedido, quando alguém te responder e a resposta solucionar a sua dúvida / problema. Marca a resposta dessa pessoa como solução do tópico tá bem?

É só ir na resposta e clicar em "marcar como solução", assim fica muito mais claro pra gente e pros demais alunos que o problema foi resolvido e qual foi a solução que funcionou pra você.

Faz isso pra mim?