Esta es mi pregunta de tarea: ¿Cuál de las siguientes clases NO está bien encapsulada?Estrechamente encapsulada Clase
class A
{
private int x;
}
class B
{
private int x;
public void setX(int x)
{
this.x=x;
}
public int getX()
{
return x;
}
}
class C
{
private int x;
private void setX(int x)
{
this.x=x;
}
private int getX()
{
return x;
}
}
Pasé algún tiempo buscando en coderanch pero no pude obtener las cosas necesarias. ¿Alguien puede ayudarme por favor?
Lo que creo que es Clase C no está bien encapsulado, porque los métodos son privados. Y sobre la clase A, lo que siento es que no está encapsulado solo. Debido a que la definición básica de encapsulación dice que "debe ocultar sus miembros y proporcionar a los métodos de usuario de la clase que se comporten de la manera que desee". Ahora la clase A no tiene métodos de acceso-mutador. Por lo tanto, A no debe considerarse encapsulado. No estoy seguro, pero Por favor, corríjame si estoy equivocado.
Esto probablemente no te ayudará, pero la pregunta es planteada (presumiblemente por tus instructores) de una manera absurdamente abstracta. Una clase está fuertemente encapsulada cuando solo expone la interfaz que sus clientes necesitan. Es casi imposible decir de manera significativa sin conocer el propósito de una clase determinada. – millimoose