Los modificadores de acceso controlan la visibilidad de los miembros de la clase, haciendo cumplir la encapsulación al restringir quién puede leerlos o llamarlos.
Los modificadores de acceso controlan la visibilidad de los miembros de la clase, haciendo cumplir la encapsulación al restringir quién puede leerlos o llamarlos.
| Modifier | Accessible from |
|---|
public | En cualquier lugar |
protected | La clase y sus subclases |
private | Solo dentro de la clase que la declara |
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 es private por lo que ningún código externo puede corromperlo; el getter público es la única ventana.
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 no tiene private forzado — se basa en convenciones de nomenclatura. Java/C# hacen cumplir los modificadores en tiempo de compilación. Java también tiene package-private (el predeterminado, sin palabra clave).
Hacer todo public anula la encapsulación. Comienza con el nivel más restrictivo y amplía solo cuando surge una necesidad real.
Los modificadores de acceso son la herramienta concreta que convierte la encapsulación de un principio en una regla aplicada que verifica el compilador.
Una pequeña superficie pública significa que menos código puede depender de los internals, por lo que puede refactorizar libremente sin romper los llamadores.
Una biblioteca de preguntas de entrevista de IT con respuestas detalladas — de Junior a Senior.
Donar