Modificadores de acesso controlam a visibilidade dos membros da classe, aplicando encapsulamento restringindo quem pode lê-los ou chamá-los.
Modificadores de acesso controlam a visibilidade dos membros da classe, aplicando encapsulamento restringindo quem pode lê-los ou chamá-los.
| Modificador | Acessível de |
|---|
public | Em qualquer lugar |
protected | A classe e suas subclasses |
private | Apenas dentro da classe declaradora |
public class Employee {
private double salary; // internal — only Employee touches it
protected String department; // subclasses may use it
public String name; // open to all
public double getSalary() { // controlled, public read access
return salary;
}
}
salary é privado, então nenhum código externo pode corrompê-lo; o getter público é a única janela para dentro.
class Demo:
def __init__(self):
self.public = 1
self._protected = 2 # convention only ("don't touch")
self.__private = 3 # name-mangled to _Demo__private
Python não força private — depende de convenções de nomenclatura. Java/C# aplicam modificadores em tempo de compilação. Java também possui package-private (padrão, sem palavra-chave).
Tornar tudo public derrota o encapsulamento. Padrão para o nível mais restritivo e expanda apenas quando uma necessidade real aparecer.
Modificadores de acesso são a ferramenta concreta que transforma encapsulamento de um princípio em uma regra que o compilador impõe.
Uma pequena área pública significa que menos código pode depender de internals, para que você possa refatorar livremente sem quebrar chamadores.
Uma biblioteca de perguntas de entrevista de TI com respostas detalhadas — de Júnior a Sênior.
Doar