Aplicación del paradigma orientado a objetos

Slides:



Advertisements
Presentaciones similares
Pilares de la POO.
Advertisements

Unidad 3 Lenguajes .Net y POO
Curso de java básico (scjp)
FUNDAMENTALS OF THE JAVA PROGRAMMING LANGUAGE
Curso de Java Capitulo 7: Continuación Poo Profesor:
Curso de Java Capitulo 7: Conceptos sobre poo Profesor:
Definición de Clases y Variables de referencia.
POLIMORFISMO UNIDAD 4.
PROGRAMACION ORIENTADA A OBJETOS
Herencia en C#.
Fundamentos de la programación orientada a objetos
Lenguaje de programación Java
Clases Extendidas La clase extendida hereda los campos y métodos de la clase de la cual extiende. La clase original se conoce como superclase y la clase.
Arquitectura CLARO-TECNOTREE
Orientación a Objetos con Java SE
Polimorfismo Unidad 4.
Programación Orientada a Objetos
La Programación Orientado a Objetos
UNIVERSIDAD LATINA (UNILA) ENCAPSULACION Y HERENCIA
Diseño y programación de
PROGRAMACION ORIENTADA A OBJETOS
ORIENTADO A OBJETOS ESTUDIANTE JESSICA LORENA LEAL MEDINA INGENIERIA DE SOFTWARE PROGRAMA INGENIERIA DE SISTEMAS UNIVERSIDA COOPERATIVA DE COLOMBIA NEIVA-HUILA.
Encapsulamiento y Abstracción
HERENCIA.
4.- Orientación a Objetos Justo N. Hidalgo Sanz DEPARTAMENTO DE INGENIERÍA INFORMÁTICA.
Polimorfismo Lenguajes de Programación II Corporación Universitaria del Caribe CECAR.
Introducción a Java II.
Lic. Rosemary Torrico Bascopé
UNIVERSIDAD TECNOLÓGICA DE HERMOSILLO T.S.U. EN T.I.C., Área: Sistemas Informáticos Ing. José Padilla Duarte y estudiantes de Sistemas Informáticos Hermosillo,
Abstracción de los datos y Orientación a Objeto Clase 13.
Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
Universidad Autónoma del Estado de Hidalgo Instituto de Ciencias Básicas e Ingeniería Área Académica de Computación y Electrónica Licenciatura en Ciencias.
Tema 10: Interfaces Antonio J. Sierra.
1 Herencia en Java Agustín J. González Diseño y Programación Orientados a Objetos.
I NSTITUTO TECNOLOGICO SUPERIOR DE LIBRES INGENIERIA EN SISTEMAS COMPUTACIONALES PROGRAMACION ORIENTADA A OBJETOS ESMERALDA LIMON ESCUTIA REDEFINICION.
1 Interfaces Agustín J. González ELO Introducción En C++ se permite la herencia múltiple; es decir, es posible derivar una clase de dos o más clases.
UNIDAD 2 CLASES Y OBJETOS. CLASE Elementos cabecera y cuerpo de la clase. Cabecera: aporta información fundamental sobre la clase en sí y constituye de.
Jerarquía de Clases: Herencia, Composición y Polimorfismo
Diagramas de Clase Angela Carrillo R..
Capitulo # 4 herencia PROGRAMACION III UNIVERSIDAD
Introducción a la POO • ¿Qué es la programación orientada a objets (POO)? – Un “paradigma” de programación – Una forma de pensar acerca de los problemas.
Programación orientada a objetos
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SEMANA DOS ORIENTACION A OBJETOS.
Programación Orientada a Objetos
Métricas Técnicas para Sistemas Orientados a Objeto
UNIDAD VI Recursos esenciales de Java LSC. Natalia Rodríguez Castellón.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6
Metodología de Programación Ayudantía 5 lelagos.ublog.cl 2009.
Sara Isabel Osorio Alacraz Ana Isabel Vallejo Grisales
1 Herencia en Java Agustín J. González Diseño y Programación Orientados a Objetos.
Herencia. Introducción La idea básica es poder crear clases basadas en clases ya existentes. Cuando heredamos de una clase existente, estamos re-usando.
Facultad de Ingeniería
Unidad 2.1: INTRODUCCIÓN A LA ORIENTACIÓN A OBJETOS.
Detalles Generales sobre Java
Algoritmos y Programación III
Programación orientada a objetos
Ing. Esp. Ricardo Cujar. Programación Orientada a Objetos  Modelo de desarrollo de software.  Modo de pensar del hombre y no de la máquina.  Abstracción.
M.C. Pedro Bello López 1 IMPLEMENTACIÓN. M.C. Pedro Bello López2.
Programación orientada a objetos Capítulo 9 Algo mas sobre herencias.
FUNDAMENTOS DE PROGRAMACION
Tipo de relación entre clases Es uno de los aspectos que distinguen el paradigma de orientación a objetos frente a otros paradigmas. Mecanismo que,
UNIVERSIDAD TECNOLÓGICA DE IZÚCAR DE MATAMOROS TECNOLOGÍAS DE LA INFORMACION Y COMUNICACIÓN BASE DE DATOS PARA APLICACIONES MTRO. GONZALO ROSAS CABRERA.
La Programación Orientado a Objetos
Clases “ Es una Abstracción de un elemento del mundo real ”
Paradigma Orientado a Objetos
Herencias Conceptos básicos i
Programación orientada a objetos La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de programación que usa objetos.
Prof. Manuel B. Sánchez. Un paradigma de programación representa un enfoque particular o filosofía para la construcción del software. No es mejor uno.
Prof. Manuel B. Sánchez. Es un mecanismo y uno de los pilares de la POO que permite definir nuevas clases a partir de otras preexistentes. La Herencia.
Programación I Clases. Paradigma POO La programación Orientada a objetos (POO) es una forma programar, más cercana a como expresaríamos las cosas en la.
Transcripción de la presentación:

