https://youtu.be/545ZUl-gLNY

Métodos e atributos estáticos (static)

O static é um modificador que torna o atributo ou método pertencente a classe. Ou seja, o valor/referência ficam estáticos independente da instância da classe.

Perceba que o prórprio método main do Java é estático. Isso significa que mesmo que haja diferentes instâncias da classe main o método estático é exatamente o mesmo.

public class Main {

    public static void main(String[] args) {

    }

}

Alguns pontos importantes

Métodos estáticos só podem manipular atributos estáticos

O exemplo abaixo gera erro, pois o método main está tentando manipular o atributo de classe chamado number.

public class Main {
    
    private int number;

    public static void main(String[] args) {
        int something = number * 2;
    }

}

Atributos estáticos

public class Estatico {

    public static doublePI= 3.14;

    public void alterar(){
			PI= Math.random();
    }

    public void printPI(){
        System.out.println(PI);
    }

    public static void main(String[] args) {

        Estatico est01 = new Estatico();
        Estatico est02 = new Estatico();

        est01.printPI();
        est02.printPI();

        est01.alterar();

        est01.printPI();
        est02.printPI();

    }

}

Como chamar um método estático?