POO - Introducción.pptx.pdf
Document Details

Uploaded by ATeixeira
Full Transcript
FSE Fondo Social Europeo + Plus PROGRAMACIÓN ORIENTADA A OBJETOS INTRODUCCIÓN FSE Fondo Social Europeo + Plus Qué es la programación orientada a objetos La programación orientada a objetos (POO) es un paradigma de programación que se basa en el concepto de "objetos", que pueden contener datos (en fo...
FSE Fondo Social Europeo + Plus PROGRAMACIÓN ORIENTADA A OBJETOS INTRODUCCIÓN FSE Fondo Social Europeo + Plus Qué es la programación orientada a objetos La programación orientada a objetos (POO) es un paradigma de programación que se basa en el concepto de "objetos", que pueden contener datos (en forma de atributos) y código (en forma de métodos). En la POO, los objetos representan entidades del mundo real o conceptos abstractos, y el diseño del programa se centra en identificar estas entidades y las interacciones entre ellas. En POO, los objetos interactúan entre sí a través de mensajes para realizar tareas específicas. Este enfoque se aleja del paradigma procedimental, donde el programa se estructura en torno a funciones o procedimientos. FSE Fondo Social Europeo + Plus HISTORIA Historia Década de 1960: Emergen los conceptos fundamentales de la POO. ○ 1962-1967: Desarrollo del lenguaje Simula por Ole-Johan Dahl y Kristen Nygaard en Noruega, que introduce clases y herencia. La programación orientada a objetos surgió como una evolución natural de los paradigmas de Década de 1970: Consolidación y expansión de la como POO. la programación estructurada. programación anteriores, ○ 1972: Alan Kay y otros en Xerox PARC desarrollan Smalltalk, fortaleciendo la idea de mensajes entre objetos y interactividad. Ala medida que los programas se volvían más complejos y las demandas de modularidad, Década de 1980: Crecimiento y popularización de la POO. reutilización y flexibilidad aumentaban, se hizo evidente la necesidad de un enfoque más ○ 1983: Bjarne Stroustrup crea C++, que añade capacidades de POO al lenguaje C. orientado a objetos. ○ A finales de los 80: La POO se convierte en el método preferido para el desarrollo de software a gran escala. Década de 1990: La POO alcanza la adopción masiva. La historia de la POO se remonta a la década de 1960, con el desarrollo de lenguajes como ○ 1991: Sun Microsystems lanza Java, diseñado por James Gosling, promoviendo la portabilidad y enfocándose Simula y Smalltalk. Sin embargo, fue con la popularización de lenguajes como C++ y Java en la en la robustez de la POO. Java además incluye una gestión automática de la memoria. década deMicrosoft 1990 cuando la POO una amplia adopción en la industria del Desde ○ 1995: introduce C# y alcanzó.NET Framework, incorporando principios de POO en susoftware. ecosistema de entonces, desarrollo.la programación orientada a objetos se ha convertido en uno de los paradigmas Siglo dominantes XXI: La POO en desarrollo webde y modernización. enelel desarrollo software, utilizado en una amplia gama de aplicaciones y ○ Años 2000 en adelante: La POO se incorporasistemas. en el desarrollo web, con tecnologías como ASP.NET. ○ Evolución continua: JavaScript y otros lenguajes web adoptan características de POO, como clases y herencia, a través de actualizaciones de ECMAScript (ES6 y posteriores). FSE Fondo Social Europeo + Plus FSE Fondo Social Europeo + Plus Clases y objetos Las clases son estructuras que definen el comportamiento y los atributos de los objetos. Los objetos son instancias específicas de una clase y representan entidades del mundo real o conceptos abstractos. Las clases y objetos permiten modelar el mundo real en el código, lo que facilita la comprensión y resolución de problemas complejos. Ejemplos: Una clase "Coche" con atributos como "marca" y "modelo", y métodos como "arrancar" y "detener". FSE Fondo Social Europeo + Plus FSE Fondo Social Europeo + Plus Conceptos clave de la POO Encapsulación: Encerrar datos y métodos dentro de una clase para ocultar los detalles de implementación y proporcionar protección de datos. Herencia: Permitir que las clases hereden atributos y métodos de otras clases, creando una jerarquía de clases. Polimorfismo: Permite que los objetos adopten múltiples formas o comportamientos en función de su jerarquía de clases. Abstracción: Simplificación de sistemas complejos dividiéndolos en módulos manejables y comprensibles. FSE Fondo Social Europeo + Plus ENCAPSULACIÓN La encapsulación es el proceso de ocultar los detalles de implementación de un objeto y exponer solo una interfaz pública. Permite mantener la integridad y coherencia de los datos al restringir el acceso a ellos desde fuera de la clase. Los atributos de la clase se declaran como privados y solo se accede a ellos a través de métodos públicos (getters y setters). Esto protege los datos y evita que se modifiquen de manera incorrecta desde fuera de la clase. Además reduce la complejidad para otros desarrolladores o programas que utilizan la clase, ya que no necesitan comprender los detalles internos para utilizarla. En una clase Automóvil, atributos como velocidad o nivelDeCombustible se mantienen privados, y se proveen métodos privados o públicos como acelerar o recargarCombustible() para interactuar con estos datos. FSE Fondo Social Europeo + Plus FSE Fondo Social Europeo + Plus HERENCIA La herencia es un principio de la programación orientada a objetos que permite a una clase heredar atributos y métodos de otra clase, facilitando la reutilización de código y la creación de jerarquías de clases. Las clases derivadas reutilizan el código de las clases base sin necesidad de duplicarlo. La Jerarquía de Clases facilita la organización de clases en estructuras jerárquicas claras. Las clases derivadas pueden sobrescribir o extender las funcionalidades de las clases base. Esto se conoce como “polimorfismo”. Herencia Simple: Una clase deriva de una única clase base. Este es el modelo seguido por Java y C# Herencia Múltiple: Una clase puede heredar comportamientos y atributos de más de una clase base. Esto es posible en lenguajes como Python y C++. Herencia Multinivel: Una clase deriva de otra que a su vez es derivada de otra clase, y así sucesivamente, formando una jerarquía de clases FSE Fondo Social Europeo + Plus FSE Fondo Social Europeo + Plus POLIMORFISMO El polimorfismo es un concepto fundamental en la programación orientada a objetos (OOP) que permite a objetos de diferentes clases ser tratados como objetos de una clase común. La palabra "polimorfismo" proviene del griego y significa "muchas formas". En OOP, se refiere a la capacidad de un método para hacer cosas diferentes basadas en el objeto al que se aplica o al contexto en el que se llama. Sobrescritura de Métodos: Ocurre cuando una clase derivada tiene una definición diferente para un método que ya está definido en su clase base. Esto permite que el mismo método tenga comportamientos diferentes. Por ejemplo, un método dibujar() podría ser implementado de manera diferente en las clases Circulo, Cuadrado, y Triangulo. Sobrecarga de Métodos: La sobrecarga permite que existan múltiples métodos en la misma clase con el mismo nombre pero diferentes listas de parámetros (diferente número de parámetros o tipos de parámetros). Por ejemplo pintar(color) y pintar(color1, color2). También diferentes vehículos sonarán diferente al ejecutar el método tocarClaxon() FSE Fondo Social Europeo + Plus FSE Fondo Social Europeo + Plus ABSTRACCIÓN Se refiere al proceso de ocultar la complejidad innecesaria de un sistema mientras se exponen las características esenciales. En el contexto de POO, la abstracción implica la creación de modelos o sistemas que capturan solo las características pertinentes de los objetos que están modelando, ignorando detalles irrelevantes o accidentales. Objetivos: Simplificar el diseño: Al reducir la complejidad, los desarrolladores pueden concentrarse en interacciones a alto nivel entre objetos. Incrementar la reutilización: Al generalizar características o comportamientos, la abstracción facilita la reutilización de componentes y clases en diferentes partes de una aplicación o en diferentes proyectos. Reducir el acoplamiento: Al ocultar detalles de implementación y exponer solo interfaces a otras partes del código, se reduce la dependencia entre diferentes partes de un programa. FSE Fondo Social Europeo + Plus FSE Fondo Social Europeo + Plus Beneficios de la POO Reutilización de código: POO permite reutilizar clases y objetos en diferentes programas, ahorrando tiempo y esfuerzo. Modularidad: la división del código en objetos y clases facilita la comprensión, la depuración y el mantenimiento. Flexibilidad: POO le permite modificar y extender fácilmente el código sin afectar otras partes del programa. Seguridad: La encapsulación proporciona protección de datos y evita el acceso no autorizado a información confidencial. FSE Fondo Social Europeo + Plus FSE Fondo Social Europeo + Plus PREGUNTAS