Menu
CoddyTech

Métodos Privados

Parte da seção Programação Orientada a Objetos do Journey de JavaScript da Coddy. Lição 19 de 56.

Métodos privados em classes JavaScript permitem ocultar detalhes de implementação e impedir o acesso externo a funcionalidades internas.

A partir do ES2022, métodos privados podem ser definidos usando o prefixo #:

class Counter {
  #count = 0;
  
  // Crie um método privado
  #increment() {
    this.#count++;
  }
  
  // Método público que usa o método privado
  addOne() {
    this.#increment();
    return this.#count;
  }
}

Vamos criar uma instância de Counter:

const myCounter = new Counter();

Podemos chamar o método público:

console.log(myCounter.addOne()); // Saída: 1

Mas tentar acessar diretamente o método privado causará um erro:

myCounter.#increment(); // Erro: O método privado não pode ser acessado fora da classe

Métodos privados ajudam a manter o encapsulamento, mantendo os detalhes internos de implementação ocultos do mundo externo.

challenge icon

Desafio

Você recebeu uma classe MessageBox que armazena mensagens. Sua tarefa é adicionar um método privado chamado #isValidMessage(text) que valida mensagens. Ele deve:

  • Retornar true se o texto não estiver vazio e tiver menos de 100 caracteres
  • Retornar false caso contrário

Experimente você mesmo

import { MessageBox } from './messageBox.js';

// Usando a caixa de mensagens
const box = new MessageBox();

console.log(box.setMessage("Hello"));    // "Message set!" (usa #isValidMessage)
console.log(box.setMessage(""));         // "Invalid message!" (usa #isValidMessage)
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Programação Orientada a Objetos

Pratique por conta própria: Compilador de JavaScript online