Tema 3 Herencia en Java Parte 1. Programación Orientada a Objetos Curso 2015/2016

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Tema 3 Herencia en Java Parte 1. Programación Orientada a Objetos Curso 2015/2016"

Transcripción

1 Tema 3 Herencia en Java Parte 1 Programación Orientada a Objetos

2 Contenido Introducción. Definición y tipos. Constructores. Redefinición. Polimorfismo. Herencia y sistema de tipos. Ligadura dinámica. Casting Operador instanceof Programación Orientada a Objetos 2

3 Introducción Entre las clases pueden existir relaciones conceptuales: Extensión, Especialización, Combinación. Ejemplos: Una pila puede definirse a partir de una cola o viceversa Un rectángulo es una especialización de polígono Libros y Revistas tienen propiedades comunes Herencia: Mecanismo para definir y utilizar estas relaciones. Permite la definición de una clase a partir de otra. Programación Orientada a Objetos 3

4 Introducción La herencia organiza las clases en una estructura jerárquica Jerarquía de clases No es sólo un mecanismo de reutilización de código. Es consistente con el sistema de tipos. Ejemplos: PUBLICACION FIGURA LIBRO REVISTA POLIGONO CIRCULO LIBRO_TEXTO INVESTIGACION MAGAZINE RECTANGULO Programación Orientada a Objetos 4

5 Herencia Si la clase B hereda de A, entonces B incorpora la estructura (atributos) y comportamiento (métodos) de la clase A, pero puede incluir adaptaciones: B puede añadir nuevos atributos. B puede añadir nuevos métodos. B puede redefinir métodos heredados (refinar o reemplazar). En general, las adaptaciones dependen del lenguaje OO. Programación Orientada a Objetos 5

6 Herencia Terminología A B hereda de A (A es la superclase y B la subclase) A es la clase padre o clase base de B C hereda de B y A B B y C son subclases de A B es un descendiente directo de A C C es un descendiente indirecto de A A y B son ascendientes de C Programación Orientada a Objetos 6

7 Tipos de herencia B A C Herencia simple: Una clase puede heredar de una única clase. Java, C# D E B A C Herencia múltiple: Una clase puede heredar de varias clases. C++ Programación Orientada a Objetos 7

8 Reconocer la herencia Especialización: Se detecta que una clase es un caso especial de otra. Ejemplo: Rectángulo es un tipo de Polígono. Generalización (factorización): Se detectan dos clases con características en común y se crea una clase padre con esas características. Ejemplo: Libro, Revista Publicación No hay receta mágica para crear buenas jerarquías de herencia. Programación Orientada a Objetos 8

9 Caso de estudio Continuación de la aplicación de gestión bancaria. Se introduce el concepto Depósito que permite a un cliente obtener intereses por su dinero. Un Depósito, simplificado, se define: Propiedades: titular, capital, plazo en días y tipo de interés. Comportamiento: Permite liquidar el depósito devolviendo el capital depositado más los intereses. Permite consultar los intereses generados al vencimiento. Programación Orientada a Objetos 9

10 Clase Deposito 1/2 public class Deposito { private Persona titular; private double capital; private int plazodias; private double tipointeres; public Deposito(Persona titular, double capital, int plazodias, double tipointeres) { } this.titular = titular; this.capital = capital; this.plazodias = plazodias; this.tipointeres = tipointeres; Programación Orientada a Objetos 10

11 Clase Deposito 2/2 public class Deposito { public double getcapital() { } public int getplazodias() { } public double gettipointeres() { } public Persona gettitular() { } } public double liquidar() { return getcapital() + getintereses(); } public double getintereses() { return (plazodias * tipointeres * capital)/365; } Programación Orientada a Objetos 11

12 Caso de Estudio Identificamos el concepto Depósito Estructurado que se caracteriza por tener una parte del capital a tipo fijo y otra parte a tipo variable. Depósito Estructurado es un Depósito? Comparte todas las características de Depósito. Añade nuevas características. La clase DepositoEstructurado hereda de Deposito: Nuevas características: capital a tipo variable y el tipo de interés variable. Programación Orientada a Objetos 12

13 Clase DepositoEstructurado public class DepositoEstructurado extends Deposito { private double tipointeresvariable; private double capitalvariable; public DepositoEstructurado( ) { } } public double getinteresesvariable() { return (getplazodias() * tipointeresvariable * capitalvariable)/365; } public void settipointeresvariable( public double gettipointeresvariable() { } public double getcapitalvariable() { } Programación Orientada a Objetos 13

14 Clase DepositoEstructurado La subclase incluye las características específicas: Atributos: tipo de interés variable y capital a tipo variable. Método de consulta (get) del capital variable. Métodos de consulta/establecimiento (get/set) del tipo de interés variable. Método para el cálculo de los intereses del capital a tipo variable. La clase hija hereda todos los atributos de la clase padre, aunque no los vea debido a la ocultación de la información. La clase dispone de los métodos heredados como si fueran propios (ejemplo, getplazodias()). Programación Orientada a Objetos 14

15 Jerarquía de herencia Programación Orientada a Objetos 15

16 Herencia y constructores En Java los constructores no se heredan. El constructor de un DepositoEstructurado se declara con los mismos parámetros que un Deposito y añade la cantidad de capital a tipo variable. La clase DepositoEstructurado no tiene visibilidad sobre los atributos privados de Deposito. Java permite invocar a los constructores de la clase padre dentro de un constructor utilizando la llamada super( ) Programación Orientada a Objetos 16

17 Clase DepositoEstructurado public class DepositoEstructurado extends Deposito { public DepositoEstructurado(Persona titular, double capitalfijo, double capitalvariable, int plazodias, double tipointeresfijo) { super(titular, capitalfijo, plazodias, tipointeresfijo); } } this.capitalvariable = capitalvariable; Programación Orientada a Objetos 17

18 Herencia y constructores Cuando se aplica herencia, la llamada a un constructor de la clase padre es obligatoria. Debe ser la primera sentencia del código del constructor. Si se omite la llamada, el compilador asume que la primera llamada es super() Llama al constructor sin argumentos de la clase padre. Si no existe ese constructor, la clase no compila. Programación Orientada a Objetos 18

19 Adaptación del código heredado La clase DepositoEstructurado añade nuevas propiedades: capital a tipo variable y tipo de interés variable. Sin embargo, hay que adaptar dos métodos heredados: getcapital(): el capital de un depósito estructurado es el capital a tipo fijo más el capital a tipo variable. getintereses(): intereses a tipo fijo más intereses a tipo variable. La herencia permite la redefinición de métodos para adaptarlos a la semántica de la clase. Programación Orientada a Objetos 19

20 Redefinición de métodos Un método es una redefinición si tiene la misma signatura (nombre y parámetros) que un método de la clase padre: Nota: si cambia el tipo de algún parámetro o se añaden nuevos parámetros, entonces se está sobrecargando el método heredado. Opcional: la se utiliza para indicar al compilador que un método es una redefinición. La redefinición reconcilia la reutilización con la extensibilidad: Es habitual hacer cambios cuando se reutiliza un código. Programación Orientada a Objetos 20

21 Redefinición de métodos La redefinición de un método heredado puede ser de dos tipos: Refinamiento: se añade nueva funcionalidad al comportamiento heredado. Reemplazo: se sustituye completamente la implementación del método heredado. En el refinamiento de un método resulta útil invocar a la versión heredada del método. Programación Orientada a Objetos 21

22 Redefinición de métodos y super El lenguaje proporciona la palabra reservada super que permite llamar a la versión del padre de un método que se redefine en la clase. En general, el uso de super se recomienda sólo para el refinamiento de métodos. No hay que utilizar super para llamar a métodos que se heredan. Programación Orientada a Objetos 22

23 Clase DepositoEstructurado public class DepositoEstructurado extends Deposito public double getintereses() { return super.getintereses() + getinteresesvariable(); } public double getcapital() { return super.getcapital() + getcapitalvariable(); } Programación Orientada a Objetos 23

24 Caso de estudio Identificamos un nuevo tipo de depósito formado por una parte del capital a tipo fijo y otra a tipo variable con un interés mínimo garantizado (Depósito Garantizado). Este depósito posee todas las características de un Depósito Estructurado y añade una garantía al interés variable (regla es un). La clase DepositoGarantizado hereda de DepositoEstructurado. Programación Orientada a Objetos 24

25 Clase DepositoGarantizado public class DepositoGarantizado extends DepositoEstructurado { private double tipointeresgarantizado; public DepositoGarantizado(, { super(titular, capitalfijo, capitalvariable, plazodias, tipointeresfijo); } } this.tipointeresgarantizado = tipointersesgarantizado; settipointeresvariable(tipointersesgarantizado); Programación Orientada a Objetos 25

26 Redefinición de métodos La clase debe controlar que al establecer el tipo de interés variable no quede por debajo del interés garantizado. Para ello, redefine (refina) el método public void settipointeresvariable( double tipointeresvariable) { } if (tipointeresvariable >= tipointeresgarantizado) } super.settipointeresvariable(tipointeresvariable); Programación Orientada a Objetos 26

27 Caso de estudio Un Depósito Penalizable es un depósito básico en el que los intereses pueden ser penalizados. El nuevo depósito tiene todas las características de un depósito básico (regla es un). Clase DepositoPenalizable hereda de Deposito La penalización consiste en reducir el interés del depósito a la mitad. Adapta el cálculo de los intereses según la penalización (redefinición). Programación Orientada a Objetos 27

28 Clase DepositoPenalizable public class DepositoPenalizable extends Deposito { private boolean penalizado; public DepositoPenalizable( ) { super(titular, capital, plazodias, tipointeres); penalizado = false; public double getintereses() { if (penalizado) return super.getintereses() / 2; else return super.getintereses(); } public boolean ispenalizado() { } public void setpenalizado(boolean penalizado) { } } Programación Orientada a Objetos 28

29 Jerarquía de herencia Programación Orientada a Objetos 29

30 Polimorfismo Capacidad de una entidad (atributo, variable, parámetro) de referenciar en tiempo de ejecución a objetos de diferentes clases. Es restringido por herencia. El polimorfismo implica que una entidad tiene un tipo estático (declarado) y otro dinámico (al que referencia la entidad). Programación Orientada a Objetos 30

31 Tipos estático y dinámico Tipo estático (te): Tipo asociado a la declaración de una entidad. Tipo dinámico: Tipo correspondiente a la clase del objeto conectado a la entidad en tiempo de ejecución. Conjunto de tipos dinámicos (ctd): Conjunto de posibles tipos dinámicos de una entidad. Ejemplo: A A oa; B ob; C oc; D B E C F te(oa) = A ctd(oa) = {A,B,C,D,E,F} te(ob) = B ctd(ob) = {B, D, E} te(oc) = C ctd(oc) = {C,F} Programación Orientada a Objetos 31

32 Polimorfismo Asignación polimórfica: 1. Deposito deposito = new Deposito( ); 2. DepositoPenalizable penalizable = new DepositoPenalizable( ); // Asignación polimórfica 3. deposito = penalizable; La variable deposito tiene como tipo estático Deposito. El tipo dinámico de la variable cambia: Línea 1: clase Deposito. Línea 3: clase DepositoPenalizable. Programación Orientada a Objetos 32

33 Herencia y sistema de tipos Serían posibles las siguientes asignaciones? Objeto DepositoEstructurado a variable Deposito. Objeto DepositoEstructurado a variable DepositoPenalizable. Objeto DepositoGarantizado a variable Deposito. Programación Orientada a Objetos 33

34 Compatibilidad de tipos Una clase (tipo) B es compatible con otra clase A si B es descendiente de A: DepositoEstructurado es compatible con Deposito. DepositoGarantizado es compatible con Deposito y DepositoEstructrado. DepositoEstructurado NO es compatible con DepositoPenalizable. Programación Orientada a Objetos 34

35 Compatibilidad de tipos Una asignación polimórfica es válida si el tipo estático de la parte derecha es compatible con el tipo estático de la parte izquierda: Deposito deposito = new DepositoEstructurado( ); DepositoPenalizable penalizable = new DepositoPenalizable( ); // Asignación polimórfica válida deposito = penalizable; // Asignación polimórfica no válida DepositoGarantizado garantizado = penalizable; Programación Orientada a Objetos 35

36 Compatibilidad de tipos Un paso de parámetros es válido si el tipo estático del parámetro real es compatible con el tipo estático del parámetro formal. public double indicerentabilidad(deposito deposito) { } return deposito.getintereses()/deposito.getcapital(); DepositoPenalizable penalizable = new DepositoPenalizable( ); banco.indicerentabilidad(penalizable); Programación Orientada a Objetos 36

37 Validez de mensajes Son válidos los siguientes mensajes? Mensaje getcapitalvariable() sobre una variable de tipo estático Deposito. Mensaje getcapital() sobre una variable de tipo estático DepositoGarantizado. Programación Orientada a Objetos 37

38 Validez de mensajes La herencia es consistente con el sistema de tipos. Sobre una variable cuyo tipo estático es DepositoEstructurado podemos aplicar: Métodos heredados y redefinidos: getintereses(), getplazodias(), etc. Métodos propios: getcapitalvariable(), etc. Si el tipo estático es Deposito no podemos aplicar métodos de los subtipos: deposito.gettipointeresvariable(); //Error deposito.ispenalizado(); // Error Programación Orientada a Objetos 38

39 Validez de mensajes Deposito deposito = new Deposito( ); DepositoEstructurado estructurado = new DepositoEstructurado( ); estructurado.liquidar(); //OK HEREDADO DE DEPOSITO estructurado.getcapital(); //OK METODO REDEFINIDO estructurado.getcapitalvariable(); //OK MÉTODO PROPIO deposito = estructurado; deposito.getintereses(); //OK METODO DE DEPOSITO deposito.getcapitalvariable(); //ERROR COMPILACION! Programación Orientada a Objetos 39

40 Política pesimista de tipos El compilador rechazaría los siguientes casos debido a la comprobación estática de tipos: Deposito deposito; DepositoPenalizable penalizable = new ; deposito = penalizable; penalizable = deposito; // Error de compilación Deposito deposito; DepositoPenalizable penalizable = new ; deposito = penalizable; deposito.ispenalizado(); // Error de compilación Programación Orientada a Objetos 40

41 Ligadura dinámica Qué versión del método getcapital() se ejecutaría? Deposito deposito; if (clientepreferente) deposito = new DepositoGarantizado(...); else deposito = new DepositoPenalizable(...); deposito.getcapital(); Programación Orientada a Objetos 41

42 Ligadura dinámica La versión de un método en una clase es la introducida por la clase (redefinida) o la heredada. Versiones del método getcapital(): Versión Deposito: el método es definido en Depósito La clase DepositoPenalizable lo hereda. Versión DepositoEstructurado: la clase DepositoEstructurado redefine el método. La clase DepositoGarantizado hereda la versión de DepositoEstructurado. Se ejecuta la versión asociada al tipo dinámico de la entidad sobre la que se aplica el método. Programación Orientada a Objetos 42

43 Ligadura dinámica public double posicionglobal(deposito[] depositos) { double posicion = 0; for (Deposito deposito : depositos) { } } posicion += deposito.getcapital(); return posicion; Qué sucedería si apareciera un nuevo tipo de depósito? Programación Orientada a Objetos 43

44 Ligadura dinámica redefine f {fβ} B A {fα} C Qué versión se ejecuta? A oa; B ob = new B(); D od = new D(); oa = ob; oa.f(); redefine f D {fδ} oa = od; oa.f(); Sea el mensaje x.f(), la comprobación estática de tipos garantiza que al menos existirá una versión aplicable para f, y la ligadura dinámica garantiza que se ejecutará la versión más apropiada. Programación Orientada a Objetos 44

45 Ligadura dinámica La ejecución de un método puede tener diferentes interpretaciones en tiempo de ejecución. Ejercicio: Qué métodos y versiones se ejecutan cuando se aplica el método liquidar() a un depósito penalizable? Y para un depósito estructurado? Deposito deposito = new DepositoPenalizable(...); deposito.liquidar(); Programación Orientada a Objetos 45

46 Ligadura dinámica El método liquidar() es un ejemplo de código reutilizable: El mismo código es reutilizado por los subtipos. En tiempo de ejecución, el código ejecutado varía según el tipo de depósito al que sea aplicado (ligadura dinámica). El polimorfismo, la redefinición de métodos y la ligadura dinámica permiten reutilizar el código y al mismo tiempo adaptarlo a las características de cada depósito. Programación Orientada a Objetos 46

47 Estructuras de datos polimórficas Organizar las clases en una jerarquía de herencia resulta útil para definir estructuras de datos polimórficas: Deposito[] depositos = new Deposito[3]; depositos[0] = new DepositoPenalizable ( ); depositos[1] = new DepositoEstructurado ( ); depositos[2] = new DepositoGarantizado ( ); En el ejemplo, cada componente del array puede ser de un tipo distinto de depósito. Programación Orientada a Objetos 47

48 Caso de estudio Motivación: Cómo podemos establecer el tipo de interés variable sobre todos los depósitos estructurados? En la aplicación almacenamos todos los depósitos en un array: Deposito[] depositos; Una posición del array puede apuntar a cualquier tipo de depósito (estructura de datos polimórfica). Sobre una referencia de tipo estático Deposito sólo puedo aplicar métodos de esa clase. Solución: casting (narrowing). Programación Orientada a Objetos 48

49 Casting El compilador permite hacer un casting de una variable polimórfica a uno de los posibles tipos dinámicos de la variable. Sería posible hacer un casting al tipo DepositoEstructurado que tiene el método para establecer el tipo de interés variable: public void settipointeresvariable(double tipo, Deposito[] depositos) { for (Deposito d : depositos) { DepositoEstructurado de = (DepositoEstructurado) d; de.settipointeresvariable(tipo); } } Programación Orientada a Objetos 49

50 Casting El casting de una variable de tipo objeto no realiza una conversión de objetos Un casting de objetos debe entenderse como el tipo dinámico de la variable es compatible con el tipo indicado en el casting. El compilador confía en el programador y acepta que la variable es compatible con el tipo indicado de cara a hacer asignaciones o aplicar métodos. Programación Orientada a Objetos 50

51 Operador instanceof Problema: Todos los depósitos no son estructurados. El casting se resuelve en tiempo de ejecución y si es incorrecto aborta el programa. Solución: operadorinstanceof Permite consultar en tiempo de ejecución si el tipo dinámico de una variable es compatible con un tipo. Se entiende por tipo compatible el tipo de la consulta o cualquiera de los subtipos. Programación Orientada a Objetos 51

52 Operador instanceof public void settipointeresvariable(double tipo, Deposito[] depositos) { for (Deposito d : depositos) { if (d instanceof DepositoEstructurado) { } } } DepositoEstructurado de = (DepositoEstructurado) d; de.settipointeresvariable(tipo); Programación Orientada a Objetos 52

53 Consejos uso de la herencia Los atributos y métodos comunes deben situarse en clases altas de la jerarquía (generalización). Aplica herencia si entre dos clases existe la relación es-un. No debe utilizarse herencia salvo que todos los métodos heredados tengan sentido en la clase hija. En la redefinición de un método no hay que cambiar la semántica que tiene definida. Aplica polimorfismo y ligadura dinámica para evitar análisis de casos. Programación Orientada a Objetos 53

54 Seminario 2 Este tema se completa con parte del seminario 2: Conceptos básicos de la herencia. Polimorfismo. Herencia y sistema de tipos. Ligadura dinámica. Programación Orientada a Objetos 54

Tema 3 Herencia. Primera parte. Herencia en Java Programación Orientada a Objetos Curso 2010/2011

Tema 3 Herencia. Primera parte. Herencia en Java Programación Orientada a Objetos Curso 2010/2011 Tema 3 Herencia Primera parte. Herencia en Java Programación Orientada a Objetos Contenido Introducción. Definición y tipos. Constructores. Redefinición. Restringir la herencia. Visibilidad protegida.

Más detalles

Tema 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 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 detalles

Tema 3: Herencia en C# Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle

Tema 3: Herencia en C# Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle Tema 3: Herencia en C# Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle Contenido Herencia. Polimorfismo y ligadura. Clase object. Casting. Compatibilidad de tipos. Clases abstractas.

Más detalles

Tema 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 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 detalles

Objetivos. Objetivos. Herencia. Objetivos. agregar funcionalidad a una clase existente, sin compilar su nueva definición.

Objetivos. 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 detalles

Programación orientada a objetos. Resumen de Temas Unidad 5: Herencia

Programació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 detalles

La Herencia: Teoría (1)

La Herencia: Teoría (1) Introducción a la Herencia Presentación basada en: 1. Construcción de Software Orientado a Objetos. Bertrand Meyer.1998. 2. Java 2., Curso de programación. Fco. Javier Ceballos. Ed. Alfoomega&RA-MA, 2003.

Más detalles

Herencia 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 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 detalles

Herencia. Implementación en Java

Herencia. 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 detalles

Prá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 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 detalles

Herencia 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 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 detalles

Herencia y Clases Abstractas

Herencia y Clases Abstractas Herencia y Clases Abstractas Reutilización de código y código genérico ELO329: Diseño y Programación Orientados a Objetos Introducción La idea básica es poder crear clases basadas en clases ya existentes.

Más detalles

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Centro 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 detalles

Tema 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 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 detalles

Definición. Mónica E. García García Feb 07

Definició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 detalles

Introducción a OOP. Programación Orientada a Objeto

Introducció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 detalles

INICIACIÓN A LA PROGRAMACIÓN LENGUAJE JAVA con BlueJ

INICIACIÓ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 detalles

Fundamentos de Programación

Fundamentos de Programación Fundamentos de Programación Extensión de clases: herencia y polimorfismo 13.12.2010 José A. Mañas Dpto. de Ingeniería de Sistemas Telemá@cos hcp://www.lab.dit.upm.es/~fprg/ extensión

Más detalles

Tema 1. Herencia y Polimorfismo

Tema 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 detalles

Sesión 7. TEMA 9 Extensión de clases: HERENCIA

Sesión 7. TEMA 9 Extensión de clases: HERENCIA Sesión 7. TEMA 9 Extensión de clases: HERENCIA Fundamentos de Informática José Jaime Noguera Noguera 6 de mayo de 2018 Contenidos 1 Introducción 2 Ejemplo 3 Código 4 Cuestiones 5 Tareas Temario Este es

Más detalles

Universidad Nacional del Santa E.A.P. Sistemas e Informática Microcomputación III

Universidad Nacional del Santa E.A.P. Sistemas e Informática Microcomputación III HERENCIA Se entiende por herencia el proceso por el que un objeto puede tomar características de otro objeto. La herencia Se puede usar de dos formas: 1. Cuando una clase escrita no llega a cubrir las

Más detalles

Examen Teórico. Convocatoria de Febrero de 2015

Examen 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 detalles

Examen Teórico Convocatoria de Junio de 2012

Examen 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 detalles

Programación orientada a objetos. Capítulo 8 Mejora de las estructuras mediante herencia

Programación orientada a objetos. Capítulo 8 Mejora de las estructuras mediante herencia Programación orientada a objetos Capítulo 8 Mejora de las estructuras mediante herencia Clases y objetos de DoME Modelo de objetos Modelo de clases Crítica de la v1 de DoME - Duplicación de código - Las

Más detalles

UNIDAD 4 IMPLEMENTACION DE PROPIEDADES DE LOS OBJETOS JAVA

UNIDAD 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 detalles

Unidad 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 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 detalles

16. Herencia Definición de herencia. 168 A. García-Beltrán y J.M. Arranz

16. Herencia Definición de herencia. 168 A. García-Beltrán y J.M. Arranz 168 A. García-Beltrán y J.M. Arranz 16. Herencia Objetivos: a) Definir el concepto de herencia entre clases b) Interpretar el código fuente de una aplicación Java donde aparecen clases relacionadas mediante

Más detalles

Guía práctica de estudio 08: Polimorfismo

Guí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 detalles

HERENCIA (2ª parte) En Java todas las clases derivan de otra, aunque no se diga explícitamente.

HERENCIA (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 detalles

UAA-DSE Programación 2 / C++ Eduardo Serna-Pérez

UAA-DSE Programación 2 / C++ Eduardo Serna-Pérez 6 Herencia y Polimorfismo La Herencia y el Polimorfismo son dos de los principales mecanismos de programación que caracterizan a la programación orientada a objetos. La herencia sustenta su mecanismo en

Más detalles

PROGRAMACION ORIENTADA A OBJETOS EN C++

PROGRAMACION 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 detalles

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Centro 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 detalles

Guía práctica de estudio 07: Herencia

Guí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 detalles

Tema 6: Programación Orientada a Objetos en C++ Programación Orientada a Objetos Curso 2013/2014

Tema 6: Programación Orientada a Objetos en C++ Programación Orientada a Objetos Curso 2013/2014 Tema 6: Programación Orientada a Objetos en C++ Programación Orientada a Objetos Curso 2013/2014 Contenido (1/3) Introducción. Definición de clases. Visibilidad y clases amigas. Espacios de nombres. Tipos

Más detalles

TEMA 5. Agenda. Herencia

TEMA 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 detalles

Curso de Java POO: Programación orientada a objetos

Curso 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 detalles

Tema 4 Genericidad en Java. Programación Orientada a Objetos Curso 2013/2014

Tema 4 Genericidad en Java. Programación Orientada a Objetos Curso 2013/2014 Tema 4 Genericidad en Java Programación Orientada a Objetos Curso 2013/2014 Contenido Antecedentes. Genericidad en Java 5 y posterior. Características avanzadas: Genericidad restringida. Tipo puro. Limitaciones

Más detalles

Curso de Java POO: Programación orientada a objetos

Curso 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 detalles

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 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 detalles

HERENCIA. Problema: Reparar el el coche. Jesús (Valencia) Luis, Mecánico (Valencia) Antonio, Servicio Técnico Ferrari (Madrid)

HERENCIA. Problema: Reparar el el coche. Jesús (Valencia) Luis, Mecánico (Valencia) Antonio, Servicio Técnico Ferrari (Madrid) HERENCIA Lenguajes de Programación - Orientación a Objetos: Herencia 1 Problema: Reparar el el coche Jesús (Valencia) Reparar vehículo. Problema: no arranca Luis, Mecánico (Valencia) Método empleado Pedir

Más detalles

Principios de Computadoras II

Principios de Computadoras II Departamento de Ingeniería Electrónica y Computadoras Mg. Ricardo Coppo rcoppo@uns.edu.ar La herencia establece una relación entre dos clases, un ancestro o superclase y otro derivado o descendiente Por

Más detalles

Programación orientada a objetos

Programació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 detalles

Clases y herencia. FJP Unidad 8. Diseño de clases

Clases 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 detalles

Programación orientada a objetos I

Programación orientada a objetos I Introducción Programación orientada a objetos I Curso INEM. Programación en C++ Santiago Muelas Pascual smuelas@fi.upm.es Qué es la POO? Un paradigma de programación Un paradigma es una forma de afrontar

Más detalles

Tema 3 Herencia en Java Parte 2. Programación Orientada a Objetos Curso 2016/2017

Tema 3 Herencia en Java Parte 2. Programación Orientada a Objetos Curso 2016/2017 Tema 3 Herencia en Java Parte 2 Programación Orientada a Objetos Contenido Restringir la herencia. Clase Object. Autoboxing. Igualdad de objetos. Representación textual de objetos. Copia de objetos. Clases

Más detalles

Estructuras de control selectivas

Estructuras de control selectivas Práctica 3 Estructuras de control selectivas Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 2.0.2 Concepto de sentencia y estructura de control El cuerpo de los métodos

Más detalles

Unidad IV. Este tipo de codificación nos es permitido gracias a la sobrecarga, la cual se aplica a métodos y constructores.

Unidad IV. Este tipo de codificación nos es permitido gracias a la sobrecarga, la cual se aplica a métodos y constructores. Unidad IV Métodos. 4.1 Definición de un método. El polimorfismo, en programación orientada a objetos, se refiere a la posibilidad de acceder a un variado rango de funciones distintas a través del mismo

Más detalles

Aplicaciones de Escritorio

Aplicaciones 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 detalles

Unidad 2. Elementos Intermedios del Lenguaje

Unidad 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 detalles

Programación Orientada a Objetos Curso 2010/2011

Programación Orientada a Objetos Curso 2010/2011 Programación Orientada a Objetos Curso 2010/2011 Ejercicios sobre C++, C# y comparativa LPOO Ejercicios C++ 1. Dado el siguiente código C++: void met() throw (runtime_error) { throw runtime_error( operación

Más detalles

Tema 3. Herencia. Programación Avanzada. Jorge Badenas

Tema 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 detalles

Temas. Taller III 2007 Gentile,Vazquez

Temas. Taller III 2007 Gentile,Vazquez Temas Arreglos de Objetos Punteros de Objetos Arreglos de Punteros de Objetos Constructor de Copia Herencia Constructores y Destructores en Herencia Accesibilidad en Herencia 1 Arreglo de objetos Televisor

Más detalles

Examen Teórico. Convocatoria de Julio de 2015

Examen Teórico. Convocatoria de Julio de 2015 Examen Teórico Convocatoria de Julio de 2015 Nombre: DNI: Grupo: 1. Sobre la ejecución de aplicaciones Java desde la línea de comandos: a) Explica el significado y uso del parámetro cp. b) Indica si la

