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

Por que não colocar todas os metodos da classe como static?

Ola, estou na aula de número 4, terceira atividade, e quando o professor falou de métodos estáticos, me veio na cabeça a seguinte duvida, pq não colocar todos os métodos como estáticos, ja que assim não existe mais a necessidade de instanciar as classes.

2 respostas

Olá Carlos.

Caso a sua Classe não possua nenhum atributo você pode deixar todos os seus métodos estáticos pois não haverá o que ser alterado, logo não precisara de instancia. Assim você só usa os métodos que precisa da classe e pronto.

Mas se sua Classe tiver atributos você não poderá ter somente métodos estáticos pois eles não acessam os atributos do objeto e não será possivel alterar esses atributos caso queira após a instancia.

Criei um exemplo em código para exemplificar esse funcionamento:

class Teste{
    constructor(){
        this.attr = "- Olá, sou um atributo do objeto!";
    }

    function01(){
        console.log("Preciso da classe instanciada para acessar os atributos");
        console.log("E por isso não posso ser estático");
        console.log("Veja, chamarei um atributo do objeto:");
        console.log(this.attr);
    }

    static function02(){
        console.log("Sou um método estático");
        console.log("Não preciso de instancia");
        console.log("Tentarei chamar o atributo do objeto:");
        console.log(this.attr);
        console.log("Retornou undefined, que triste...");
    }
}

Execute esse código, faça os testes para visualizar o que ocorre.

Espero ter ajudado! :D

solução!

Carlos, boa tarde!

Os métodos estáticos devem ser usados em casos específicos visto que eles não atendem a "regras" eles podem ser acessados por qualquer um a qualquer momento

Métodos estáticos são abomináveis, pois de fato indicam não se saber de onde eles pertencem, como também não possuem contexto, isso por não possuir um estado.

O método estático aumenta a complexidade do seu código por não possuir estado e não precisar de contexto para existir.

É interessante quando se trabalha com programação Orientada o Objeto não utilizar esse tipo de método, pois ele funciona de uma forma quase que procedural. Tente usar esse tipo de método apenas em casos como os descritos pelo Guilherme.

Bons estudos!