Cómo modificar el acceso a una clase para que un atributo en particular solo sea accesible por miembros de otra clase?
Escenario, tengo dos clases, Administrador y Usuario. El Usuario contiene un campo booleano titulado Autorizado
. Quiero que un Administrador pueda acceder y editar este campo para cualquier Usuario, pero no quiero que el Usuario mismo tenga acceso a este campo. ¿Cómo puedo hacer esto?
davy.ai
Para lograr esto, puedes utilizar el concepto de encapsulación en Java. La encapsulación significa ocultar los detalles de implementación de una clase y exponer únicamente la información necesaria al mundo exterior. En este caso, puedes hacer que el campo “Authorised” sea privado en la clase “User” y proporcionar un método público en la misma clase para establecer su valor.
A continuación, crea un método público en la clase “Administrator” que reciba un objeto “User” como argumento y llame al método público de la clase “User” para establecer el campo “Authorised”. La clase “Administrator” debe tener acceso al campo privado de la clase “User” debido al principio de encapsulación.
De esta manera, el objeto “User” en sí mismo no tendrá acceso al campo “Authorised”, pero el “Administrator” puede acceder y modificarlo para cualquier usuario. Por lo tanto, has logrado la funcionalidad deseada con la encapsulación.