Más detalles

Federico Peinado

Federico Peinado Federico Peinado www.federicopeinado.es Depto. de Ingeniería del Software e Inteligencia Artificial disia.fdi.ucm.es Facultad de Informática www.fdi.ucm.es Universidad Complutense de Madrid www.ucm.es

Más detalles

Examen Teórico. Convocatoria de Febrero de 2016

Examen 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 detalles

Tema 1. Introducción a la Programación Orientada a Objetos

Tema 1. Introducción a la Programación Orientada a Objetos Tema 1. Introducción a la Programación Orientada a Objetos Dpto. Lenguajes y Ciencias de la Computación. E.T.S.I. Informática. Universidad de Málaga Programación Orientada a Objetos Dpto. Lenguajes y Ciencias

Más detalles

Unidad 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 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 detalles

2. Tratamiento de objetos con JAVA

2. 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 detalles

Programación Orientada a Objetos

Programación Orientada a Objetos Programación Orientada a Objetos PROGRAMACIÓN ORIENTADA A OBJETOS 1 Sesión No. 4 Nombre: Herencia Contextualización Cuando hablamos de informática podemos contemplar varios elementos que se utilizan dentro

Más detalles

Programación Dirigida a Objetos. MATERIAL COMPLEMENTARIO Tema 5.- Herencia

