JavaScriptPOObasico

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

Mais exercícios de POO

JSP021 · AvançadoClasse LinkedListJSP008 · Básicoinstanceof e verificação de tipoJSP009 · BásicoClasse abstrata simuladaJSP012 · IntermediárioHerança múltipla com mixin
Ver todos os exercícios de JavaScript