Herramientas de usuario

Herramientas del sitio


informatica:programacion:programacion_orientada_a_objetos

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
informatica:programacion:programacion_orientada_a_objetos [2024/11/08 13:00] – [Pilares] tempwininformatica:programacion:programacion_orientada_a_objetos [2024/11/08 13:16] (actual) – [Recursos] tempwin
Línea 10: Línea 10:
 ===== Pilares ===== ===== Pilares =====
  
-  * Encapsulación +  * Encapsulamiento
-  * Herencia +
-  * Cohesión+
   * Abstracción   * Abstracción
 +  * Herencia
   * Polimorfismo   * Polimorfismo
-  * Acoplamiento 
  
 +En programación orientada a objetos veremos mucho también los conceptos siguientes:
  
 +  * Acoplamiento
 +  * Cohesión
 ===== Conceptos ===== ===== Conceptos =====
  
Línea 28: Línea 29:
   * Evento   * Evento
   * Mensaje: acción de efectuar una llamada a un método.   * Mensaje: acción de efectuar una llamada a un método.
 +
 +==== Encapsulamiento ====
 +
 +Consiste en asegurar que la información de un objeto se oculta del mundo exterior.
 +
 +Al definir una clase, es importante proteger algunos métodos y propiedades para que no sean accesibles desde otras. Esto se consigue con los modificadores de acceso (//public//, //private//, //protected//).
 +
 +<WRAP center round todo 60%>
 +Poner ejemplo
 +</WRAP>
 +
 +
 +==== Abstracción ====
 +
 +Implica que la clase debe representar las características de la entidad hacia el mundo exterior, pero ocultando la complejidad que llevan aparejada. O sea, nos abstrae de la complejidad que haya dentro dándonos una serie de atributos y comportamientos (propiedades y funciones) que podemos usar sin preocuparnos de qué pasa por dentro cuando lo hagamos.
 +
 +La abstracción está muy relacionada con el encapsulamiento, pero va un paso más allá pues no sólo controla el acceso a la información, sino también oculta la complejidad de los procesos que estemos implementando.
  
 ==== Herencia ==== ==== Herencia ====
Línea 71: Línea 89:
 Las clases hijas **heredarán** las propiedades y métodos de la clase padre y evitaremos duplicar código. Las clases hijas **heredarán** las propiedades y métodos de la clase padre y evitaremos duplicar código.
  
-==== Modularización ====+==== Polimorfismo ====
  
-Se basa en tener clases especializadas para que los cambios en una, no afecte a las otras. De esta forma además se hace más sencillo el mantenimiento.+Capacidad que tienen los objetos de una clase de responder al mismo mensaje o evento.
  
-==== Encapsulamiento ====+Si tenemos una clase **Persona** con el método ''Registrarse()'' y unas clases hijas **Empleado** y **Cliente** que heredan ese método. Cada clase hija puede sobrescribir la lógica de dicho método de tal forma que cuando se use ''Registrarse()'' en un objeto de tipo **Empleado** haga una cosa y cuando se use en **Cliente** haga otra. Sin embargo, el nombre del método es el mismo. Eso es polimorfismo.
  
-Consiste en asegurar que la información de un objeto se oculta del mundo exterior.+El poliformismo:
  
-Al definir una clase, es importante proteger algunos métodos propiedades para que no sean accesibles desde otras. Esto se consigue con los modificadores de acceso (//public//, //private//, //protected//).+  * Evita usar muchos ''if'' ''switch'' en toma de decisiones 
 +  * Simplifica la programación
  
-<WRAP center round todo 60%> 
-Poner ejemplo 
-</WRAP> 
  
-==== Polimorfismo ==== 
- 
-Capacidad que tienen los objetos de una clase de responder al mismo mensaje o evento. 
- 
-Si tenemos una clase **Persona** con el método ''Registrarse()'' y unas clases hijas **Empleado** y **Cliente** que heredan ese método. Cada clase hija puede sobrescribir la lógica de dicho método de tal forma que cuando se use ''Registrarse()'' en un objeto de tipo **Empleado** haga una cosa y cuando se use en **Cliente** haga otra. Sin embargo, el nombre del método es el mismo. Eso es polimorfismo. 
 ===== Objetos ===== ===== Objetos =====
  
Línea 107: Línea 118:
  
  
 +===== Resumen de la Programación Orientada a Objetos =====
 +
 +  * La POO permite **modelar entidades** para trabajar con ellas.
 +  * Una **clase** es una plantilla.
 +  * Un **objeto** o **instancia** es una implementación concreta de la clase.
 +  * **Instanciar**: crear un objeto a partird e una clase.
 +  * Pilares de la POO:
 +    * Encapsulamiento
 +    * Abstracción
 +    * Herencia
 +    * Polimorfismo
 ===== Literatura recomendada ===== ===== Literatura recomendada =====
  
Línea 119: Línea 141:
 ===== Recursos ===== ===== Recursos =====
  
-  * [[https://www.youtube.com/watch?v=zsw54F3aFNs| TUTORIAL: Programación Orientada a Objetos (POO): Entiéndelo BIEN por fin ]]+  * [[https://www.youtube.com/watch?v=zsw54F3aFNs|TUTORIAL: Programación Orientada a Objetos (POO): Entiéndelo BIEN por fin]] 
 +  * [[https://www.campusmvp.es/recursos/post/los-conceptos-fundamentales-sobre-programacion-orientada-objetos-explicados-de-manera-simple.aspx|Los conceptos fundamentales sobre Programación Orientada Objetos explicados de manera simple]]
informatica/programacion/programacion_orientada_a_objetos.1731067233.txt.gz · Última modificación: por tempwin