Programación Dirigida a Objetos. MATERIAL COMPLEMENTARIO Tema 5.- Herencia Tema 5.- Herencia 1. Herencia múltiple en C++: ambigüedad de nombres...2 2. Herencia en SMALLTALK...4 2.1. Determinación de los métodos a ejecutar: self y super...4 2.2. Herencia de métodos y variables

Más detalles

Lenguajes de Programación I

Lenguajes de Programación I Lenguajes de Programación I Orientación a Objetos Ernesto Hernández-Novich Copyright c 2006-2010 Módulos como abstracción de datos Los módulos conducen a un estilo de programación en el cual

Más detalles

Tecnología de Programación

Tecnología de Programación Tecnología de Programación Diego C. Martínez Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur UML - Diagramas de clases El diagrama de clases es un diagrama de la estructura

Más detalles

Tema 5 Corrección y Robustez Excepciones en Java

Tema 5 Corrección y Robustez Excepciones en Java Tema 5 Corrección y Robustez Excepciones en Java Parte II: Excepciones en Java Programación Orientada a Objetos Curso 2013/2014 Contenido Introducción Excepciones comprobadas Caso de estudio Tratamiento

Más detalles

Unidad 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. 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 detalles

Herencia. Hay clases que comparten gran parte de sus características.

Herencia. Hay clases que comparten gran parte de sus características. Herencia Hay clases que comparten gran parte de sus características. El mecanismo conocido con el nombre de herencia permite reutilizar clases: Se crea una nueva clase que extiende la funcionalidad de

