Segunda Parte – Propiedades o Métodos Get y Set.

Publicado por el 8/06/2016. Categoría: Programación Orientada a Objetos

¡Hola programadores/as! En el post anterior vimos qué son, cuándo se utilizaban y para que servían las propiedades o métodos get y set de una clase. Hoy nos adentraremos más en el tema y veremos con un ejemplo gráfico cómo funcionan.

Hay mucha información de las propiedades en la red pero cada autor se refiere al uso de éstas para un lenguaje en particular, trataré de ser objetiva y no referirme a ningún lenguaje para que se entienda mejor. Buscando más información he encontrado opiniones que dicen que el uso de estas propiedades no es bueno mientras que otras opiniones dicen lo contrario, es más hay un artículo de IBM que muestra las mejores prácticas a la hora de usar PHPOO les dejo el link aquí para el que tenga curiosidad de aprender más. Para mí las propiedades son una buena práctica a la hora de programar ya que se utilizan principalmente para preservar el ocultamiento de datos ya que ningún atributo de una clase se debería poder ver o modificar por otros objetos, lo que da lugar a uno de los pilares fundamentales de la POO, el encapsulamiento.

Ahora veamos en el ejemplo que propongo con dos objetos, un objeto al que llamaremos “Auto” y otro “Marcelo” (que sería el conductor designado de nuestro ejemplo, ¡jaja!), todo lo que sea parte del objeto “Auto” estará resaltado en azul y lo que sea parte del objeto “Marcelo” estará resaltado en verde, esto es para ser más clara en la explicación.

En el ejemplo, si el objeto “Marcelo” quiere utilizar el objeto “Auto” mediante el  método público “conducirAlTrabajo()” (método público del objeto “Marcelo”) éste debería antes que nada, instanciar al objeto “Auto” y luego llamar a los métodos y propiedades públicos de la clase “Auto”, “acelerar()”, “frenar()” y “getCambio()”, que a su vez este último llama al atributo privado de la clase “Auto”;  “cambio” (en este caso tiene el valor tercera) permitiendo así un acceso seguro y controlado al valor del atributo privado de la clase “Auto”. Si el objeto “Marcelo” quisiera acceder por ejemplo al atributo “marca” del objeto “Auto” no podría ya que no tiene acceso porque está definido como privado y solo es accesible por los métodos del objeto “Auto”.  ¿Confundid@? Bueno veámoslo en una imagen simple:

Ejemplo de Encapsulamiento

Objetos representados con la notación de UML

Si tienes dudas acerca de los estados que pueden tener un atributo o método, a estados me refiero a privado, público o protegido te recomiendo que leas el post Conceptos básicos y pilares de la Programación Orientada a Objetos (POO), donde lo explico detalladamente.

Haciendo un breve resumen de lo que vimos podemos llegar a la conclusión de que un atributo es accesible sólo por los métodos o propiedades de esa clase u objeto y que si un objeto externo quiere acceder a un atributo privado no podrá y tendrá que ver si existe alguna propiedad get o set que le permita tener un acceso seguro y controlado. Bueno esto ha sido todo por hoy. Espero que les haya servido y ayudado, si es así no duden en compartir con sus amig@s. Gracias por leerme y como siempre digo, sus comentarios y sugerencias siempre son bienvenidos! Saludos! 😉

cc
Los textos e imágenes de este sitio están disponibles bajo una licencia Creative Commons Atribución 2.5 Argentina.

Puedes compartir nuestro post en los siguientes medios:

Emi Garin es una programadora y diseñadora web apasionada por las nuevas tecnologías y el constante aprendizaje. Estudió analista y programador superior de sistemas y le encanta la cocina y la pastelería.

  1. lucas dice:

    El 28 tengo examen podrias en cuanto puedas seguir con ejemplos sencillos explicados paso a paso?

    no me queda claro el tema de list of (me marea bastante), como es la comunicacion entre clases?? y demas cosas que me marean mucho.

    muchas gracias!!!

    excelente explicacion.

    • Emi Garin dice:

      Hola Lucas, me alegro que te sirvan las explicaciones. Te hago una consulta con comunicación a clases te referis a relaciones de agregación, composición y eso? Y lo que me decis del tema “list of” a que te referís explícitamente? Avisame así vemos si te puedo dar una mano. 😉 Saludos!

  2. Sebastian dice:

    Muy buena la explicación!

    esperando la próxima entrada 🙂

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *