TEMA IMPLEMENTACION DE LEGUAJES ORIENTADOS A OBJETO

Slides:



Advertisements
Presentaciones similares
Unidad 3 Lenguajes .Net y POO
Advertisements

Curso de java básico (scjp)
Curso de Java Capitulo 7: Conceptos sobre poo Profesor:
Definición de Clases y Variables de referencia.
Herencia en C#.
Fundamentos de la programación orientada a objetos
Creación y destrucción de objetos
POLIMORFISMO "una interfaz, múltiples métodos".
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.
Herencia simple y multiple
Polimorfismo Unidad 4.
Herencia y Polimorfismo
UNIVERSIDAD LATINA (UNILA) ENCAPSULACION Y HERENCIA
Aplicación del paradigma orientado a objetos
HERENCIA.
Tema 7: Polimorfismo Antonio J. Sierra. Índice Introducción. Sobrecarga de métodos. Objetos como parámetros. Paso de argumentos. Devolución de objetos.
Modificadores.
Herencia y Polimorfismo en JAVA
Polimorfismo Lenguajes de Programación II Corporación Universitaria del Caribe CECAR.
Lic. Rosemary Torrico Bascopé
Introducción a clases Programación Orientada a Objetos.

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.
Tema 6: Clases Antonio J. Sierra.
1 Herencia en Java Agustín J. González Diseño y Programación Orientados a Objetos.
Variables polimórficas (plantillas): definición, uso y aplicación
Nombre, Alcance y Asociaciones (Bindings). Agenda Definición Nombre y Bindings Binding Time Importancia del Binding Time Eventos relacionados a la Asociación.
Criterios de la Orientación a Objetos 1. Método y Lenguaje (proceso de pensamiento y notaciones para analizar y producir software). 2. Implementación y.
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
M.C. Juan Carlos Olivares Rojas
Programación orientada a objetos
Programación Orientada a Objetos usando CONSTRUCTORES DESTRUCTORES.
Abstracción de Datos y Orientación a Objetos.. Vista General. Por qué la abstracción de datos y la programación orientada a objetos. Módulos y módulos.
1 Polimorfismo y Métodos Virtuales Agustín J. González ELO329.
Clase 03 ELEMENTOS DE COMPUTACIÓN Contenidos Objeto Clase Atributo Método Instancia Herencia Polimorfismo UML.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6
Herramientas de polimorfismo y herencia en C++
Programación avanzada en Java Miguel Ángel Corella 23 de Septiembre de 2005.
FACULTAD DE ESTUDIOS SUPERIORES ARAGON
Herencia y tipos ● Cuanta memoria se debe asignar a un objeto cuando se asigna en la pila ● La asignación debe hacerse antes de que se conozca la cantida.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6
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.
Introducción a UML DIAGRAMA DE CLASES Departamento de Informática
Unidad 2.1: INTRODUCCIÓN A LA ORIENTACIÓN A OBJETOS.
Detalles Generales sobre Java
Polimorfismo y Métodos Virtuales Agustín J. González ELO329.
SCITMina | by Microsoft Bienvenidos Eduardo Daniel Tenorio Mayo Microsoft Student Partner Taller de Programación Orientada a Objetos Con C# Edgar Edel.
:: Prof. Yeniffer Peña Programación I Programación Orientada a Objetos Presentación.
Herencia y Clases Abstractas
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.
UNIVERSIDAD TECNICA DE BABAHOYO EXTENSION DE QUEVEDO  Espinales Lisseth G RUPO N º 2 Temas:  Herencia  Polimorfismo  Encapsulamiento  2 Ejemplos Estudiante.
Universidad Tecnológica de Izúcar de Matamoros Programa Educativo: Tecnologías de la Información Asignatura: Base de datos para aplicaciones Tema: Base.
HERENCIA.
M.C. Pedro Bello López 1 IMPLEMENTACIÓN. M.C. Pedro Bello López2.
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.
Programación Orientada a Objetos: CLASES Y OBJETOS
Clases “ Es una Abstracción de un elemento del mundo real ”
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. Yeniffer Peña Programación I Programación Orientada a Objetos Presentación.
Métodos en Java. Estructura de un programa en Java ► La relación con la vida misma la podemos ver en el siguiente comentario: Imaginemos que dos clases.
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Prof. Manuel B. Sánchez.  El origen del término polimorfismo es simple: proviene de las palabras griegas poly (muchos) y morphos (forma) multiforme.
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.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Herencia.
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Transcripción de la presentación:

