JavaScriptPOObasico

Getters e setters

Em projetos reais, você frequentemente precisa controlar como uma propriedade de objeto é lida ou modificada — por exemplo, garantir que um valor seja positivo ou que um cálculo seja feito sob demanda. Getters e setters permitem encapsular essa lógica sem expor os detalhes internos, mantendo a API do objeto limpa e segura. Dominar esse padrão é essencial para escrever classes robustas e evitar efeitos colaterais inesperados.

O PROBLEMA

Crie classe Circulo com #raio privado, getter area, getter perimetro e setter raio que valida valor positivo.

EXEMPLO

const c = new Circulo(5);
c.area → 78.54
c.perimetro → 31.42
c.raio = -1 → throw Error

SOBRE O CONCEITO

A classe Circulo usa um campo privado #raio para armazenar o valor internamente, impedindo acesso direto de fora — isso é a encapsulação. O getter area calcula e retorna a área usando Math.PI e **, e o getter perimetro calcula o perímetro. Eles são acessados como propriedades, sem (). O setter raio valida se o novo valor é positivo; caso contrário, lança um erro com throw. Erros comuns incluem chamar o getter com parênteses (ex.: c.area() — mas ele é uma propriedade, não um método), esquecer o # no nome do campo privado (tornando-o público) e não validar no setter, permitindo valores inválidos sem aviso.

RESOLUÇÃO

Mais exercícios de POO

JSP021 · AvançadoClasse LinkedListJSP005 · BásicoContador de instânciasJSP008 · Básicoinstanceof e verificação de tipoJSP009 · BásicoClasse abstrata simulada
Ver todos os exercícios de JavaScript