Más detalles

Programación Tema 7: Relaciones entre clases. Programación DIT-UPM

Programació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 detalles

Apuntes de Programación y estructuras de datos. Control de datos

Apuntes de Programación y estructuras de datos. Control de datos Apuntes de Programación y estructuras de datos. Control de datos Nikos Mylonakis, Fernando Orejas y Ana Cristina Zoltan nicos@lsi.upc.edu Dept. Llenguatges i Sistemes Informátics Universitat Politécnica

Más detalles

Manejo de Clases y Objetos. Manejo de Clases y Objetos

Manejo 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 detalles

6. Herencia. Clases abstractas. Genericidad. Clase Object Polimorfismo y ligadura dinámica super Herencia y creación Clases abstractas Genericidad

6. Herencia. Clases abstractas. Genericidad. Clase Object Polimorfismo y ligadura dinámica super Herencia y creación Clases abstractas Genericidad 6. Herencia. Clases abstractas. Genericidad Clase Object Polimorfismo y ligadura dinámica super Herencia y creación Clases abstractas Genericidad 1 Herencia en Java Herencia simple Object es la clase raíz

Más detalles

Herencia. Proceso mediante el cual una clase adquiere las propiedades (atributos) y comportamiento (métodos) de otra.

Herencia. Proceso mediante el cual una clase adquiere las propiedades (atributos) y comportamiento (métodos) de otra. Programación Orientada a Objetos Herencia Ing. Julio Ernesto Carreño Vargas MsC. Herencia Proceso mediante el cual una clase adquiere las propiedades (atributos) y comportamiento (métodos) de otra. Programación

