Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ya te expliqué en un artículo anterior que una clase Java no es más que un molde o receta con el
vas a crear un esquema del objeto que quieres instanciar. Como nosotros vamos a crear una
lámpara, vamos a crear el archivo Lampara.java:
En este caso he creado dos clases, la que voy a instanciar (Lampara) y otra, LamparaCreator, desde
la que voy a instanciar los objetos de tipo Lampara. Puedes ejecutar la clase: compila con
normalidad e instancia un objeto, pero no hace nada más.
En mi ejemplo concreto, voy a crear lámparas que van a tener un color (ya sea el color que se
introduzca al instanciar el objeto, o uno predeterminado) y que, por supuesto, se van a poder
encender y apagar.
En este paso voy a hacer uso de la encapsulación: es decir, las variables van a ser privadas y se va a
acceder a ellas a través de métodos que he creado con este fin.
De nuevo, la clase compila y se instancia el objeto. Pero, ¿qué hacemos con las variables? Hay que
inicializarlas creando nuestro propio constructor.
Si te fijas en el constructor, verás que, a la hora de instanciar, tengo dos opciones. Por un lado,
puedo instanciar un objeto sin ningún parámetro. Esto quiere decir que utilizo el constructor que
no admite parámetros que, a su vez, ejecuta el segundo constructor con el parámetro
predeterminado "Roja". Por otro lado, también puedo instanciar un objeto de tipo Lampara
utilizando el color que yo quiera.
Además, verás que la variable encendida se queda sin inicializar. Más adelante escribiré un artículo
sobre el valor predeterminado de las variables de clase o instancia; en este caso, al ser un boolean,
el valor predeterminado es false. Es decir, de manera predeterminada la lámpara está apagada.
Habrás observado que las variables que definen el color y el estado (encendida/apagada) de la
lámpara son privadas. El siguiente paso para aplicar el encapsulamiento consiste en crear unos
métodos para acceder o modificar estas variables.
Quizá te preguntes por qué no se puede permitir el acceso directo a las variables. La respuesta es
sencilla: si el acceso/modificación de las variables se realiza mediante un método, se puede
controlar que el valor que se le vaya a asignar a la variable sea un valor válido.
En el caso del nuestro objeto de tipo Lampara, el color de la lámpara no se va a poder modificar
una vez instanciada, pero sí se va a poder encender y apagar.
Como ves, he agregado unas líneas más de código en el método main de la clase LamparaCreator
para no solo instanciar un objeto, sino también para comprobar el color de la lámpara, para
comprobar si está encendida o apagada y para cambiarle este último estado.
En un inicio la lámpara está apagada (false); la segunda línea muestra el cambio de estado y, al
volver a imprimir el estado de la lámpara, vemos que está encendida (true).