Contador de instâncias
Quando você gerencia conexões com banco de dados ou recursos limitados, precisa saber quantas estão ativas. Um campo estático resolve isso: o valor é compartilhado entre todas as instâncias, diferente de um campo de instância que cada objeto teria o seu próprio. É como um contador global controlado pela classe.
O PROBLEMA
Crie classe Conexao com campo estático #total. Cada instância incrementa o contador. Método estático getTotalConexoes().
EXEMPLO
const c1 = new Conexao(); const c2 = new Conexao(); Conexao.getTotalConexoes() → 2
SOBRE O CONCEITO
O campo #total é estático (static #total), ou seja, pertence à classe Conexao, não a cada objeto. No construtor, usa-se Conexao.#total++ (ou this.constructor.#total++) para incrementar. O erro mais comum é usar this.#total — isso criaria um campo de instância privado, nunca compartilhado, e o contador nunca passaria de 1. Outro erro é não inicializar o campo estático com static #total = 0; — sem isso, Conexao.#total vale undefined e o incremento resulta em NaN. O método getTotalConexoes() acessa Conexao.#total e retorna o valor acumulado.
RESOLUÇÃO