Más detalles

INTRODUCCIÓN A LA PROGRAMACIÓN

INTRODUCCIÓN A LA PROGRAMACIÓN INTRODUCCIÓN A LA PROGRAMACIÓN ANEXO 2 El paradigma orientado a objetos INTRODUCCIÓN 1) Programación orientada a objetos (P.O.O.) Un proyecto de software es complejo. Las GUI 1, acceso transparente a datos

Más detalles

Introducción a Java. Fernando Cerezal López. 24 Noviembre 2005

Introducció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 detalles

Reutilización con Delegación y Herencia

Reutilizació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 detalles

Tema: Funciones Virtuales y Polimorfismo.

Tema: 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 detalles

Tema: Funciones Virtuales y Polimorfismo.

Tema: 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 detalles

Tema 3: Herencia en Java. Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle

Tema 3: Herencia en Java. Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle Tema 3: Herencia en Java Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle Índice Introducción Herencia y Ocultamiento de la Información Redefinición de características Herencia y creación

Más detalles

HERENCIA Y TIPOS. Articulo. Video Audio Altavoces. Amplificador

HERENCIA Y TIPOS. Articulo. Video Audio Altavoces. Amplificador HERENCIA Y TIPOS. Las clases con propiedades y funciones comunes se agrupan en una superclase. Las clases que se derivan de una superclase son las subclases. Las clases se organizan como jerarquía de clases.

