Programación Dirigida a Objetos. MATERIAL COMPLEMENTARIO Tema 5.- Herencia
|
|
- Luis Miguel Sandoval Plaza
- hace 6 años
- Vistas:
Transcripción
1 Tema 5.- Herencia 1. Herencia múltiple en C++: ambigüedad de nombres Herencia en SMALLTALK Determinación de los métodos a ejecutar: self y super Herencia de métodos y variables de instancia Herencia de métodos de clase Herencia en JAVA Herencia de interfaces
2 1. Herencia múltiple en C++: ambigüedad de nombres Una clase hereda métodos y atributos de más de una clase. class Mamifero { public: int tiempo_incubacion; char* habitat; void comer(char*); class Oviparo { public: int tamaño_huevos; int habitat; void comer(char*); class Hominido: public Mamifero { public: int altura; class Ornitorrinco: public Mamifero, public Oviparo { void comer (char* c) { // this.comer(c) es ambigüo y no puede escribirse aquí this.mamifero::comer(c) //deshace la ambigüedad Ambigüedad o conflictos de nombres en herencia de métodos: Redefinición del método ambigüo, referenciando al que se desea heredar. 2
3 class A { public: Programación Dirigida a Objetos. MATERIAL COMPLEMENTARIO void virtual mostrar (int i) {... void virtual ver (int p) {... class B { public: void virtual mostrar (float f) {... void virtual ver (int n) {... class C: public B, public A { public: void virtual mostrar (int i) {A::mostrar(i); void virtual mostrar (float f) {B::mostrar(f); void virtual vera (int p) {A::ver(p); void virtual verb (int p) {B::ver(p); main() { C c; c.mostrar(4); c.mostrar(2.8); 3
4 2. Herencia en SMALLTALK Programación Dirigida a Objetos. MATERIAL COMPLEMENTARIO 2.1. Determinación de los métodos a ejecutar: self y super. Clase Uno prueba ^ 1 resultado1 ^ self prueba Clase Dos hereda de Uno prueba ^ 2 Clase Tres hereda de Dos resultado2 ^ self resultado1 resultado3 ^ super prueba Clase Cuatro hereda de Tres prueba ^4 ejemplo1 := Uno new. ejemplo2 := Dos new. ejemplo3:= Tres new. ejemplo4.= Cuatro new. ejemplo1 prueba. ejemplo1 resultado1 ejemplo2 prueba ejemplo2 resultado1 ejemplo3 prueba ejemplo4 resultado1 ejemplo3 resultado2 ejemplo4 resultado2 ejemplo3 resultado3 ejemplo4 resultado3 4
5 2.2. Herencia de métodos y variables de instancia La responsabilidad de los métodos de instancia es de la clase, es decir, cuando un objeto recibe un mensaje será su clase quien los ejecute. Por ejemplo, #(1 2 3) at:1 put:2 es un mensaje a un objeto de la clase Array. Cuando el objeto recibe el mensaje transfiere la responsabilidad de su ejecución a la clase. La figura 1 muestra la composición de la clase Carta (el objeto Carta). La clase contiene un diccionario con los métodos de instancia válidos para esa clase. Contiene, además, los nombres de las variables de instancia con nombre. Figura 1.- Composición de la clase Carta y un objeto de la clase Carta. Cada ventana indica en su título la clase a la que pertenece el objeto que se inspecciona. 5
6 La herencia de métodos y variables de instancia sigue la jerarquía de clases típica de Smalltalk. Este es un resumen muy simplificado de ella. Object Behavior Class Metaclass Collection Set Dictionary SequenceableCollection ArrayedCollection Array List OrderedCollection CharacterArray String Magnitude Number Integer Fraction Character Time ByteString 2.3. Herencia de métodos de clase En las primeras versiones de Smalltalk todas las clases eran objetos (instancias) de una única clase, la clase Metaclass. Algo similar ocurre en JAVA. A nivel práctico esto implicaba que la clase Metaclass era responsable de responder al método new para crear objetos. De este modo era imposible redefinir el método new para cada clase. A partir de Smalltalk-80 se amplia el concepto de metaclase de forma que cada clase tenga la suya propia. Los métodos de clase, de los cuales el más típico es el método new, son entonces responsabilidad de la metaclase, es decir, la clase de la cual es instancia una clase. Cada clase tiene su correspondiente metaclase que se denomina con el nombre de la clase seguido del mensaje class. Por ejemplo, la metaclase de Object es Object class. La metaclase permite tratar las clases como objetos. Al tener información sobre la definición de una clase, la metaclase implementa y ejecuta los métodos de clase, en particular los de creación de objetos. Por ejemplo, el método palo:numero: de la clase Carta (figura 1) permite crear objetos de esta clase, en la figura 2 puede observarse que este método está contenido en el diccionario de métodos de Carta class, la metaclase de carta. 6
7 Figura 2.- La metaclase de Carta (Carta class) y la clase Metaclass Cada metaclase tiene una única instancia, su clase. A su vez todas las metaclases son objetos de la clase Metaclass. Metaclass es objeto (instancia) de Metaclass class. Puesto que Metaclass class es una metaclase será instancia de Metaclass. En la siguiente figura podemos ver las relaciones instancia_de que se establecen. Metaclass Carta class Carta 7 de bastos Metaclass class Cada metaclase se responsabiliza de los métodos de clase de su clase. De forma que cuando se crea una clase, se crea primero su metaclase y se almacena en ella la definición de la clase. En la figura que sigue se observa de quién es responsabilidad cada método 7
8 Carta class new palo:numero: Carta palo numero new palo:numero: palo: bastos numero: 7 palo Pero a su vez, los métodos de clase, al igual que los de instancia, también se heredan. Es decir, igual que existe una jerarquía de herencia de clases, existe un jerarquía de herencia de metaclases. Es por esta jerarquía de metaclases por la que se heredan los métodos de clase. Object class Object Metaclass Carta class Carta 7 de bastos Metaclass class Pero, de quién hereda Object class, Metaclass y Metaclass class? La cosa se complica. Aparecen dos nuevas clases: Behavior y Class. Todas las metaclases heredan de Class, que a su vez hereda de Behavior. Metaclass también es subclase de Behavior. De este modo los métodos de instancia definidos en Object se utilizan tanto para manipular los objetos de una clase como las clases y la metaclases. La consecuencias de esta estructura es que los métodos de instancia de Class se transforman en métodos de clase del resto de la jerarquía. Class sería un buen lugar para contener el método new como método de intancia, pero si fuera así no se podría utilizar new para crear clases y metaclases. New se define como método de instancia en Behavior y de este modo sirve tanto para crear objetos de una clase normal, al ser heredado por la vía de Class como método de clase, como para crear clases y metaclases. 8
9 Object Behavior Carta Metaclass Class Object class Behavior class Carta class Metaclass class Class class Veámoslo de forma abstracta (no sucede exactamente de este modo). Supongamos que queremos crear la clase Bolígrafo. Habría que crear primero su metaclase: Metaclass new name:boligrafo. New es en este caso un método de clase de Metaclass, luego debe ser ejecutado por Metaclass class. Como Metaclass class hereda de Behavior se crea la correspondiente metaclase. Name es un método de instancia de Metaclass, luego será Metaclass el que lo resuelva. Una vez creada la metaclase ya podemos crear la clase: (Bolígrafo class) new Este new va dirigido a una metaclase luego sería un método de instancia de Metaclass y sería Metaclass la responsable de él. De nuevo se puede ejecutar el new de Behavior o se puede redefinir en Metaclass, en este caso se redefine en Metaclass para que solo se pueda tener una clase para cada metaclase. Ya creada la clase se le pueden mandar mensajes para definir las variables y los métodos: Bolígrafo addinstvarname: tinta El método addinstvarname: añade una variable de instancia (ver figura 1). Se trata de un método de clase, pero como en realidad manipula la clase como un objeto cualquiera está implementado en Class y es heredado por Bolígrafo class. La finalidad de todo este lío es: - Poder tratar las clases como objetos: Class hereda indirectamente de Object, luego los mensajes que entiende un objeto, que determinan su comportamiento y modifican su estado, también son válidos para una clase. - Poder heredar los métodos de creación de instancias: El método new, para crear instancias, está implementado en Behavior. Como Class y Metaclass heredan de 9
10 Behavior, heredan este método y pueden crearse clases y metaclases. Todas las metaclases heredan de Class, y entre ellas está la metaclase Object class. Object class también hereda el método new, por lo cual también puede crearse cualquier objeto (recordemos que son las metaclases las que responden al mensaje new y son las que en realidad crean objetos) 10
11 11
12 3. Herencia en JAVA 3.1. Herencia de interfaces Una interface es una forma de declarar un tipo, de tal forma que éste conste de constantes y signaturas de métodos sin implementar. La interface define un tipo que puede ser usado para declarar variables. Una interface podrá ser implementada por clases diferentes que pueden o no tener relación de herencia entre sí. La interface puede considerarse similar a una clase abstracta pero se diferencian en lo siguiente: - La interfaz carece de implementación. En general una clase abstracta posee métodos abstractos, que deberán ser implementados por las subclases, y métodos implementados en ella. - Una interfaz puede heredar de más de una interfaz. - Las subclases de una clase abstracta tendrán entre sí alguna relación de generalización/especialización. Sin embargo, las clases que implementan una interfaz pueden no tener ninguna relación de herencia. Supongamos el siguiente problema: los datos de los clientes de una empresa se encuentran en diferentes bases de datos con diferentes estructuras. Se desea unificar el servicio de envío de correo electrónico a los clientes independientemente de la base de datos. Class Cliente String nombre String apellidos String Enviar (String mensaje) Class ListaDeClientes Cliente [] clientes Abstract ObtenerTodosLosClientes AñadirCliente (Cliente c) OrdenarClientes EnviarATodos (String mensaje) {acadacliente.enviar (mensaje) AñadirListaDeClientes (ListaDeClientes lista) Class ListaDeClientesOracle extends ListaDeClientes ObtenerTodosLosClientes {para cada cliente obtenido de la BD crear uncliente Class GestorCorreoClientes ListaDeClientes listaglobaldeclientes ListaDeClientesOracle listaoracle String mensaje EnviarATodos {listaoracle.obtenertodoslosclientes; listaglobaldeclientes.añadirlistadeclientes (listaoracle); 12
13 listaglobaldeclientes.ordenarclientes(); listaglobaldeclientes.enviaratodos (mensaje) Programación Dirigida a Objetos. MATERIAL COMPLEMENTARIO Supongamos ahora que los Clientes a los que hay que enviar los mensajes son difícilmente unificables en una clase y que, además, para cada tipo de clientes se utiliza un programa de correo y un protocolo diferente de envío. En este caso recurrimos a una interface. Interface Cliente Enviar (String mensaje) Class Empresa implements Cliente String nombre String director String Enviar (String mensaje) Class Individuo implements Cliente String apellidos String nombre String Enviar (String mensaje) El método obtenertodoslosclientes de ListaDeClientes debería también modificarse para crear una u otra clase de clientes. Otra solución sería crear una subclase de ListaDeClientes por cada tipo de cliente. Las interfaces pueden heredarse y además de forma múltiple. Interface Empresario Regalar (String mensaje) Interface Persona Felicitar (String mensaje) Interface ClienteEmpresario extends Cliente, Empresario Interface ClientePersona extends Cliente, Persona Ahora podríamos hacer que las clase Empresa implemente ClienteEmpresario y la clase Indiciduo implemente ClientePersona. Evidentemente habría que implementar las operaciones pertinentes en cada clase. No existe la herencia múltiple en Java, aunque una clase puede heredar de otra e implementar al mismo tiempo los métodos de una Interface. interface Alimentos { void comer(string c); void beber(string b); interface Ejercicios { void correr(int k); class Dieta implements Alimentos { // uso de una interface 13
14 private String comida; void comer(string c) { comida= c; ; void beber(string b) { System.out.println(b); class Dieta implements Alimentos, Ejercicios { //uso de varias interfaces: simulación de herencia múltiple private String comida; public int totalcorrido = 40; void comer(string c) { comida= c; ; void beber(string b) { System.out.println(b);; void correr(int k) { return ( totalcorrido+ k) ; En realidad, hay dos formas de simular en Java la herencia múltiple y podemos verla con el ejemplo del Ornitorrinco 1) Se toman métodos de varias interfaces interface Mamifero {... interface Oviparo {... class Ornitorrinco implements Mamifero, Oviparo {... 2) Se hereda de una clase y se toman métodos de una o más interfaces interface Mamifero {... class Oviparo {... class Ornitorrinco extends Oviparo implements Mamifero {... En realidad no se trata de herencia múltiple puesto que las interfaces no permiten heredar ninguna implementación, pero al tener que implementar la interface Mamífero, la clase Ornitorrinco se puede comportar como un Mamífero allí donde se hayan declarado variables de tipo Mamífero. La interfaces dan una mayor potencia al polimorfismo al permitir que clases que no tienen ninguna relación de herencia puedan actuar de modo polimórfico. Las interfaces tienen una última ventaja de diseño: se puede proponer una interfaz como el protocolo mínimo que deben cumplir las clases para poder interactuar. Esto permite anticipar el comportamiento de clases que aún no han sido definidas. Por ejemplo, en JAVA Collection es una interfaz de modo que cualquier clase que la implemente se podrá comportar como una colección. 14
Tema 5. Herencia. Departamento de Lenguajes y Sistemas Informáticos Universidad de Granada
Tema 5 Herencia Departamento de Lenguajes y Sistemas Informáticos Universidad de Granada Qué es la Herencia? Propiedad de que las instancias de una clase hija tengan acceso a la estructura de datos* y
Más detallesClases y herencia. FJP Unidad 8. Diseño de clases
Clases y herencia FJP Unidad 8 Encapsulamiento Diseño de clases El encapsulamiento provee protección de atributos y métodos definidos en una clase de forma tal que comportamiento de objetos de una clase
Más detallesHerencia. Implementación en Java
Herencia Implementación en Java Herencia Concepto de Herencia Es el mecanismo que permite definir nuevas clases partiendo de otras ya existentes. Las clases que derivan de otras heredan automáticamente
Más detallesTaller de Programación I. Tema 10: Herencia en Java
INACAP Universidad Tecnológica de Chile Sede Santiago Centro Taller de Programación I Curso Java J2SE Tema 10: Herencia en Java Ing. Manuel López Ramos (versión 1) Parte I Qué es la herencia entre clases?
Más detallesHERENCIA (2ª parte) En Java todas las clases derivan de otra, aunque no se diga explícitamente.
HERENCIA (2ª parte) Lenguajes de Programación - Orientación a Objetos: Herencia 2ª parte 1 Object En Java todas las clases derivan de otra, aunque no se diga explícitamente. Object: Es el nombre de la
Más detallesGuía práctica de estudio 08: Polimorfismo
Guía práctica de estudio 08: Polimorfismo Elaborado por: M.C. M. Angélica Nakayama C. Ing. Jorge A. Solano Gálvez Autorizado por: M.C. Alejandro Velázquez Mena Guía práctica de estudio 08: Polimorfismo
Más detallesA3F. Polimorfismo. Carlos Fontela
Polimorfismo Carlos Fontela cfontela@fi.uba.ar Temario Métodos virtuales Métodos abstractos Polimorfismo como concepto Interfaces Clases internas 2c2010 2 cb := CuentaBancaria new. cc := CuentaCorriente
Más detallesCentro Asociado Palma de Mallorca. Antonio Rivero Cuesta
Centro Asociado Palma de Mallorca Introducción Práctica de Programación Java Antonio Rivero Cuesta Sesión VIII Composición... 4 Herencia... 8 Herencia e Inicialización... 11 Constructor de Superclase...
Más detallesTema 3. Herencia. Programación Avanzada. Jorge Badenas
Tema 3. Herencia Programación Avanzada Jorge Badenas 1. Herencia Herencia: relación entre dos clases, donde una clase nueva se define como una extensión de la otra. En la nueva clase sólo necesitamos escribir
Más detallesDefinición. Mónica E. García García Feb 07
Tema 11: Herencia 0 Definición Cuando inicialmente se modelan dos cosas y se tienen datos duplicados y además pudiera darse que el número de métodos también es similar así como la implementación, se requiere
Más detallesCONCEPTO DE INTERFACE Y HERENCIA MÚLTIPLE EN JAVA. IMPLEMENTS. EJEMPLOS Y DIAGRAMAS DE CLASES. (CU00696B)
APRENDERAPROGRAMAR.COM CONCEPTO DE INTERFACE Y HERENCIA MÚLTIPLE EN JAVA. IMPLEMENTS. EJEMPLOS Y DIAGRAMAS DE CLASES. (CU00696B) Sección: Cursos Categoría: Curso Aprender programación Java desde cero Fecha
Más detallesClases abstractas e interfaces en Java
Clases abstractas e interfaces en Java Clases abstractas public abstract class Figura { private String _nombre; public Figura (string nombre) { _nombre = nombre; final public boolean mayor_que (Figura
Más detallesCentro Asociado Palma de Mallorca. Antonio Rivero Cuesta
Centro Asociado Palma de Mallorca Introducción Práctica de Programación Java Antonio Rivero Cuesta Sesión IX Composición... 4 Herencia... 8 Herencia e Inicialización... 12 Constructor de Superclase...
Más detallesPROGRAMACIÓN ORIENTADA A OBJETOS 1/7/2009. Examen de Java. Nombre: DNI: Titulación:
Examen de Java Nombre: DNI: Titulación: 1. Sea una aplicación Java donde todas las clases están compiladas y empaquetas en un solo fichero JAR (programa.jar). Qué sería necesario para conseguir ejecutar
Más detallesIntroducción a Java. Fernando Cerezal López. 24 Noviembre 2005
24 Noviembre 2005 disponibles de acceso public private protected de tipo static abstract final modificadores más avanzados que no vamos a ver... Clase Sintaxis modificadores class nombreclase{} Tipos primitivos
Más detalles18. Interfaces Declaración de una interfaz
Programación orientada a objetos con Java 191 18. Interfaces Objetivos: a) Definir el concepto de interfaz b) Interpretar el código fuente de una aplicación Java donde aparecen interfaces c) Construir
Más detallesUNIDAD 4 IMPLEMENTACION DE PROPIEDADES DE LOS OBJETOS JAVA
UNIDAD 4 IMPLEMENTACION DE PROPIEDADES DE LOS OBJETOS JAVA Analista Programador Universitario Universidad Nacional de Jujuy JTP Jorge R. Mendoza Implementación de propiedades de los objetos Java Contenido
Más detallesDerechos de Acceso: COMPOSICION
CLASES Una clase es un tipo definido por el usuario que describe los atributos y los métodos de los objetos que se crearan a partir de la misma. class nombre_clase cuerpo de la clase Derechos de Acceso:
Más detallesAplicaciones de Escritorio
Aplicaciones de Escritorio Introducción n a la Programación Orientada a Objetos con Java Disertantes: Ing. Rasjido, Jose. AdeS Montenegro, Cristian. Agenda Clases y Paquetes. Clases y Paquetes. Modificadores
Más detallesProgramación orientada a objetos. Resumen de Temas Unidad 5: Herencia
Programación orientada a objetos Resumen de Temas Unidad 5: Herencia 5.1 Introducción a la Herencia La herencia es el mecanismo fundamental de relación entre clases en la orientación a objetos. Relaciona
Más detallesGuía práctica de estudio 07: Herencia
Guía práctica de estudio 07: Herencia Elaborado por: M.C. M. Angélica Nakayama C. Ing. Jorge A. Solano Gálvez Autorizado por: M.C. Alejandro Velázquez Mena Guía práctica de estudio 07: Herencia Objetivo:
Más detallesCLASE 9 -HERENCIA Y POLIMORFISMO
CLASE 9 -HERENCIA Y POLIMORFISMO INTRODUCCIÓN Diferentes tipos de objetos con características y comportamiento comunes. lado1 lado2 lado3 color de línea color de relleno punto Triángulo Círculo radio color
Más detallesQué es Java? Un lenguaje de programación Un entorno de desarrollo Un entorno de aplicación Un entorno de despliegue Es similar en sintaxis de C + +.
APUNTES DE JAVA Agenda Bienvenida Conociendo Java La Maquina Virtual Descargar e instalar el compilador El entorno de trabajo El paradigma de la programación orientada a objetos Qué es Java? Un lenguaje
Más detallesTema 3 Herencia en Java Parte 2. Programación Orientada a Objetos Curso 2015/2016
Tema 3 Herencia en Java Parte 2 Programación Orientada a Objetos Contenido Restringir la herencia. Visibilidad protegida. Clases abstractas. Interfaces. Clase Object. Autoboxing. Copia de objetos. Igualdad
Más detallesExamen Teórico Convocatoria de Junio de 2012
Examen Teórico Convocatoria de Junio de 2012 Nombre: DNI: Titulación: 1. Sobre el control de errores en Java: a) El siguiente método contiene un error de compilación debido al uso de excepciones. Explica
Más detallesUnidad 2. Elementos Intermedios del Lenguaje
Unidad 2 Elementos Intermedios del Lenguaje Paradigmas de Programación Un paradigma de programación se refiere a la forma en que se entiende, diseña y desarrolla una aplicación Imperativo Declarativo Funcional
Más detallesA3F. Polimorfismo. Carlos Fontela
Polimorfismo Carlos Fontela cfontela@fi.uba.ar Temario Métodos virtuales Métodos abstractos Polimorfismo como concepto Interfaces Clases internas 2c2009 2 Métodos virtuales (1) 2c2009 3 Métodos virtuales
Más detallesMódulo 8: INTERFACES
Módulo 8: INTERFACES 8-1 SUMARIO INTERFACES 1 SUMARIO 2 8.1 INTRODUCCIÓN A LOS INTERFACES EN JAVA 3 8.2 UTILIZACIÓN DE INTERFACES EN JAVA 4 8.3 COMBINACIÓN DE INTERFACES: HERENCIA MÚLTIPLE EN JAVA5 8.4
Más detallesProgramación orientada a objetos
Repaso Programación orientada a objetos Curso INEM. Programación en Java Santiago Muelas Pascual smuelas@fi.upm.es! Herencia! Superclase/subclase! super! Modificador protected! Redefinicion de métodos!
Más detallesINTRODUCCIÓN AL PARADIGMA DE LA PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA
Objetivo: Identificar los concentos principales en java POO, que es una clase, un objeto así como sus características principales abstracción, modularidad, encapsulamiento, herencia, polimorfismo. INTRODUCCIÓN
Más detallesTema 6 Patrones de Diseño. Programación Orientada a Objetos Curso 2010/2011
Tema 6 Patrones de Diseño Programación Orientada a Objetos Curso 2010/2011 Contenido Introducción a los patrones de diseño. Patrón del Método plantilla. Patrón Composición. Patrón Estrategia. Clases anónimas
Más detallesUnidad Didáctica 10. Concepto de Tipo y Subtipo Diseño e Implementación. Versión 1.0.0
Unidad Didáctica 10 Concepto de Tipo y Subtipo Diseño e Implementación Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 1.0.0 Índice 1. Concepto de Tipo y Subtipo 2.
Más detallesCurso de Java POO: Programación orientada a objetos
Curso de Java POO: Programación orientada a objetos Luis Guerra l.guerra@upm.es Curso INEM. Programación en Java Marzo 2011 Índice Previo Repaso y encapsulación Empaquetado Relaciones entre clases Herencia
Más detallesProgramación Orientada a Objetos en Java
Programación Orientada a Objetos en Java En nuestro post de hoy vamos a tratar el tema la programación orientada a objetos en Java, no todo va a ser.net! En si la POO es bastante amplia y muy necesario
Más detallesExamen Teórico. Convocatoria de Febrero de 2016
Examen Teórico Convocatoria de Febrero de 2016 Nombre: DNI: Grupo: 1. Responde a las siguientes cuestiones: a) Un programador Java empaqueta el código de un proyecto en el fichero videojuego.jar cuya clase
Más detallesPROGRAMACIÓN EN JAVA. { una línea para definir, crear o ejecutar ; }
PROGRAMACIÓN EN JAVA { una línea para definir, crear o ejecutar ; } JFC Y API SPECIFICATIONS OBJECT INTERFACE ABSTRACT IMPLEMENTS EXTENDS NEW EXTENDS (Hasta que una clase derivada deje de ser ABSTRACT)
Más detallesCurso de Java POO: Programación orientada a objetos
Curso de Java POO: Programación orientada a objetos Luis Guerra Velasco Curso INEM. Programación en Java Diciembre 2010 Índice 1 Introducción 2 Comportamiento y estado 3 POO en Java 4 Relaciones 5 Herencia
Más detallesConceptos Básicos de Orientación a Objetos (2da parte)
Conceptos Básicos de Orientación a Objetos (2da parte) Operación y Método Operación: especificación de una transformación o consulta que un objeto puede ser llamado a ejecutar Método: implementación de
Más detallesProgramación Tema 7: Relaciones entre clases. Programación DIT-UPM
Programación Tema 7: Relaciones entre clases 1 Contenidos l Polimorfismo l Implementación de interfaces l Uso de interfaces l Jerarquías de interfaces l Extensión l Jerarquía de extensión 2 Polimorfismo
Más detallesConceptos más avanzados de Programación Orientada a Objetos
Conceptos más avanzados de Programación Orientada a Objetos Programación 2008 Licenciatura de Lingüística y Nuevas Tecnologías Repaso: API de Java API = Application Programming Interface Una API describe
Más detallesObjetivos. Objetivos. Herencia. Objetivos. agregar funcionalidad a una clase existente, sin compilar su nueva definición.
(a) objetivos (b) terminología (c) polimorfismo (d) tipeo y herencia (e) vinculación dinámica de código (f) clases abstractas (g) soporte en JAVA (h) significado de la herencia (i) herencia y aserciones
Más detallesConceptos. ELO329: Diseño y Programación Orientados a Objetos. ELO 329: Diseño y Programación Orientados a Objetos 1
Conceptos ELO329: Diseño y Programación Orientados a Objetos ELO 329: Diseño y Programación Orientados a Objetos 1 Paradigmas de Programación Historia: Los computadores parten cableados por hardware, Luego
Más detallesUnidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones
Unidad Didáctica 2 Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 1.0.3 Índice
Más detallesTema 1.- Conceptos básicos de la OO
Tema 1.- Conceptos básicos de la OO 1. HISTORIA DE LOS CONCEPTOS... 2 2. OBJETOS Y MENSAJES... 3 3. CLASES DE OBJETOS... 5 4. HERENCIA... 8 5. OTROS CONCEPTOS... 9 6. DESARROLLO ORIENTADO A OBJETOS...
Más detalles3.1 Introducción a TDA y OO. Capítulo III. Tipos de Datos Abstractos, Orientación a Objetos y Lenguaje Java
Capítulo III 3.1 Introducción a TDA y OO Tipos de Datos Abstractos, Orientación a Objetos y Lenguaje Java Problemas en el Desarrollo de Grandes Programas ❶ Cómo organizar una pieza de software, de manera
Más detallesTema 3 Herencia en Java Parte 1. Programación Orientada a Objetos Curso 2015/2016
Tema 3 Herencia en Java Parte 1 Programación Orientada a Objetos Contenido Introducción. Definición y tipos. Constructores. Redefinición. Polimorfismo. Herencia y sistema de tipos. Ligadura dinámica. Casting
Más detallesTema: Funciones Virtuales y Polimorfismo.
Programación II. Guía No. 10 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Funciones Virtuales y Polimorfismo. Objetivos Comprender que es ligadura e identificar sus tipos.
Más detallesTema: Funciones Virtuales y Polimorfismo.
Programación II. Guía 10 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Funciones Virtuales y Polimorfismo. Objetivos Específicos Comprender que es ligadura e identificar
Más detallesUnidad Didáctica 3. Tipos genéricos. Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos
Unidad Didáctica 3 Tipos genéricos Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Definición de tipo genérico Hablamos de un tipo genérico cuando el tipo en cuestión depende
Más detallesRelaciones entre clases
Relaciones entre clases 1 Humberto Cervantes Maceda Alfonso Martínez Martínez Abril 2005 Relaciones entre clases Dependencia Generalización Asociación Realización 2 Relaciones entre clases Dependencia:
Más detallesRTTI y reflexión A3F. Carlos
RTTI y reflexión Modelos de objetos Carlos Fontela cfontela@ @fi.uba.ar Temario RTTI (información de tipos en tiempo de ejecución) Reflexión Modelos de objetos en dis stintos lenguajes 1c2011 2 Polimorfismoo
Más detallesManejo de Clases y Objetos. Manejo de Clases y Objetos
Cod. 1728.61 PLATAFORMA.NET Y SERVICIOS WEB nestor@lsi lsi.uniovi.es Dpto. de Informática - Laboratorio de Tecnologías de Orientación a Objetos http://www www.ootlab.uniovi.es CONCEPTOS BÁSICOS Objeto:
Más detallesJava Básico. Polimorfismo. Copyright
Java Básico Polimorfismo Copyright Copyright (c) 2004 José M. Ordax Este documento puede ser distribuido solo bajo los términos y condiciones de la Licencia de Documentación de javahispano v1.0 o posterior.
Más detalles10 -Herencia Y Polimorfismo. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas
10 -Herencia Y Polimorfismo Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas Herencia Si se supone que somos buenos programando, cuando creemos una clase es posible que sea
Más detallesHerencia y Polimorfismo en C++
Herencia y Polimorfismo en C++ Informática II Fundamentos de Programación 1 Herencia Concepto de "herencia" herencia": Una clase -clase derivada- puede definirse a partir de otra clase ya existente (clase
Más detallesPROGRAMACION ORIENTADA A OBJETOS EN C++
PROGRAMACION ORIENTADA A OBJETOS EN C++ 1- INTRODUCCIÓN El lenguaje C++ representa el resultado de los esfuerzos realizados para proporcionar las ventajas de la programación Orientada a Objetos a un lenguaje
Más detallesUnidad V. Ya veremos qué poner en "algunas_palabras" y "algo_más", por ahora sigamos un poco más.
Implementación Orientada a Objetos. Unidad V 5.1 Estructura de una clase. Una clase consiste en: algunas_palabras class nombre_de_la_clase [algo_más] { [lista_de_atributos] [lista_de_métodos] Lo que está
Más detallesb) Basta con definir una variable de tipo Alumno (a) y otra de tipo CursoExtraescolar (curso) antes de hacer la llamada al método mediante el
PRIMER EXAMEN PARCIAL ESTRUCTURA DE DATOS Y ALGORITMOS 27 FEBRERO 2014 Apellidos y Nombre: Grupo Algunas reglas: Antes de comenzar el examen, escribe tu nombre y grupo. Lee atentamente el enunciado de
Más detallesIntroducción a Programación Orientada a Objetos (OOP): Clases y Objetos 01/02/2013 ING. PEDRO BELTRÁN CANESSA
Introducción a Programación Orientada a Objetos (OOP): Clases y Objetos Definición Clase es la representación abstracta (modelo) de una entidad del mundo La clase especifica los atributos (propiedades)
Más detallesTema 1. Herencia y Polimorfismo
ÍNDICE EDA. Unidad didáctica I: Conceptos de Java para Estructuras de Datos Tema 1. Herencia y Polimorfismo 1. Relaciones entre clases: Reutilización del software. 2. La Herencia como soporte Java del
Más detallesClases Abstractas e Interfaces
Clases Abstractas e Interfaces Pedro Corcuera Dpto. Matemática Aplicada y Ciencias de la Computación Universidad de Cantabria corcuerp@unican.es Objetivos Aprender a crear y utilizar clases y métodos abstractos
Más detallesHerencia y Polimorfismo
Herencia y Polimorfismo Dra. Maricela Bravo Universidad Autónoma Metropolitana Unidad Azcapotzalco 1 Herencia en el mundo real Cosa Medio de telecomunicación Medio de transporte Coche Vehiculo aéreo Objeto
Más detallesHerencia y búsqueda de métodos en Smalltalk
Herencia y búsqueda de métodos en Smalltalk Animal Pajaro Mamifero Loro Pinguino Perro Ballena Ballena new decialgo Ballena new decialgo Mamifero new decialgo New crea una nueva ballena. Smalltalk responde
Más detalles2. Tratamiento de objetos con JAVA
2. Tratamiento de objetos con JAVA David Contreras Bárcena (ETSI) - Comillas 71 2.1 Ciclo de Vida de los Objetos Los objetos tienen un tiempo de vida y consumen recursos durante el mismo. Cuando un objeto
Más detallesPARA QUÉ SIRVEN LAS INTERFACES JAVA. IMPLEMENTAR UNA INTERFAZ DEL API. VENTAJAS. EJEMPLOS BÁSICOS. (CU00697B)
APRENDERAPROGRAMAR.COM PARA QUÉ SIRVEN LAS INTERFACES JAVA. IMPLEMENTAR UNA INTERFAZ DEL API. VENTAJAS. EJEMPLOS BÁSICOS. (CU00697B) Sección: Cursos Categoría: Curso Aprender programación Java desde cero
Más detallesTema 3 Herencia en Java Parte 2. Programación Orientada a Objetos Curso 2015/2016
Tema 3 Herencia en Java Parte 2 Programación Orientada a Objetos Contenido Restringir la herencia. Visibilidad protegida. Clases abstractas. Clase Object. Autoboxing. Igualdad de objetos. Copia de objetos.
Más detalles2. Indica cuál de las siguientes afirmaciones es cierta:
Nombre:. Indica cuál de las siguientes afirmaciones es cierta: El diseño de un programa procedural está guiado por la división en tareas a realizar, mientras que el diseño orientado a objetos está dirigido
Más detallesReutilización con Delegación y Herencia
Reutilización con Delegación y Herencia Carlos Fontela cfontela@fi.uba.ar Temario Delegación Herencia UML: clases, paquetes, secuencias Cuándo usar herencia y cuándo delegación Redefinición Clases abstractas
Más detallesINICIACIÓN A LA PROGRAMACIÓN LENGUAJE JAVA con BlueJ
INICIACIÓN A LA PROGRAMACIÓN LENGUAJE JAVA con BlueJ Tema 3 Clases y Objetos Tema 4 Comunicación entre objetos. Algoritmos Tema 5 Herencia y abstracción de datos Tema 6 Diseño de clases TEMA 5: Herencia
Más detallesTema 2.- Objetos y mensajes
Tema 2.- Objetos y mensajes 1. Objetos y mensajes: mecanismo de envío de mensajes...2 2. SMALLTALK: EXPRESIONES...3 2.1. LITERALES: designan objetos constantes...3 2.2. NOMBRES DE VARIABLES: identifican
Más detallesInterfaces y Clases Internas
Interfaces y Clases Internas (No es interfaz gráfica, sirve como alternativa a herencia múltiple) ELO329: Diseño y Programación Orientados a Objetos Qué queremos decir con interfaces y clases internas?
Más detallesProgramación orientada a objetos. Introducción
Programación orientada a objetos Clases: Polimorfismo Introducción El polimorfismo, en general, es la característica de un lenguaje orientado a objetos que permite que un mismo identificador de método
Más detallesPROGRAMACIÓN ORIENTADA A OBJETOS 10/02/2009. Examen de Java. Nombre: DNI: Titulación:
Examen de Java Nombre: DNI: Titulación: 1. Cómo podemos compilar desde la línea de comandos la clase Java A que utiliza una librería empaquetada bd.jar? 2. Indica si es correcto el siguiente código. Justifica
Más detallesINTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
UNIVERSIDAD DE MÁLAGA Dpto. Lenguajes y CC. Computación E.T.S.I. Telecomunicación INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Tema 4 Programación II Programación II 0 Tema 4: INTRODUCCIÓN A LA PROGRAMACIÓN
Más detallesIntroducción a la Orientación a Objetos
Introducción a la Orientación a Objetos Breve historia de la OO 1960s. Simula incorpora características propias de la OO. 1970s. Smalltalk. Lenguaje totalmente OO. 1990s. Boom de la OO. 2000-Hoy. Época
Más detallesInterfaces y Clases Internas
Interfaces y Clases Internas (No es interfaz gráfica, sirve como alternativa a herencia múltiple) ELO329: Diseño y Programación Orientados a Objetos Qué queremos decir con interfaces y clases internas?
Más detallesArquitecturas cliente/servidor
Arquitecturas cliente/servidor Creación de Sockets Cliente Servidor 1 Creación de Sockets Cliente/Servidor Sockets en TCP Concepto de Hilos Definición de DAEMON Sockets en UDP 2 THREADS 3 Qué es un thread?
Más detallesExamen Teórico. Convocatoria de Febrero de 2015
Examen Teórico Convocatoria de Febrero de 2015 Nombre: DNI: Grupo: 1. Contesta de forma razonada a las siguientes cuestiones relacionadas con los ficheros.jar: a) Para qué se utilizan los ficheros con
Más detallesIngeniería del Software Separación entre Presentación y Lógica del Negocio
Introducción En este laboratorio desarrollaremos una aplicación que verifica si una cuenta y un password son correctos. En dicha aplicación la presentación y la lógica del negocio se definirán en dos capas
Más detallesEdwin Andrés Cubillos Vega
PROGRAMACION ORIENTADA A OBJETOS Edwin Andrés Cubillos Vega Company LOGO Contenido Introducción Clases y Objetos Herencia Constructores y Destructores Polimorfismo Contenido Introducción Clases y Objetos
Más detallesExamen Teórico. Convocatoria de Febrero de 2018
Examen Teórico Convocatoria de Febrero de 2018 Nombre: DNI: Grupo: 1. Dado un proyecto Java en Eclipse que tiene como clase principal proyecto.programa y requiere de la librería matemática de Apache commons-math.jar,
Más detallesPolimorfismo Java y Servicios Web I Master en Ingeniería Matemática
Polimorfismo Java y Servicios Web I Master en Ingeniería Matemática Manuel Montenegro Dpto. Sistemas Informáticos y Computación Desp. 467 (Mat) montenegro@fdi.ucm.es Contenidos Introducción. Conversión
Más detallesNETBEANS JAVA PROGRAMACIÓN ORIENTADA A OBJETOS
NETBEANS JAVA PROGRAMACIÓN ORIENTADA A OBJETOS Como se vio en teoría, la definición de una clase consta de dos partes fundamentales: 1 - La declaración de la clase: Indica el nombre de la clase precedido
Más detallesInterface nominterface{
Programación Orientada a Objetos Interfaces, Contenedores y Casting Angela C. Carrillo Ramos Interface Define un tipo con un contrato abstracto Una interface puede heredar de otras interfaces interface
Más detallesHerencia en Java. Agustín J. González Diseño y Programación Orientados a Objetos
Herencia en Java Agustín J. González Diseño y Programación Orientados a Objetos 1 Introducción La idea básica es poder crear clases basadas en clases ya existentes. Cuando heredamos de una clase existente,
Más detallesPOO: Clases y objetos
POO: Clases y objetos Programación de aplicaciones 1 Introducción En los lenguajes de programación orientados a objetos, tenemos la posibilidad de extender el lenguaje mediante la creación de nuevo tipos,
Más detallesPráctica 2. Reutilización de código Elementos básicos del lenguaje Java Definición de variables, expresiones y asignaciones
Práctica 2 Reutilización de código Elementos básicos del lenguaje Java Definición de variables, expresiones y asignaciones Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos
Más detallesPolimorfismo de tipo (en la herencia)
Polimorfismo de tipo (en la herencia) Pablo San Segundo (C-206) pablo.sansegundo@upm.es Índice Overriding (especialización o redefinición) Static bind (enlace estático) Dynamic bind (enlace dinámico) Clases
Más detallesConcurso: Cuánto sabes de JAVA?
Concurso: Cuánto sabes de JAVA? Motivación: o Para cambiar el ritmo de las jornadas y que no todas las actividades sean charlas o Recordar conocimientos y aprender algo nuevo. o Las preguntas pueden ayudarnos
Más detallesIntroducción a OOP. Programación Orientada a Objeto
Introducción a OOP Programación Orientada a Objeto Evolución Programación no Estructurada, Programación procedimental, Programación modular y Programación orientada a objetos. Programación no Estructurada
Más detallesTEMA 5. Agenda. Herencia
TEMA 5 Herencia V1.3 Manuel Pereira González Agenda Implementación Métodos Heredados vs Sobreescritos La Clase Object Resumen 1 Introducción Herencia Una clase (subclase ó clase hija) hereda la estructura
Más detallesCONCEPTOS BÁSICOS PROGRAMACIÓN ORIENTADA A OBJETOS. Ing. Martha Tello
CONCEPTOS BÁSICOS PROGRAMACIÓN ORIENTADA A OBJETOS Ing. Martha Tello Introducción Cuando hacemos referencia a la programación orientada a objetos estamos hablando de una nueva forma de pensar acerca del
Más detallesRecogiendo la basura. Herencia de interfaz Transversal Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas
1 Herencia de interfaz. 2013 Transversal Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas 2 Introducción Ante la herencia múltiple alguna solución no controversial tenía que
Más detallesPolimorfismo. Métodos virtuales
Polimorfismo. Métodos virtuales El polimorfismo indica que una variable pasada o esperada puede adoptar múltiples formas. Cuando se habla de polimorfismo en programación orientada a objetos se suelen entender
Más detallesTema 6: Herencia. (El lenguaje C++)
(El lenguaje C++) 1 Índice 2 1. Herencia 3 En C++ pueden ser definidas clases en términos de otras clases (composición). En C++ también podemos definir una clase a partir de otra preexistente utilizando
Más detallesFACULTAD DE INGENIERÍA
NOMBRE DEL PROFESOR: Ing. Héctor Manuel Quej Cosgaya NOMBRE DE LA PRÁCTICA: Herencia PRÁCTICA NÚM. [ 4 ] LABORATORIO: MATERIA: UNIDAD: TIEMPO: Centro de Ingeniería Computacional Lenguaje de Programación
Más detallesHOJA DE EJERCICIOS 4 INTERFACES Y CLASES ABSTRACTAS EN JAVA Y C++
Estructura de la Información en Programación I.T.I.G., Matemáticas. Curso 2009/2010 Nombre:... Fecha: / 12 / 2009 HOJA DE EJERCICIOS 4 INTERFACES Y CLASES ABSTRACTAS EN JAVA Y C++ Esta hoja de ejercicios
Más detalles