O que é um método estático?

Um método de programação de computador orientado a objeto que é declarado em uma classe, mas não depende de nenhuma instanciação específica dessa classe é chamada de método estático. A maioria das linguagens de programação inclui a palavra -chave estática na declaração de um método para tornar um método estático. Esses métodos pertencem estritamente à classe em que estão contidos e não a nenhum objeto instanciado dessa classe. Eles são frequentemente referidos como métodos de classe .

O nome literal da classe é normalmente usado para acessar um método estático em vez de se referir a ele com o nome de um objeto instanciado. É permitido em Java usar nomes de objetos para se referir a esses métodos, mas é fortemente desencorajado. Se um nome de objeto for usado, uma pessoa que lê o código poderá confundir um desses métodos com um método de instância. Eles também são usados ​​quando um programador precisaAcesse o método, mas não há necessidade de instanciar a classe em que está contido. As classes de utilitário normalmente não são instanciadas em objetos. Seria incomum um método de utilidade precisar modificar as informações do objeto. Um método da classe java.lang.math, como Pow (), seria um exemplo de como esse tipo de método seria usado em uma classe de utilitário.

Os métodos de instância podem acessar diretamente variáveis ​​de instância, variáveis ​​estáticas, métodos de instância e métodos estáticos. Os métodos estáticos não podem acessar diretamente variáveis ​​de instância e métodos de instância. Devido à natureza dos métodos de instância com melhor acesso aos membros da classe do que métodos estáticos, os métodos de instância são o tipo de métodos normalmente usados ​​em classes regulares.

Uma grande desvantagem dos métodos estáticos ocorre durante a herança quando o polimorfismo é usado. Enquanto o método estático pai não for declarado final, a mesma criançaO método estático pode ser codificado na classe infantil como se estivesse sendo substituída. Isso é tecnicamente chamado de esconderijo em vez de substituir porque um método estático não pode ser substituído.

Quando o esconderijo é usado, se o método estático pai for acessado usando o nome da classe, o método pai será usado. Se o método estático infantil substituído for acessado usando o nome do objeto, o método infantil substituído será usado. O problema ocorre quando um objeto infantil é aprimorado como pai. Nesse caso, uma chamada para o método estático da criança upcast usará o método pai em vez do método infantil esperado. Com o verdadeiro polimorfismo, o método infantil seria o ativado após um upcast.

OUTRAS LÍNGUAS

Este artigo foi útil? Obrigado pelo feedback Obrigado pelo feedback

Como podemos ajudar? Como podemos ajudar?