Más detalles

Programación. Orientada a Objetos. Prof. Angela Di Serio. Universidad Simón Bolívar Especialización en Telemática

Programación. Orientada a Objetos. Prof. Angela Di Serio. Universidad Simón Bolívar Especialización en Telemática Programación Orientada a Objetos Prof. Angela Di Serio Universidad Simón Bolívar Especialización en Telemática Agenda Clase 2 Qué es Orientado a Objetos? Conceptos: objeto, clase, instancias, mensajes

Más detalles

Objeto Clase Atributo / Método Encapsulamiento Mensaje Herencia Polimorfismo Encadenamiento Dinámico

Objeto Clase Atributo / Método Encapsulamiento Mensaje Herencia Polimorfismo Encadenamiento Dinámico Conceptos Objeto Clase Atributo / Método Encapsulamiento Mensaje Herencia Polimorfismo Encadenamiento Dinámico Objeto Representa una instancia de un elemento del mundo del problema Es cualquier elemento

Más detalles

FACULTAD DE INGENIERÍA

FACULTAD 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 detalles

Introducció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 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 detalles

Tecnología de Programación DCIC UNS

Tecnología de Programación DCIC UNS UML Diagramas de clases El diagrama de clases es un diagrama de la estructura estática del sistema. Un diagrama de clases describe los tipos de objetos en el sistema y las dependencias estáticas que existen

