method java protection

method - scope protected java



¿Por qué puedo acceder directamente a mis variables privadas del "otro" objeto, en mi método igual(Objeto o) (2)

En Java, en el método equals (Object o) puedo acceder a las variables privadas del objeto pasado sin pasar por sus captadores públicos.

public boolean equals(Object o){ ... MyObject other = (MyObject)o; return getProp() == other.prop; }

¿Como es que?


La respuesta probable es que el diseñador del modelo de visibilidad considera que cualquier desarrollador que trabaje en una clase debe dominar la implementación de toda la clase.

Pero esta es una mala idea . Esto fomenta la mala práctica. Un desarrollador que accede a un campo de Person , en la clase Person , no tiene que conocer la implementación de toda la clase. La buena práctica es utilizar el dispositivo de acceso, sin tener que saber qué operaciones realiza el dispositivo de acceso.


Se puede acceder a los datos privados desde cualquier instancia de esa clase, incluso si una instancia de la clase A está accediendo a los miembros privados de otra instancia de A. Es importante recordar que los modificadores de acceso (privado, protegido, público) controlan el acceso de clase , no acceso a instancias .