1.1 Fundamentos POO.pdf
Document Details
Uploaded by Deleted User
Full Transcript
Fundamentos de la Programación Orientada a Objetos Ing. María de Lourdes Loaiza MSc. Introducción a POO La programación orientada a objetos (POO) es un paradigma (modelo) de programación con importante conjunto de técnicas que pueden utilizarse para hacer el desarro...
Fundamentos de la Programación Orientada a Objetos Ing. María de Lourdes Loaiza MSc. Introducción a POO La programación orientada a objetos (POO) es un paradigma (modelo) de programación con importante conjunto de técnicas que pueden utilizarse para hacer el desarrollo de programas más eficiente, a la par que mejora la fiabilidad de los programas de computadora. Se parte del concepto de objetos que son los elementos principales, estos contienen información en forma de atributos (campos) y código en forma de métodos (acciones) 8/10/2024 Ing. María de Lourdes Loaiza MSc. 2 ¿Que es la POO? Según Grady Booch: “un método de implementación en el que los programas se organizan como colecciones cooperativas de objetos, cada uno de los cuales representa una instancia de alguna clase, y cuyas clases son todas miembros de una jerarquía de clases unidas mediante relaciones de herencia.” Utiliza objetos, no algoritmos, como bloques de construcción lógicos (jerarquía de objetos). Cada objeto es una instancia de una clase. Las clases se relacionan unas con otras por medio de relaciones de herencia. Si cualquiera de estos elementos no existe, no es una programación orientada a objetos. 8/10/2024 Ing. María de Lourdes Loaiza MSc. 3 Objetos. La idea fundamental en los lenguajes orientados a objetos es combinar en una sola unidad datos (atributos) y funciones (métodos) que operan sobre esos datos. Tal unidad se denomina objeto. Los métodos dentro del objeto son el único medio para acceder a los atributos privados de un objeto. No se puede acceder a los atributos directamente. Los atributos están ocultos y esto asegura que no se puedan modificar por métodos externos al objeto. 8/10/2024 Ing. María de Lourdes Loaiza MSc. 4 Objetos (Atributos y Métodos) Los atributos y métodos asociados se dicen que esta encapsulados en una única entidad o clase. La encapsulación de objetos y ocultación de datos son términos importantes en la descripción de los lenguajes orientados a objetos. Si se desea modificar los atributos de un objeto, se conoce exactamente cuáles son los métodos que interactúan con el mismo. Ningún otro método puede acceder a los atributos. 8/10/2024 Ing. María de Lourdes Loaiza MSc. 5 Ejemplo de Objetos Objetos físicos: Elementos de interfaces gráficas: Aviones en un sistema de control de tráfico Ventanas aéreo. Automóviles en un sistema de control de Menús tráfico terrestre. Teclados, impresoras, etc. Casas en un sistema de control de bienes raíces. 8/10/2024 Ing. María de Lourdes Loaiza MSc. 6 Características de un Objeto: Un objeto es una entidad que contiene los atributos que describen el estado de un objeto del mundo real y las acciones que se asocian con el objeto del mundo real. NOMBRE: Identificador de la clase ATRIBUTOS: Datos o variables que definen el estado de un objeto MÉTODOS: Acciones que cambian el estado de un objeto 8/10/2024 Ing. María de Lourdes Loaiza MSc. 7 Ejemplo de Objetos USUARIO es un objeto. Los atributos del Usuario pueden ser: Nombres Completos Cédula o Identificación Correo Contraseña Numero de Celular, etc. Los métodos del Usuario pueden ser: Iniciar sesión Actualizar sus datos Subir información Realizar pagos, etc. 8/10/2024 Ing. María de Lourdes Loaiza MSc. 8 Clases y Objetos OBJETO: EspadaMadera 60 USOS 4 PUNTOS DE DAÑO 1.6 ATACAR() CLASE: Espada OBJETO: EspadaDiamante DURABILIDAD DAÑO INFLIGIDO 1562 USOS VELOCIDAD DE ATAQUE 7 PUNTOS DE DAÑO 1.6 ATACAR() ATACAR() CONGELAR() 8/10/2024 Ing. María de Lourdes Loaiza MSc. 9 Resumen: Concepto Definición La definición abstracta de un objeto. Una plantilla o molde con las características Clase comunes que tendrán todos los objetos que se instancian. La instancia de una clase. La entidad concreta con atributos (datos) y métodos Objeto (funciones) propios que definen su comportamiento. Atributo Es un dato y/o característica que definirá a un objeto. Es una función que permita cambiar y/o acceder a los atributos de un objeto concreto. Puede ser un algoritmo que permite al objeto realizar una acción. También puede Método generar un evento. Un suceso producido dentro del sistema y que es atendido por un objeto determinado. Evento 8/10/2024 Ing. María de Lourdes Loaiza MSc. 10 Encapsulamiento El objeto tiene cierta información (atributos) y conoce cómo realizar ciertas operaciones. Los métodos de un objeto sólo pueden manipular directamente datos asociados con ese objeto. La encapsulación permite incluir en una sola entidad (objeto) la información (datos o atributos) y las operaciones (métodos o funciones) que operan sobre esa información. Los objetos tiene una interfaz pública y una representación privada que permite ocultar la información. 8/10/2024 Ing. María de Lourdes Loaiza MSc. 11 Ejemplo de encapsulamiento 8/10/2024 Ing. María de Lourdes Loaiza MSc. 12 Clases Una clase es la descripción de un conjunto de objetos: consta de métodos y atributos que resumen las características comunes de un conjunto de objetos. Se pueden definir muchos objetos de la misma clase Una clase es la declaración de un tipo objeto. Cada vez que se construye un objeto a partir de una clase estamos creando lo que se llama una instancia de esa clase. Los objetos se crean cuando un mensaje de petición de creación se recibe por la clase. Todas las instancias siguen las mismas reglas y constan de las mismas características. Las clases se relacionan entre ellas a través de relaciones de herencia. Serrat, Joaquín Sabina, Juanes, Shakira, Carlos Vives son objetos de una clase, por ejemplo “cantantes”. 8/10/2024 Ing. María de Lourdes Loaiza MSc. 13 Definición de una clase Clase es una plantilla que permite definir de manera genérica como va a ser un objeto. Una clase por sí sola no sirve de nada. Para utilizar una clase hay que hacer una instancia, lo que se conoce como instanciar una clase que consiste en crear un nuevo objeto concreto de dicha clase. La clase es un concepto y el objeto es una entidad concreta. Cada clase consta de atributos y métodos 8/10/2024 Ing. María de Lourdes Loaiza MSc. 14 Clase, Objetos, Atributos y Métodos 8/10/2024 Ing. María de Lourdes Loaiza MSc. 15 Identificación de Clases La identificación de objetos se obtiene examinando la descripción del problema, y localizando los nombres. Normalmente estos nombres y sus sinónimos se suelen escribir en una tabla de la que luego deduciremos los objetos reales. Los objetos pueden caer dentro de las siguientes categorías: Cosas tangibles (avión, computador, televisor, libro) Roles o papeles representados por personas (gerente, cliente, empleado, médico) Organizaciones (empresa, departamento, equipo) Incidentes que representan un suceso (vuelo, accidente) Interacciones que implican una transacción entre dos objetos (compras – comprador, vendedor – articulo) Lugares (sala de embarque, muelle, ciudad, país) 8/10/2024 Ing. María de Lourdes Loaiza MSc. 16 Identificación de Clases Una vez identificados los objetos, se debe identificar los atributos y operaciones que actúan sobre ellos. Los atributos describen la abstracción de características individuales que poseen todos los objetos. Las operaciones cambian de alguna forma los atributos contenidos en el objeto. Operaciones que manipulas los datos (añadir, borrar, cambiar). Operaciones que realizan un cálculo o proceso (calcular-promedio, dibujar-linea). Operaciones que comprueban un objeto frente a la ocurrencia de algún suceso de control. 8/10/2024 Ing. María de Lourdes Loaiza MSc. 17 Duración de las CLASES Las clases son entidades que existen en el tiempo, por ello deben ser creados o instanciados. Esto se realiza a través de operaciones o métodos especiales llamados constructores, que se ejecutaran cuando estos sean llamados. 8/10/2024 Ing. María de Lourdes Loaiza MSc. 18 Ocultación de Datos Se debe restringir el acceso a los atributos de una clase y a otra información interna que se utiliza para definir el objeto. Los detalles internos de la implementación pueden y deben ser ocultados (+) Public (-) Private (#) Protected 8/10/2024 Ing. María de Lourdes Loaiza MSc. 19 Ejercicio: Identificación de objetos y clases Prepare una lista de objetos que suponga deban manejar cada uno de los siguientes sistemas: A) Un sistema para ingresar las calificaciones de una universidad B) Un programa para gestionar un campeonato de futbol C) Un sistema para toma de pedidos para un almacén de venta por correo 8/10/2024 Ing. María de Lourdes Loaiza MSc. 20 Estructura de JAVA Clase Inicio 8/10/2024 Ing. María de Lourdes Loaiza MSc. 21 Palabras reservadas e Identificadores Como en todos los lenguajes de programación, los identificadores son conjuntos de caracteres que tienen los elementos con los que se forman los códigos, se puede hacer una clasificación en dos grandes tipos: Palabras clave o reservadas, son los identificadores que forman el léxico de Java. Las palabras public, class, void, static, son de este tipo. Identificadores de usuario o simplemente identificadores, son los que crea el programador para poder utilizar los elementos como clases, funciones y variables. Ejemplo: HolaMundo, como nombre de clase es un identificador. String también es un identificador de este tipo, porque este nombre lo creo quien desarrollo la librería de funcionalidades en las que se encuentra la definición de este tipo de datos. 8/10/2024 Ing. María de Lourdes Loaiza MSc. 22 Palabras reservadas en Java Estas palabras están reservadas, y no se pueden usar como identificadores de usuario. 8/10/2024 Ing. María de Lourdes Loaiza MSc. 23 Tipos de datos Java es un lenguaje con comprobación estricta de tipos, por tanto todos los identificadores tienen que tener asociado un tipo. Existen 9 tipos llamados primitivos, porque son los que vienen definidos de forma implícita en el lenguaje, cada uno de ellos tiene como nombre uno de la lista de palabras reservadas. Se pueden clasificar en los siguientes grupos: carácter, enteros, punto flotante (decimales), lógico y void (nada) Cada tipo tiene asociado una clase (llamada envoltorio) que permitirá trabajar objetos que encapsulan estos tipos primitivos. 8/10/2024 Ing. María de Lourdes Loaiza MSc. 24 Tipos de datos 8/10/2024 Ing. María de Lourdes Loaiza MSc. 25