Sobes.tech
Junior

O que significa o termo 'estático'?

sobes.tech IA

Resposta da IA

Na programação, o termo "estático" pode referir-se a diferentes conceitos, mas geralmente indica algo relacionado com o tempo de compilação ou à pertença a uma classe, e não a uma instância específica de um objeto.

  • Ligação estática (Static Binding): A definição da função chamada ocorre em tempo de compilação, não em tempo de execução. Isto é oposto à ligação dinâmica.
  • Variáveis/Campos estáticos (Static Variables/Fields): Variáveis que pertencem à classe, não a uma instância concreta dessa classe. Todos os objetos de uma mesma classe partilham a mesma variável estática. São inicializadas ao carregar a classe e existem numa única instância.
  • Métodos estáticos (Static Methods): Métodos que pertencem à classe, não a um objeto específico. Podem ser chamados diretamente pelo nome da classe sem criar uma instância. Os métodos estáticos não têm acesso aos campos não estáticos da classe, pois não estão ligados a uma instância concreta.
  • Análise estática de código (Static Code Analysis): Análise do código fonte do programa sem executá-lo. Usada para detectar erros potenciais, vulnerabilidades ou violações dos padrões de codificação em fases iniciais do desenvolvimento.

No contexto de QA, a análise estática e os testes de código são partes importantes do processo, ajudando a melhorar a qualidade antes da fase de testes dinâmicos e execução do código.

Exemplo de campo e método estáticos em Java:

class Counter {
    static int count = 0; // Campo estático

    Counter() {
        count++;
    }

    static void displayCount() { // Método estático
        System.out.println("Número de instâncias: " + count);
    }
}

// Uso
// Counter obj1 = new Counter();
// Counter obj2 = new Counter();
// Counter.displayCount(); // Chamada do método estático pelo nome da classe