Aplicación del paradigma orientado a objetos Capitulo 2 Aplicación del paradigma orientado a objetos

Mas sobre Herencia Mecanismo de especialización y generalización. Es un tipo de relación “ES UN ” Cada clase puede tener una clase ancestro y clases descendientes. Generalización permite definir una clase o tipo como un caso general de varias clases o tipos. La operación inversa se llama especialización y permite definir clases como casos particulares de otras más generales.

Reutilización y extensión Reutilización se refiere al uso de clases u componentes desarrollados y probados en un determinado contexto, para incorporar esa funcionalidad en una aplicación diferente a la de origen. La extensión se basa en aprovechar las clases desarrolladas para una aplicación, utilizándolas en la construcción de nuevas clases para la misma u otra aplicación.

Reutilización y extensión aplicados con Herencia Se reutiliza la interfaz de la clase, que es lo que ven los clientes. Los mensajes que pueda recibir un objeto de la clase padre lo podrá recibir también uno de las clases hijas Los métodos declarados en la clase descendiente no van a estar en la clase ancestro.

Herencia, resumiendo: Una clase hereda todos los miembros de su clase padre, excepto los constructores. Una clase no tiene acceso directo a los miembros privados de su clase padre. Una clase puede tener acceso directo a los miembros públicos y protegidos de su clase padre. En el caso de que la clase hija pertenezca al mismo paquete que el de su clase padre, si puede acceder a los miembros declarados como friendly Una clase puede agregar sus propios miembros, a pesar de los ya heredados desde su clase padre. Modificador final para evitar clases hijas.

