0Pricing
TypeScript Academy · Aula

Modificadores public, private e protected

Controle o acesso aos membros da classe com modificadores

Modificadores public, private e protected é uma aula grátis de TypeScript Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de TypeScript Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de TypeScript Academy inclui 4 aulas no total.

Boas-vindas

Os modificadores de acesso do TypeScript controlam a visibilidade dos membros das classes. Eles ajudam a impor o encapsulamento e a impedir usos não intencionais.

público: acessível em todos os lugares

público é o padrão. Os membros públicos podem ser acessados de qualquer lugar — dentro da classe, pelas subclasses e pelo código externo.
class Car {
  public brand: string;
  constructor(brand: string) { this.brand = brand; }
}
const c = new Car('Toyota');
console.log(c.brand); // OK

privado: acesso somente pela classe

Os membros privados só podem ser acessados dentro da classe que os declara. As subclasses e o código externo não podem acessá-los.
class BankAccount {
  private balance: number = 0;
  deposit(n: number) { this.balance += n; }
}
const a = new BankAccount();
// a.balance; // Error!

protegido: acesso pela classe e pelas subclasses

Os membros protegidos podem ser acessados dentro da classe que os declara e por qualquer subclasse, mas não pelo código externo.
class Animal {
  protected name: string;
  constructor(name: string) { this.name = name; }
}
class Dog extends Animal {
  bark() { console.log(this.name + ' says woof!'); } // OK
}

Imposição somente em tempo de compilação

Os modificadores de acesso do TypeScript são apenas verificações em tempo de compilação. A saída JavaScript ainda tem propriedades públicas — não há imposição em tempo de execução.

Privado do JavaScript com #

O JavaScript tem campos privados nativos com `#`, cuja privacidade é imposta em tempo de execução. O TypeScript oferece suporte a essa sintaxe juntamente com sua própria palavra-chave `private`.
class Counter {
  #count = 0; // runtime private (JavaScript)
  increment() { this.#count++; }
  get value() { return this.#count; }
}

Modificador readonly

As propriedades readonly só podem ser definidas durante a construção. Elas não podem ser alteradas após a inicialização.
class User {
  readonly id: number;
  constructor(id: number) { this.id = id; }
}
const u = new User(1);
// u.id = 2; // Error!

Combinando modificadores

Você pode combinar modificadores de acesso com readonly na mesma propriedade.
class Config {
  constructor(
    public readonly host: string,
    private readonly port: number
  ) {}
}

private no construtor

Tornar um construtor privado impede a instanciação externa. Em vez disso, utilize métodos de fábrica estáticos.
class Singleton {
  private static instance: Singleton;
  private constructor() {}
  static getInstance(): Singleton {
    return this.instance ??= new Singleton();
  }
}

Construtor protegido

Um construtor protegido impede a instanciação direta, mas permite que as subclasses o chamem por meio de super().
class Base {
  protected constructor(public id: number) {}
}
class Derived extends Base {
  constructor(id: number) { super(id); }
}

Os modificadores de acesso não adicionam sobrecarga em tempo de execução

Como o TypeScript remove todas as informações de tipos, os modificadores de acesso não têm impacto algum no tamanho ou no desempenho da saída JavaScript compilada.

Verificação rápida

Qual modificador de acesso torna um membro da classe acessível na classe E em suas subclasses, mas NÃO no código externo?

Recapitulação

Utilize público (padrão) para membros acessíveis, privado para elementos internos encapsulados e protegido para membros destinados às subclasses. Adicione readonly para impedir alterações após a construção.

Perguntas Frequentes

A aula “Modificadores public, private e protected” é grátis?

Sim — o texto completo de “Modificadores public, private e protected” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de TypeScript Academy, atualize para CoddyKit PRO. O curso de TypeScript Academy inclui 4 aulas no total.

O que vou aprender em “Modificadores public, private e protected”?

Controle o acesso aos membros da classe com modificadores Você pratica TypeScript Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar TypeScript Academy?

Nenhuma experiência prévia é necessária. TypeScript Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.

Quanto tempo leva a aula “Modificadores public, private e protected”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de TypeScript Academy?

Sim. Cada aula de TypeScript Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Classes e construtores em TypeScript
  2. Modificadores public, private e protected
  3. Propriedades readonly e propriedades de parâmetros
  4. Implementando interfaces com classes
← Voltar para TypeScript Academy