top of page
Foto del escritorJaime Franco Jimenez

Constructor y encapsular

Cuando creamos una clase, las propiedades tienen un estado inicial, como si vinieran de fábrica, quiere decir que cuando creamos un objeto ya tiene unas propiedades por defecto, pero ¿cómo indicamos los valores iniciales para un objeto?, si tenemos mas de un objeto, pues, debemos de usar lo que se conoce como constructor, que le da un estado inicial a los objetos, ahora mismo, tenemos cuatro propiedades que son comunes para todos los objetos.


¿Cómo se crea un constructor?

Para crear un constructor se pone la palabra def, espacio, dos guiones bajos, la palabra init, init de inicial, dos guiones bajos, entre paréntesis, selt y dos puntos.


Lo vamos a crear encima de las líneas de propiedades.


Dejamos una sangría para cada propiedad, y, antes de cada propiedad, ponemos self y punto.


Si ejecutamos el programa, sigue funcionando igual.


Añadimos una línea, ponemos el objeto bicicleta, ponemos punto, ponemos ruedas, e igualamos a 5, es decir, estamos cambiando el numero de ruedas para el objeto bicicleta2.


Al ejecutar, vemos que para el primer objeto aparecen dos ruedas, y, para el segundo objeto, aparecen 5 ruedas, es decir, estamos modificando el valor de una propiedad.


Encapsulación

Quiere decir proteger una propiedad para que no se pueda modificar fuera de la clase, hace referencia al ocultamiento de los estados internos de una clase al exterior, encapsular consiste en hacer que los atributos o métodos internos a una clase no se puedan acceder ni modificar desde fuera, tan solo el propio objeto puede acceder a dichas propiedades.


Ahora mismo, podemos acceder a todas las propiedades de la clase, hemos modificado la propiedad ruedas fuera de la clase, si no queremos que este cambio de produzca, debemos de encapsular la variable, o, propiedad.


Como se encapsula, pues, poniendo dos guiones bajos delante de la propiedad.


Podemos acceder a la propiedad desde dentro de la clase.


Hemos puesto una línea donde hemos cambiado el numero de ruedas para el objeto bicicleta2, aunque pongamos los dos guiones bajos, el valor de ruedas no será cambiado, porque la propiedad ruedas esta encapsulada.


Voy a agregar otro método, lo llamare imprimir, como sigue:


En una última línea, escribo:


Nos va a imprimir las ruedas que tiene el objeto bicicleta2, y, vemos que nos devuelve 2, aunque en la línea anterior, hemos cambiado el numero de ruedas para dicho objeto, porque no podemos acceder a la propiedad fuera de la clase.


Al poner la siguiente línea, vemos un listado de métodos y atributos de nuestra clase.


Las variables que comienzan por un doble guion bajo __ son atributos privados.


Encapsulación de métodos

En este ejemplo hemos creado una clase, y, dos instancias, que son bicicleta1, y, bicicleta2, dentro de la clase, hemos creado un constructor, y, dos métodos, también hemos visto, que, al poner dos guiones bajos delante de la propiedad, lo que hacemos en encapsular, para encapsular un método, lo hacemos igual que para una variable, es decir, poniendo delante del nombre del método dos guiones medios, por ejemplo, vamos a encapsular el método imprimir.


Imprimimos el método imprimir del objeto bicicleta1.


Al ejecutar nos devuelve un error la línea anterior de que el objeto bicicleta, el método imprimir no tiene atributo.



Miguel Angel Franco

0 visualizaciones0 comentarios

Comments


bottom of page