Please enable JavaScript.
Coggle requires JavaScript to display documents.
Programación Orientada a Objetos, Aplicaciones - Coggle Diagram
Programación Orientada a Objetos
Conceptos clave
Clase
: Plantilla o molde para crear objetos
Objeto
: Instancia de una clase
Atributos
: Características o propiedades de un objeto
Métodos
: Comportamientos o funciones
Pilares
:
-
Abstracción
: Representar lo esencial
-
Encapsulamiento
: Ocultar detalles internos
-
Herencia
: Reutilizar código de clases padre
-
Polimorfismo
: Un mismo método con diferentes formas
Definición
paradigma de programación que organiza el código en torno a objetos, en lugar de funciones y lógica.
Datos
atributos
Comportamientos
métodos
Busca organizar, reutilizar y mantener mejor el código
Características
Abstracción
Permite centrarse en los
aspectos esenciales
de un objeto
Oculta los detalles de implementación
Representa objetos del mundo real en el programa
Encapsulamiento
Agrupa atributos y métodos en una
unidad (clase)
Protege los datos mediante modificadores de acceso
Publico
Privado
Protegido
Evita accesos no autorizados o modificaciones indebidas
Beneficio: mayor seguridad y control sobre los datos
Herencia
Permite crear nuevas clases a partir de otras existentes
La clase hija (subclase)
hereda
atributos y métodos de la clase padre (superclase)
Tipos de herencia en Python:
Simple (una sola clase padre)
Múltiple (varias clases padre)
Jerárquica
Multinivel
Facilita la reutilización de código
Polimorfismo
"Muchas formas" → un mismo método puede tener diferentes implementaciones
Sobrecarga (overloading) → un método se comporta distinto según los parámetros
Sobrescritura (overriding) → una subclase redefine un método de la superclase
Permite flexibilidad en el diseño del sistema
Modularidad
El código se organiza en
módulos y clases independientes
Cada módulo se encarga de una responsabilidad específica
Facilita:
Lectura
Depuración
Escalabilidad
Permite que varios programadores trabajen en distintas partes del sistema
pilares de la programacion en java
la POO se rige por 4 principales pilares fundamentales que le otorgan flexibilidad y potencia
Encapsulamiento: consiste en agrupar en una sola entidad
polimorfismo: En programación, se refiere a la capacidad de los objetos de diferentes clases de responder al mismo mensaje
Abstracción
Es la capacidad de enfocarse en las características esenciales de un objeto
Reutilización de Código
Uso de clases y métodos ya implementados en nuevos programas
Menor tiempo de desarrollo
Reducción de errores al aprovechar código probado
Se logra principalmente gracias a:
Herencia
Polimorfismo
Librerías y frameworks orientados a objetos
Organización lógica
La organización lógica se refiere a la manera en que se estructuran y agrupan los elementos del código (clases, objetos, métodos y atributos) para representar de forma coherente el dominio del problema. No se trata del orden físico en archivos, sino de la relación conceptual y jerárquica entre los componentes.
Caracteristicas
1.
Clases y objetos como base
-Las clases definen la estructura y el comportamiento.
-Los objetos son instancias de clases y representan entidades concretas.
Jerarquía y Herencia
-Se organiza mediante herencia (superclases y subclases) para reutilización y extensión.
-Ejemplo: Vehiculo → Auto → AutoElectrico.
Paquetes o Módulos
-Se agrupan clases relacionadas en paquetes o namespaces, siguiendo la lógica del dominio.
-Ejemplo: un sistema bancario puede tener paquetes como clientes, cuentas, transacciones.
Relaciones entre Clases
-Asociación, composición y agregación definen cómo se comunican.
-Ejemplo: un Pedido contiene una lista de Producto.
Aplicaciones
Desarrollo de software empresarial
Aplicaciones moviles
Sistemas de bases de datos
Ventajas de la POO
Código más modular y legible
Reutilización en diferentes proyectos
Fácil mantenimiento y escalabilidad
Modela problemas complejos de forma realista
Lenguajes orientados a objetos
Interfaces y clases abstractas, definen contratos sin implementación completas y sobre carga los métodos como el modificar o refinir comportamientos constructores y destructores que inicializa los objetos que puede reutilizar el código
Java, C++, C#
Multi programas, Python, Javascript, PHP, Ruby