Interfaces (I) Concepto: definen un conjunto de mensajes que pueden ser recibidos por las clases que las implementen. Sintaxis para definir una interfaz en Java: <public> interface nombre_interfaz <extends> interfaces { //Cuerpo de la interfaz }

Interfaces (II) La interfaz puede extender de otras interfaces, no de clases. El cuerpo de la interfaz posee las siguientes características: Sólo puede poseer atributos estáticos y con valor constante. En el caso de que no se especifique que el atributo es estático (static) y constante (final) automáticamente se establece con estas características. El modificador de acceso es público

Interfaces (III) Los métodos deben ser públicos (public) y no pueden ser estáticos o de clase. Si no especifica el modificador de acceso public, automáticamente el método se establece como tal. Los métodos no son implementados, solo se especifica hasta los parámetros que puede recibir entre (…) y luego se finaliza con un “;”. public int metodoPrueba (<lista_parametros>); Las clases que implementen la interfaz son las que implementarán el cuerpo del método.

Encapsulamiento (I) Conceptos fundamentales: La abstracción consiste en identificar las características esenciales de un objeto, así como su comportamiento. El ocultamiento de la implementación tiene por objetivo que el cliente no use la estructura interna de la clase. Se puede usar nada más que la interfaz de nuestra clase pero no la implementación. Permite restringir y controlar el uso de la clase.

Encapsulamiento (II) Objetivo: concentrar las características y comportamiento de un objeto en un solo lugar, es decir, en una clase. Cada clase se preocupa de sí misma y tiene todo encapsulado en su interior, Cada clase debe desacoplar a las demás de sus detalles internos, solo debemos saber cómo usar sus servicios a través de su interfaz. El concepto de encapsulamiento se cumple aplicando: abstracción: concentrando las características esenciales y comportamiento de un objeto en una clase y ocultamiento de implementación: ocultando los detalles internos de la clase, evitar que el cliente sea dependiente de una implementación en particular

Polimorfismo Polimorfismo quiere decir “muchas formas”. En POO llamamos polimorfismo a la posibilidad que tienen los métodos de mantener una respuesta unificada, manteniendo la misma semántica aunque la implementación puede ser distinta, a través del establecimiento de la jerarquía de clases (herencia).

Redefinición y Sobrecarga La redefinición es una funcionalidad que se usa cuando el comportamiento de la clase padre no es exactamente igual para la descendiente. En el caso de que se desee acceder al método de la clase padre dentro de una clase descendiente, se debe realizar con la palabra super super.<nombre_metodo>()

Redefinición y Sobrecarga Debemos utilizar la redefinición cuando la clase hija debe presentar un comportamiento diferente que la clase padre, por razones de eficiencia o porque la redefinición completará la funcionalidad que ya brinda la clase padre. En Java los métodos se redefinen reescribiendo el método en la clase derivada, el mismo método que está en la clase padre(igual modificador de acceso, tipo de dato de retorno, igual nombre, igual tipo y cantidad de parámetros), modificando únicamente el cuerpo del método. Los métodos privados no se pueden redefinir. En el caso de que no se quiera que un método sea redefinido se debe anteponer al nombre del método la palabra final.

Clases y métodos abstractos. Un método abstracto es aquel que no posee implementación y que nunca será invocado sobre una instancia de la clase donde se encuentra definido como tal. En Java un método abstracto se define de la siguiente manera: public abstract void metodo(); Los métodos de una interfaz, por definición son abstractos.

Transformaciones e información de tipos. En Java podemos hacer transformaciones entre tipos. Estas transformaciones son importantes tenerlas en cuenta cuando estamos utilizando polimorfismo. Persona pepe = new Empleado(); Empleado emp = (Empleado) pepe;

Transformaciones e información de tipos. En Java existe el moldeo automático, que se da cuando se realiza una transformación del tipo de la clase descendiente a la clase ancestro. Empleado emple = new Empleado(); Persona pepito = emple; Como la clase Empleado extiende de Persona, se puede hacer este tipo de transformación.

Transformaciones e información de tipos. Java nos permite saber el tipo de un objeto en tiempo de ejecución. RTTI (run-time type information). Podemos saber el tipo de un objeto con el operador instanceof: if(objeto instanceof Empleado){ ((Empleado)objeto).getLegajo(); } También podemos hacer la misma comprobación de la siguiente manera: if(objeto.getClass() == Empleado.class)

Transformaciones e información de tipos. instance of: valida que un objeto sea de un determinado tipo o alguno descendiente de la misma. class: valida que un objeto sea exactamente del mismo tipo con el que comparamos y no de una clase hija. Una vez que un objeto es instanciado posee un tipo que es inmutable durante el ciclo de vida del objeto.