TEMA IMPLEMENTACION DE LEGUAJES ORIENTADOS A OBJETO Métodos Métodos virtuales Herencia simple y múltiple Templates

Características de los Lenguajes Orientados a Herencia Simple Múltiple Sobrecarga Objeto sobre el que se aplica el método Parámetros Parámetros y valor de retorno Coerciones Clase derivada a clase base Aplicación implicita de constructores de un parámetro Definidas por el programador Enlace objeto método Estático (en tiempo de compilación) Dinámico (en ejecución) Introspección Objetos genéricos Templates Tipos de datos paramétricos

Llamada a Métodos Enlace estático Enlace dinámico El objeto al que se aplica un método se pasa por referencia al método como primer argumento Obj.m(x,y) Aplicación de un método de clase base a clases derivadas La representación de los objetos de la clase base tiene que estar incluida en la representación de la clase derivada Enlace dinámico Hay que identificar la clase del objeto para poder decidir que método se tiene que aplicar y x &Obj PC ED Vars

Representación de los Objetos Campos de C Class C: A,B {…} Sin funciones virtuales Campos de B C B Campos de A A Class A {…} A con funciones virtuales Campos de A A Apuntadore a los métodos virtuales TVA Tabla virtual de A Campos de B Class B: A {…} B Campos de A A Apuntadore a los métodos virtuales TVB Tabla virtual de B

Herencia Múltiple y Referencias Conversión de los apuntadores Un apuntador a una objeto A se puede convertir a apuntador a objetos de las clases base de A Herencia simple El apuntador a A es el mismo para todas las clases base Herencia múltiple El apuntador a A no apunta a todas las clase base de A Hay que aplicar el desplazamiento de la clase base para convertir los apuntadores Class C: A,B {…} Class D: A {…} Campos de C Campos de D D Campos de B C B Campos de A A B A o D Campos de A A A o C

Tablas Virtuales Tabla virtual Guarda apuntadores a las funciones virtuales Las clases con funciones virtuales o sus derivadas tienen tablas virtuales que se pueden utilizar para identificar sus objetos (implementación de la introspección) Una clase hereda las tablas virtuales de sus clases base, pero modifica su contenido. class A { int a1; virtual void ma1(); virtual void ma2(); } class B: A { int b1; void ma1(); } b1 a1 A::ma2 a1 A::ma2 TVA A::ma1 TVAB B::ma1 Objeto de A Tabla virtual de A Tabla virtual de B Objeto de B

Tablas Virtuales y Herencia Múltiple class A { int a1; virtual void ma1(); virtual void ma2(); } class B { int b1; virtual void mb1(); virtual void mb2(); } this=this-desp jmp C:mb1 class C: A, B { int c1; void ma1(); void mb1(); } Codigo C::mb1 a1 A::ma2 c1 B::mb2 TVA A::ma1 Objeto de A b1 C::mb1’ Tabla virtual de A B TVCB desp Tabla virtual de C metodos de B a1 C o A TVCA Objeto de C b1 B::mb2 TVB B::mb1 A::ma2 Objeto de B Tabla virtual de B C::ma1 Tabla virtual de C metodos de A

Templates El mismo concepto Template de una clase Tipos de datos abstractos Tipos genéricos Tipos de datos paramétricos Template de una clase template <class PixT> class Image { … } Template de un método template <class PixT> PixT Image<PixT>::GetPixel(int x, int y); Instanciación Image<char> im; im.GetPixel(10,20);