Más detalles

Programación Orientada a Objetos en C++

Programación Orientada a Objetos en C++ Unidad I Programación Orientada a Objetos en C++ Programación Orientada a Objetos en C++ Programación I - 0416202 Contenido Esta lección abarca los siguientes temas: Estructura y declaración de una clase

Más detalles

Tema 3: Herencia en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle

Tema 3: Herencia en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle Tema 3: Herencia en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle Contenido Tipos de herencia Herencia y niveles de visibilidad Herencia y creación Redefinición de métodos Conversión

Más detalles

PARTE TEÓRICA - TEST [2,5 PUNTOS]:

PARTE TEÓRICA - TEST [2,5 PUNTOS]: UNIVERSIDAD NACIONAL DE EDUCACIÓN A DISTANCIA ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA 71901072 PROGRAMACIÓN ORIENTADA A OBJETOS (GRADO EN INGENIERÍA INFORMÁTICA / TECNOLOGÍAS DE LA INFORMACIÓN)

Más detalles

Parte I: Programación en un lenguaje orientado a objetos

Parte I: Programación en un lenguaje orientado a objetos Parte I: Programación en un lenguaje orientado a objetos 1. Introducción a los lenguajes de programación 2. Datos y expresiones 3. Estructuras algorítmicas 4. Datos compuestos 5. Modularidad 6. Tratamiento

Más detalles

PROGRAMACIÓN ORIENTADA A OBJETOS 10/02/2009. Examen de Java. Nombre: DNI: Titulación:

PROGRAMACIÓ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 detalles

NETBEANS JAVA PROGRAMACIÓN ORIENTADA A OBJETOS

NETBEANS 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 detalles

Tema: Herencia en C#.

Tema: Herencia en C#. Programación II. Guía No. 8 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Herencia en C#. Objetivos Crear clases a través de la herencia de clases existentes. Describir

Más detalles

Qué 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 + +.

Qué 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 detalles

Tema 5. Programación Orientada a Objetos en C++ Programación Orientada a Objetos Curso 2010/2011

Tema 5. Programación Orientada a Objetos en C++ Programación Orientada a Objetos Curso 2010/2011 Tema 5 Programación Orientada a Objetos en C++ Programación Orientada a Objetos Curso 2010/2011 Contenido Introducción Clases y objetos Herencia Herencia múltiple Genericidad Colecciones Definición de

Más detalles

Tema: Herencia en C#.

Tema: Herencia en C#. POO. Guía No. 8 1 Tema: Herencia en C#. Facultad: Ingeniería Escuela: Computación Asignatura: Programación Orientada a Objetos Materiales y Equipo Computadora con Visual Studio /Visual C#. Guía Número

Más detalles

Unidad Didáctica 1. Introducción a la Programación Orientada a Objetos (POO) Conceptos de clase, objeto e interfaz. Atributos y métodos

Unidad Didáctica 1. Introducción a la Programación Orientada a Objetos (POO) Conceptos de clase, objeto e interfaz. Atributos y métodos Unidad Didáctica 1 Introducción a la Programación Orientada a Objetos (POO) Conceptos de clase, objeto e interfaz. Atributos y métodos Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos

Más detalles

Cómo se estructura un programa en C#? Qué son las clases y los objetos? Cómo se estructuran los dibujos de AutoCAD?

Cómo se estructura un programa en C#? Qué son las clases y los objetos? Cómo se estructuran los dibujos de AutoCAD? Cómo se estructura un programa en C#? Qué son las clases y los objetos? Cómo se estructuran los dibujos de AutoCAD? 1 2.1. CONCEPTOS FUNDAMENTALES DE C# 2.1.1. FUNCIONES: PÁSO DE PARÁMETROS 2.1.2. CLASES

Más detalles

Programación Orientada a Objetos. Herencia. (2ª parte)

Programación Orientada a Objetos. Herencia. (2ª parte) Programación Orientada a Objetos TEMA 3 Herencia (2ª parte) Facultad de Informática Universidad de Murcia Índice 1.- Introducción 2.- Adaptaciones del lenguaje: - Redefinición vs. Renombramiento - Cambios

Más detalles