1
resposta

Diferença entre métodos de classe @classmethod e métodos estáticos @staticmethod ?

Diferença entre métodos de classe @classmethod e métodos estáticos @staticmethod ?

1 resposta

A diferença Isabela não é muito difícil de entender, basicamente um método comum da classe, depende da classe para funcionar, logo ele não pode ser estático.

Já um método estático, ele não depende exclusivamente da classe para funcionar, ex:

Class Metodos{
string name;

//um metodo comum
public function returnName(){
    return this.name
}

//um metodo estático
public static function returnQualquerCoisa(){
    return "Não dependo da classe"
}
}

//estanciando o objeto
metodo = new Metodos('joao')

//chamando um método comum 
print metodo.returnName;
resultado: joao

//chamando um método estático
metodo2 = Metodos::returnQualquerCoisa()
print(metodo2)
resultado: não dependo da classe

Consegue ver a diferença? o primeiro método depende exclusivamente de um atributo da classe pai, enquanto o método estático não depende, inclusive posso chamar ele sem sequer estanciar a classe.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software