Capítulo 10. Subtipos y Herencia.

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

Download "Capítulo 10. Subtipos y Herencia."

Transcripción

1 Capítulo 10. Subtipos y Herencia. Lenguajes de Programación Carlos Ureña Almagro Dpt. Lenguajes y Sistemas Informáticos ETSI Informática y de Telecomunicación Universidad de Granada Curso Autor: Carlos Ureña. Fecha creación: January 28, Página: 1/1.

2 Índice del capítulo Capítulo 10. Subtipos y Herencia. 1. Subtipos 2. Herencia 3. Herencia y Restricciones de acceso 4. Redefinición de métodos y polimorfismo 5. Herencia múltiple 6. Clases abstractas e interfaces Autor: Carlos Ureña. Fecha creación: January 28, Página: 2/1.

3 Subtipos Indice de la sección Sección 1 Subtipos 1.1. Subtipos en Ada Autor: Carlos Ureña. Fecha creación: January 28, Página: 3/77.

4 Subtipos Subtipos Dados dos tipos A y B, se dirá que el tipo B es un subtipo de A (o, equivalentemente, que A es el supertipo de B) si: El conjunto de valores o estados de B está incluido en el de A (considerados como conjuntos, se cumple A B). Todas las operaciones definidas para A también lo están para B Lo contrario no es necesariamente cierto: el tipo B puede tener definidas operaciones adicionales, no definidas para A. Autor: Carlos Ureña. Fecha creación: January 28, Página: 4/77.

5 Subtipos Beneficios de los subtipos Los mecanismos de subtipos sirven para definir un tipos nuevos usando otros tipos existentes como base, pero añadiendo nuevas propiedades u operaciones adicionales. El mecanismo de subtipos facilita: La legibilidad del código: permite asignar nombres descriptivos a tipos, y especificar las propiedades en la declaración La fiabilidad: permite insertar comprobaciones en tiempo de ejecución para comprobar que se cumplen las propiedades establecidas Autor: Carlos Ureña. Fecha creación: January 28, Página: 5/77.

6 Subtipos Subtipos Supongamos que B es un subtipo de A Si existe una operación f definida para A, entonces decimos que B hereda esa operación f Todo valor de tipo B puede ser reinterpretado como un valor de tipo A, luego existe una conversión impĺıcita desde B hacia A, usable en asignaciones de la forma a := b donde a es un acceso a una variable de tipo A y b una expresión de tipo B La asignaciones contrarias (b := a) necesitan una comprobación en tiempo de ejecución, o estan prohibidas, o suponen perdida de información. Autor: Carlos Ureña. Fecha creación: January 28, Página: 6/77.

7 Subtipos Subtipos en diferentes lenguajes Diferentes lenguajes incorporan, expĺıcita o implicitamente, mecanismos basados en el concepto de subtipos. En Pascal existen algunas construcciones En ADA se desarrolla bastante Apenas está presente en C, C++, Java y C# (en estos lenguajes se puede usar herencia) Adicionalmente, podemos interpretar la herencia como un mecanismo basado en el concepto de subtipo Autor: Carlos Ureña. Fecha creación: January 28, Página: 7/77.

8 Subtipos Subtipos en Pascal En Pascal, se pueden definir subtipos para los enteros: 1 type Byte = ; 2 DiaSemana = ; 3 NumMes = ; Autor: Carlos Ureña. Fecha creación: January 28, Página: 8/77.

9 Subtipos Subtipos en Ada Mecanismos En ADA se desarrollan bastante los mecanismos para subtipos. En concreto se pueden definir subtipos de: Tipos primitivos (definiendo un sub-rango de valores) Arrays dinámicos (fijando el rango de los índices) Tipos registro con un campo discriminante (fijando el valor del campo discriminante) Autor: Carlos Ureña. Fecha creación: January 28, Página: 9/77.

10 Subtipos Subtipos en Ada Subtipos de tipos primitivos en Ada En el caso de tipos primitivos, la sintaxis está inspirada en Pascal: subtype id-subtipo is id-tipo range e 1.. e 2 ; Aquí, e 1 y e 2 son dos valores (dos constante) de tipo id-tipo La construcción es una declaración que crea un tipo nuevo, de nombre id-subtipo. Esta declaración genera conversiones impĺıcitas entre el tipo original y los subtipos. Autor: Carlos Ureña. Fecha creación: January 28, Página: 10/77.

11 Subtipos Subtipos en Ada Ejemplos de subtipos en ADA Subtipos de enteros: 1 subtype N a t u r a l e s i s I n t e g e r range 0.. I n t e g e r l a s t 2 subtype NumeroMes i s I n t e g e r range ; 3 subtype ByteSig i s I n t e g e r range ; Subtipos de flotantes 1 subtype P r o b a b i l i d a d i s I n t e g e r range ; Subtipos de caracteres 1 subtype M i n u s c u l a s i s C h a r a c t e r range a.. z ; Autor: Carlos Ureña. Fecha creación: January 28, Página: 11/77.

12 Subtipos Subtipos en Ada Ejemplo de conversiones 1 Procedure PruSub0 i s 2 3 s u b t y pe N a t u r a l e s i s Integer range 0.. Integer l a s t 4 i n t : I n t e g e r := 2 ; 5 nat : N a t u r a l e s := 1 ; 6 7 b e g i n 8 i n t := nat ; ok, siempre, s i n comprobación 9 nat := i n t ; ok, t r a s comprobación en t. e. 10 i n t := 2 ; ok 11 nat := i n t ; l a n z a CONSTRAINT ERROR en e j e c. 12 ( t r a d u c t o r p o d r i a e m i t i r a d v e r t e n c i a ) 13 nat := 2 ; l a n z a CONSTRAINT ERROR en e j e c. 14 t r a d u c t o r emite a d v e r t e n c i a 15 end ; Autor: Carlos Ureña. Fecha creación: January 28, Página: 12/77.

13 Subtipos Subtipos en Ada Subtipos de arrays en Ada Otra posibilidad son los subtipos de arrays dinámicos 1 type Cadena i s array ( I n t e g e r range <>) 2 of C h a r a c t e r ; 3 4 subtype Cadena10 i s Cadena ( ) ; 5 subtype Cadena50 i s Cadena ( ) ; 6 subtype CadC10 i s Cadena ( ) ; Autor: Carlos Ureña. Fecha creación: January 28, Página: 13/77.

14 Subtipos Subtipos en Ada Subtipos de arrays en Ada Los valores de índice al acceder a un array se comprueban en tiempo de ejecución Los ĺımites concretos de los rangos de índices de los subtipos array pueden ser expresiones arbitrarias (evaluables en tiempo de ejecución), no necesariamente constantes. Lo anterior es posible porque en ADA el rango de índices de un array se incluye en su representación. Autor: Carlos Ureña. Fecha creación: January 28, Página: 14/77.

15 Subtipos Subtipos en Ada Ejemplo de uso de subtipos de arrays en Ada 1 Procedure PruSub i s 2 3 type ArrayDin i s 4 array ( I n t e g e r range <> ) of I n t e g e r ; 5 6 Procedure Test ( n : I n t e g e r ) i s 7 subtype A r r a y n i s ArrayDin ( 1.. n ) ; 8 a : A r r a y n ; tamaño dep. de n 9 begin 10 a ( n ) := 0 ; 11 end ; begin 14 Test ( 1 0 ) ; Test ( ) ; 15 end ; Autor: Carlos Ureña. Fecha creación: January 28, Página: 15/77.

16 Subtipos Subtipos en Ada Subtipos de arrays en Ada Las referencias al tipo son compatibles con las de los subtipos: type PCadena i s access Cadena ; 3 4 s 0 : PCadena ; 5 s 1 : PCadena := new Cadena10 ; 6 s 2 : PCadena := new Cadena50 ; 7 8 begin 9 s0 := s1 ; s1 (49) := a ; e r r o r en t. e. 10 s1 := s2 ; s1 (49) := a ; ok 11 s2 := s0 ; 12 end ; Autor: Carlos Ureña. Fecha creación: January 28, Página: 16/77.

17 Subtipos Subtipos en Ada Subtipos de registros en ADA (falta) Autor: Carlos Ureña. Fecha creación: January 28, Página: 17/77.

18 Herencia Indice de la sección Sección 2 Herencia 2.1. Herencia en ADA Autor: Carlos Ureña. Fecha creación: January 28, Página: 18/77.

19 Herencia Herencia La herencia es un mecanismo asociado a las clases, presente en lenguajes orientados a objetos La herencia permite que una clase sea una subtipo (subclase, o clase derivada) de otra clase (su superclase, o clase base) La subclase tiene las mismas variables de instancia y los mismos métodos que su superclase. La subclase puede añadir variables de instancia y métodos adicionales (se dice que extiende a la clase base). En la subclase se pueden redefinir métodos de la superclase (en algunos lenguajes se pueden incluso eliminar métodos de la base, no es común). Autor: Carlos Ureña. Fecha creación: January 28, Página: 19/77.

20 Herencia Beneficios de la herencia Permite reusar el código de la clase base, adaptándolo mediante subclases, y evitando duplicidades, por tanto: Permite reusabilidad Facilita el trabajo en equipo y la creación de librerías Permitir simplificar los programas Facilita el análisis y diseño Autor: Carlos Ureña. Fecha creación: January 28, Página: 20/77.

21 Herencia Representación de clases derivadas La representación de la clase derivada se hace concatenando tres partes: Un parte inicial con información de tipos en tiempo de ejecución Un bloque de memoria con la representación de las variables de instancia específicas de la clase base. Un bloque de memoria con la representación de las variables de instancia específicas de la clase derivada. Autor: Carlos Ureña. Fecha creación: January 28, Página: 21/77.

22 Herencia Ejemplo de herencia en C++ 1 c l a s s Base 2 { i n t i ; 3 p u b l i c : i n t LeeEnt ( ) ; 4 } ; 5 6 c l a s s Derivada : p u b l i c Base 7 { f l o a t x ; 8 p u b l i c : f l o a t L e e F l o t ( ) ; 9 } ; Autor: Carlos Ureña. Fecha creación: January 28, Página: 22/77.

23 Herencia Ejemplo de herencia en Java 1 c l a s s Base 2 { p r i v a t e i n t i ; 3 p u b l i c i n t LeeEnt ( ) { return i ; } ; 4 } ; 5 6 c l a s s Derivada extends Base 7 { p r i v a t e f l o a t x ; 8 p u b l i c f l o a t L e e F l o t ( ) { return x ; } ; 9 } ; Autor: Carlos Ureña. Fecha creación: January 28, Página: 23/77.

24 Herencia Conversiones entre superclase y subclase En los lenguajes en que las clases pueden ser tipos-valor: Cualquier instancia de la clase derivada puede convertirse en una instancia de la clase base (hay una conversión impĺıcita, que se denomina ascendente, y supone descartar la parte específica de la derivada). No es posible convertir una instancia de la clase base en una instancia de la clase derivada (faltarían las variables de instancia específicas de la derivada). El esquema es percido al caso de subtipos y supertipos (aunque la conv. descendente no esta nunca permitida) Autor: Carlos Ureña. Fecha creación: January 28, Página: 24/77.

25 Herencia Conversiones entre superclase y subclase (Ejemplo en C++) 1 Base a ; 2 Derivada b ; 3 4 i n t i = b. LeeEnt ( ) ; 5 // ok ( método d i s p o n i b l e en Deriavada ) 6 7 a = b ; // ok ( a s c e n d e n t e ) 8 b = a ; // e r r o r ( d e s c e n d e n t e ) Autor: Carlos Ureña. Fecha creación: January 28, Página: 25/77.

26 Herencia Conversiones de referencias entre superclase y subclase En los lenguajes en que las clases pueden ser tipos-referencia, o puede haber referencias o punteros a instancias. Supongamos que B es subclase de A Cualquier referencia a B puede convertirse a (o reinterpretarse como) una referencia a A (la conv. es ascendente) Las conversiones contrarias se pueden llevar a cabo, pero solo si se efectua una comprobación en tiempo de ejecución que comprueba que la instancia referenciada es efectivamente del tipo destino (B). Autor: Carlos Ureña. Fecha creación: January 28, Página: 26/77.

27 Herencia Conversiones descendentes en Java y C++ Las conversiones descendentes de referencias o punteros son posibles si se efectuan con una conversión expĺıcita que genera la necesaria comprobación en t.e. En C++, se usan funciones especiales (dynamic\_cast<b *>) pero solo para clases bases con métodos virtuales En Java, se usa conversión expĺıcita (en la forma: (B)) Estas conversiones se verán más adelante, asociadas a los mecanismos de polimorfismo. Autor: Carlos Ureña. Fecha creación: January 28, Página: 27/77.

28 Herencia Conversiones de refs. entre superclase y subclase en C++ Ejemplo en C++ 1 Base pa = &a ; 2 Derivada pb = &b ; 3 4 pa = pb ; // ok ( asc. ) 5 pb = pa ; // e r r o r ( desc. ) Autor: Carlos Ureña. Fecha creación: January 28, Página: 28/77.

29 Herencia Conversiones de referencias entre superclase y subclase en Java Ejemplo en Java 1 Base a = new Base ( ) ; 2 Derivada b = new Derivada ( ) ; 3 4 i n t i = b. LeeEnt ( ) ; 5 6 a = b ; 7 b = a ; // e r r o r Autor: Carlos Ureña. Fecha creación: January 28, Página: 29/77.

30 Herencia Herencia en ADA El lenguaje ADA no fue diseñado espcíficamente como orientado a objetos En la revisión de 1995 (ADA 95), se incluye la posibilidad de: extender tipos registro redefinir subprogramas en tipos derivados definir referencias polimórficas El resultado es que se permite herencia y polimorfismo de herencia, aunque las construcciones son más complicadas que en lenguajes genuinamente OO, como Java. Autor: Carlos Ureña. Fecha creación: January 28, Página: 30/77.

31 Herencia Herencia en ADA Ejemplo de herencia como extensión de registros en ADA 1 type Base i s tagged record 2 i : I n t e g e r ; 3 end record ; 4 5 type Derivada i s new Base with record 6 x : F l o a t ; 7 end record ; Autor: Carlos Ureña. Fecha creación: January 28, Página: 31/77.

32 Herencia Herencia en ADA Conversion entre tipos registros en ADA En ADA, existe la conversión ascendente, aunque no implicitamente. 1 type Base i s a : Base := ( i =>1); 4 b : Derivada := ( a with x = >4.5); 5 6 begin 7 a := b ; e r r o r ( conv. asc. impl. ) 8 a := Base ( b ) ; ok ( conv. asc. e x p l. ) 9 b := Derivada ( a ) ; e r r o r ( desc. ) 10 end ; Autor: Carlos Ureña. Fecha creación: January 28, Página: 32/77.

33 Herencia Herencia en ADA Conversion de referencias en ADA En el caso de referencias, están permitidas las ascendentes, aunque de nuevo es necesario hacer una llamada expĺıcita. 1 a : a l i a s e d Base := ( i =>1); 2 b : a l i a s e d Derivada := ( a with x = >4.5); 3 4 type PBase i s access a l l Base ; 5 type P d e r i v a d a i s access a l l Derivada ; 6 7 pa : PBase := a access ; 8 pb : PDerivada := b access ; 9 10 begin 11 pa := pb ; e r r o r 12 pa := PBase ( pb ) ; ok 13 end ; Autor: Carlos Ureña. Fecha creación: January 28, Página: 33/77.

34 Herencia Herencia en ADA Operaciones primitivos de un tipo en Ada La herencia de los subprogramas se puede hacer directamente (sin conversiones) mediante el mecanismo de las operaciones primitvas Este mecanismo permite que un tipo tenga asociados subprogramas que están directamente disponibles para los subtipos del tipo El tipo mas los subprogramas asociado a el forma una clase, aunque este concepto no aparece explicitamente en Ada Autor: Carlos Ureña. Fecha creación: January 28, Página: 34/77.

35 Herencia Herencia en ADA Operaciones primitivos de un tipo en Ada Un subprograma p es una operación primitiva de un tipo T si y solo si: T es un tipo registro etiquetado con tagged p es un subprograma que acepta un parámetro de tipo T o access T, (o devuelve un T o access T). T y después p se declaran en un mismo package Entre la declaración de T y la de p no hay ninguna de ningún otro tipo de datos. Autor: Carlos Ureña. Fecha creación: January 28, Página: 35/77.

36 Herencia Herencia en ADA Herencia de operaciones primitivas en Ada Aquí, PrimBaseV y PrimBaseR son operaciones primitvas de la clase Base. 1 package PH i s 2 type Base i s tagged 3 record i : I n t e g e r ; end record ; 4 5 procedure PrimBaseV ( p : Base ) ; 6 procedure PrimBaseR ( p : access Base ) ; 7 8 type Derivada i s new Base with 9 record x : F l o a t ; end record ; 10 end PH ; Autor: Carlos Ureña. Fecha creación: January 28, Página: 36/77.

37 Herencia Herencia en ADA Herencia de operaciones primitivas en Ada Las operaciones primitvas de la base son heredadas por la derivada: 1 use PH ; 2 3 a : a l i a s e d Base := ( i =>1); 4 b : a l i a s e d Derivada := ( a with x = >4.5); 5 6 r a : access Base := a access ; 7 rb : access Derivada := b access ; 8 begin 9 PrimBaseV ( a ) ; PrimBaseR ( r a ) ; 10 PrimBaseV ( b ) ; PrimBaseR ( rb ) ; 11 end ; Autor: Carlos Ureña. Fecha creación: January 28, Página: 37/77.

38 Herencia y Restricciones de acceso Indice de la sección Sección 3 Herencia y Restricciones de acceso Autor: Carlos Ureña. Fecha creación: January 28, Página: 38/77.

39 Herencia y Restricciones de acceso Herencia y Restricciones de acceso En una clase es posible definir variables o metodos de instancia publicas (accesibles desde cualquier otro trozo de codigo), o privadas (no accesibles desde fuera de la clase). Algunos lenguajes (C++ y Java entre ellos) permiten definir un nuevo tipo de variables o metodos de instancia, denominados protegidos (protected), que son visibles desde las clases derivadas de su clase, pero no desde otras. Un cambio en una componente protegida solo puede afectar a las clases derivadas, no a otras. Autor: Carlos Ureña. Fecha creación: January 28, Página: 39/77.

40 Herencia y Restricciones de acceso Ejemplos de componentes protegidos en C++ En esta clase se declara una variable de instancia protegida: 1 c l a s s Base 2 { 3 p r i v a t e : i n t p r i v ; 4 protected : i n t p r o t ; 5 p u b l i c : i n t publ ; 6 } ; Autor: Carlos Ureña. Fecha creación: January 28, Página: 40/77.

41 Herencia y Restricciones de acceso Ejemplos de componentes protegidos en C++ Es en todo igual que las privadas, en concreto no se puede acceder desde fuera de la clase 1 c l a s s Base i n t main ( i n t argc, char argv [ ] ) 4 { 5 Base a ; 6 7 a. p r i v = 1 ; // e r r o r 8 a. p r o t = 1 ; // e r r o r 9 a. publ = 1 ; // ok 10 } Autor: Carlos Ureña. Fecha creación: January 28, Página: 41/77.

42 Herencia y Restricciones de acceso Ejemplos de componentes protegidos en C++ El componente protegido puede ser accedido desde las clases derivadas 1 c l a s s Base c l a s s Derivada : p u b l i c Base 4 { 5 void f ( ) 6 { 7 p r i v = 1 ; // e r r o r 8 p r o t = 1 ; // ok 9 publ = 1 ; // ok 10 } 11 } ; Autor: Carlos Ureña. Fecha creación: January 28, Página: 42/77.

43 Herencia y Restricciones de acceso Herencia y restricciones en Java En el lenguaje Java se puede controlar el acceso, ademas, en el package, donde la clase esta definida. public accesible desde: clase, package, subclase, otros protected accesible desde: clase, package, subclase si no se especifica nada, acesible desde: clase, package private accesible desde: clase Autor: Carlos Ureña. Fecha creación: January 28, Página: 43/77.

44 Herencia y Restricciones de acceso Superclases privadas en C++ Es posible que un codigo acceda a un componente de una clase a traves de una subclase, como por ejemplo aqui 1 c l a s s Base.. 2 c l a s s Derivada : p u b l i c Base { } ; 3 4 i n t main ( i n t argc, char argv [ ] ) 5 { 6 Derivada b ; 7 b. publ = 1 ; // b r e i n t e r p r e t a d o como i n s t. de 8 } Autor: Carlos Ureña. Fecha creación: January 28, Página: 44/77.

45 Herencia y Restricciones de acceso Superclases privadas en C++ Lo anterior implica que una clase no puede esconder el hecho de que es derivada de su clase base. Por tanto, se pueden establecer dependencias con la clase base. Esto seria un problema si la clase esta diseñada para ser usada de forma aislada, no como subclase, y se quiere evitar que los usuarios sepan que es subclase. El lenguaje C++ incorpora un mecanismo que permite evitar establecer dependencias con la superclase de una clase. Autor: Carlos Ureña. Fecha creación: January 28, Página: 45/77.

46 Herencia y Restricciones de acceso Ejemplo de superclase privada en C++ 1 c l a s s Base... 2 c l a s s Derivada : p u b l i c Base { } ; 3 c l a s s Derivada2 : p r i v a t e Base { } ; 4 5 i n t main ( i n t argc, char argv [ ] ) 6 { 7 Derivada b ; 8 b. publ = 1 ; // ok 9 10 Derivada2 b2 ; 11 b2. publ = 1 ; // e r r o r 12 } Autor: Carlos Ureña. Fecha creación: January 28, Página: 46/77.

47 Herencia y Restricciones de acceso Superclases protegidas en C++ En el ejemplo anterior ni siquiera las clases derivadas de Derivada2 pueden acceder a la clase Base Una tercera posibilidad en C++ es una superclase protegida. 1 c l a s s Base... 2 c l a s s Derivada3 : protected Base {... } ; En este caso, la superclase Base es accesible (via Derivada3) solo para las clases derivadas de Derivada3 Este protected se puede omitir (es la opc. por def.) Autor: Carlos Ureña. Fecha creación: January 28, Página: 47/77.

48 Redefinición de métodos y polimorfismo Indice de la sección Sección 4 Redefinición de métodos y polimorfismo 4.1. Polimorfismo de herencia en C Polimorfismo de Herencia en Ada 4.3. Polimorfismo de herencia en Java y C# Autor: Carlos Ureña. Fecha creación: January 28, Página: 48/77.

49 Redefinición de métodos y polimorfismo Redefinición de métodos en subclases En principio, nada impide que dos métodos distintos, con el mismo nombre, estén declarados uno en una clase y otro en su superclase (es un ejemplo de sobrecarga). En lenguajes con comprobación estricta de tipos, cualquier llamada al método que aparezca en un programa se hace para una instancia cuya clase se conoce en tiempo de compilación, y por tanto el traductor emite la llamada adecuada a cada caso. Autor: Carlos Ureña. Fecha creación: January 28, Página: 49/77.

50 Redefinición de métodos y polimorfismo Redefinición de métodos en subclases Sin embargo, cuando una referencia a una instancia de la subclase se reinterpreta como una referencia a una instancia a la superclase, entonces la llamada al método via esa referencia se puede redirigir al método de la subclase, no de la superclase. A estas referencias se les llama referencias polimórficas. Lo anterior es posible por la inclusión de información de tipos en tiempo de ejecución (cada instancia alberga una referencia a una tabla donde se referencian las implementaciones de dicha instancia para cada nombre de método redefinible). Autor: Carlos Ureña. Fecha creación: January 28, Página: 50/77.

51 Redefinición de métodos y polimorfismo Redefinición de métodos en subclases (beneficios) El mecanismo se denomina polimorfismo de herencia La ventaja es que se puede llamar a un método de manera uniforme usando referencias (polimórficas) a la superclase, aun cuando cada referencia apunte a instancias de subclases distintas con comportamientos distintos asociados al nombre común del método. Autor: Carlos Ureña. Fecha creación: January 28, Página: 51/77.

52 Redefinición de métodos y polimorfismo Polimorfismo de herencia En C++ solo funciona con métodos etiquetados con virtual en la superclase, y para cualquier referencia o puntero. En Java funciona para cualquier método, y cualquier referencia. En ADA 95, para registros tagged, subprogramas miembro del registro e instancias o referencias declaradas con class Autor: Carlos Ureña. Fecha creación: January 28, Página: 52/77.

53 Redefinición de métodos y polimorfismo Polimorfismo de herencia en C++ Ejemplo de polimorfismo de herencia en C++ En este ejemplo, la clase B (subclase de A) redefine el método virtual f2, aunque no el método normal f1 1 c l a s s A 2 { p u b l i c : 3 v i r t u a l void f 1 ( ) 4 { cout << A : : f 1 << e n d l ; } 5 void f 2 ( ) 6 { cout << A : : f 2 << e n d l ; } 7 } ; Autor: Carlos Ureña. Fecha creación: January 28, Página: 53/77.

54 Redefinición de métodos y polimorfismo Polimorfismo de herencia en C++ Ejemplo de polimorfismo de herencia en C++ Aquí aparece una posible definición de la clase B 1 c l a s s B : p u b l i c A 2 { 3 p u b l i c : 4 void f 1 ( ) 5 { cout << B : : f 1 << e n d l ; } 6 void f 2 ( ) 7 { cout << B : : f 2 << e n d l ; } 8 } ; (no es necesario etiquetar como virtual el método f2 en la subclase B, a no ser que se quiera después redefinir en subclases de B) Autor: Carlos Ureña. Fecha creación: January 28, Página: 54/77.

55 Redefinición de métodos y polimorfismo Polimorfismo de herencia en C++ Ejemplo de polimorfismo de herencia en C++ Cualquier uso que se haga de la clases A y B a través de variables (o punteros o referencias) no polimórficas tiene el comportamiento esperado: 1 A a ; A pa = new A( ) ; 2 A & r a = a ; 3 4 a. f 1 ( ) ; // A : : f 1 5 pa >f 1 ( ) ; // A : : f 1 6 r a. f 1 ( ) ; // A : : f a. f 2 ( ) ; // A : : f 2 9 pa >f 2 ( ) ; // A : : f 2 10 r a. f 2 ( ) ; // A : : f 2 Autor: Carlos Ureña. Fecha creación: January 28, Página: 55/77.

56 Redefinición de métodos y polimorfismo Polimorfismo de herencia en C++ Ejemplo de polimorfismo de herencia en C++ Cualquier uso que se haga de la clases A y B a través de variables (o punteros o referencias) no polimórficas tiene el comportamiento esperado: 1 B b ; B pb = new B( ) ; 2 B & rb = b ; 3 4 b. f 1 ( ) ; // B : : f 1 5 pb >f 1 ( ) ; // B : : f 1 6 rb. f 1 ( ) ; // B : : f b. f 2 ( ) ; // B : : f 2 9 pb >f 2 ( ) ; // B : : f 2 10 rb. f 2 ( ) ; // B : : f 1 Autor: Carlos Ureña. Fecha creación: January 28, Página: 56/77.

57 Redefinición de métodos y polimorfismo Polimorfismo de herencia en C++ Ejemplo de polimorfismo de herencia en C++ En C++, una referencia polimórfica es un puntero C++ (o una referencia C++), declarada como A * o A &, que referencia a (o apunta a) un objeto de tipo B. Las llamadas a los métodos virtuales redefinidos se redirigen a la version correspondiente al objeto al que se referencia: Autor: Carlos Ureña. Fecha creación: January 28, Página: 57/77.

58 Redefinición de métodos y polimorfismo Polimorfismo de herencia en C++ Ejemplo de polimorfismo de herencia en C++ 1 A ab = b ; A pab = new B( ) ; 2 A & rab = b ; 3 4 ab. f 1 ( ) ; // A : : f 1 ( ab es un A ) 5 pab >f 1 ( ) ; // B : : f 1 ( pab apunt a un B) 6 rab. f 1 ( ) ; // B : : f 1 ( rab r e f. a un B) 7 8 ab. f 2 ( ) ; // A : : f 2 ( ab es un A) 9 pab >f 2 ( ) ; // A : : f 2 ( f 2 no v i r t u a l ) 10 rab. f 2 ( ) ; // A : : f 2 ( f 2 no v i r t u a l ) Autor: Carlos Ureña. Fecha creación: January 28, Página: 58/77.

59 Redefinición de métodos y polimorfismo Polimorfismo de Herencia en Ada Polimorfismo de Herencia en Ada A partir de Ada 95 (1995), se permite polimorfismo de herencia en Ada, asociado al mecanismo de extensión de tipos registro. Las referencias polimórficas deben etiquetarse expĺıcitamente como tales. Puede haber variables polimórficas, si se indica expĺıcitamente que lo son. Toda operación primitiva de un tipo tagged puede ser redefinida en subtipos del tipo, no es necesario indicarlo expĺıcitamente. A la redirección de las llamadas se le llama dispatching en Ada Autor: Carlos Ureña. Fecha creación: January 28, Página: 59/77.

60 Redefinición de métodos y polimorfismo Polimorfismo de Herencia en Ada Tipos class-wide en Ada Si T es un tipo registro tagged, entonces T class designa al tipo unión disjunta de T y todos sus subtipos o subclases. Si B es subtipo de A, entonces B class es subtipo de A class. Si B es A o un subtipo de A, entonces B es subtipo de A class. A estos tipos se les denomina class-wide en terminología de Ada Autor: Carlos Ureña. Fecha creación: January 28, Página: 60/77.

61 Redefinición de métodos y polimorfismo Polimorfismo de Herencia en Ada Referencias class-wide en Ada Es posible definir referencias a tipos class-wide en Ada, usando la construcción access T class para un tipo tagged cualquiera T Estas referencias son las referencias polimórficas de Ada En t.e., una referencia polimórfica declarada así puede referenciar cualquier objeto de tipo T o cualquiera de las clases derivadas de el. access T class designa un tipo anónimo, el mismo en todas las declaraciones Autor: Carlos Ureña. Fecha creación: January 28, Página: 61/77.

62 Redefinición de métodos y polimorfismo Polimorfismo de Herencia en Ada Conversiones entre referencias polimórficas en Ada Las ascendentes siempre son correctas (sin necesidad de indicar conversión expĺıcita) ya la referencia es polimórfica por definición y su tipo no cambia. Las descendentes (con llamada expĺıcita al operador de conversión) se permiten, aunque se genera una comprobación en tiempo de ejecución, ya que pueden funcionar para algunos objetos y otros no. Las descendentes impĺıcitas no se permiten, generan error en t.c. Autor: Carlos Ureña. Fecha creación: January 28, Página: 62/77.

63 Redefinición de métodos y polimorfismo Polimorfismo de Herencia en Ada Variables y parámetros polimórficos en Ada Es posible declarar variables polimórficas de tipo T class, aunque deben inicializarse con un objeto de un tipo concreto, y ese tipo no puede variar durante el tiempo de vida de la variable. Los subprogramas pueden tener parámetros formales de tipo T class o access T class. Estos subprogramas no constituyen operaciones primitvas del tipo (ya que aceptan parametros actuales de cualquier subtipo, además del tipo) Autor: Carlos Ureña. Fecha creación: January 28, Página: 63/77.

64 Redefinición de métodos y polimorfismo Polimorfismo de Herencia en Ada Redefinición de operaciones primitivas en subtipos Aquí, el subprograma P está redefinido en la clase derivada 1 package PH i s 2 3 type Base i s tagged 4 record i : I n t e g e r ; end record ; 5 6 procedure P( o : access Base ) ; 7 8 type Derivada i s new Base with 9 record x : F l o a t ; end record ; procedure P( o : access Derivada ) ; end PH ; Autor: Carlos Ureña. Fecha creación: January 28, Página: 64/77.

65 Redefinición de métodos y polimorfismo Polimorfismo de Herencia en Ada Redefinición de operaciones primitivas en subtipos La implementación del package es como sigue: 1 package body PH i s 2 3 procedure P( o : access Base ) i s 4 begin P u t L i n e ( P( Base ) ) ; end ; 5 6 procedure P( o : access Derivada ) i s 7 begin P u t L i n e ( P( Derivada ) ) ; end ; 8 9 end PH ; Autor: Carlos Ureña. Fecha creación: January 28, Página: 65/77.

66 Redefinición de métodos y polimorfismo Polimorfismo de Herencia en Ada Redefinición de operaciones primitivas en subtipos El dynamic dispatching redirige las llamadas en t.e. 1 use PH ; 2 vbase : a l i a s e d Base := ( i =>1) ; 3 v d e r i : a l i a s e d Derivada := ( vbase with x=> 1. 0 ) 4 rp : access Base c l a s s ; 5 6 begin 7 rp := vbase access ; 8 P( rp ) ; P( Base ) 9 10 rp := v d e r i access ; 11 P( rp ) ; P( Derivada ) 12 end ; Autor: Carlos Ureña. Fecha creación: January 28, Página: 66/77.

67 Redefinición de métodos y polimorfismo Polimorfismo de herencia en Java y C# Polimorfismo de herencia en Java y C# En estos lenguajes: No es necesario indicar expĺıcitamente que métodos son redefinibles en subclases (cualquiera lo es) No es necesario indicar expĺıcitamente que referencias son polimórficas (cualquiera lo es) Como resultado, los programas son más cortos, legibles y fáciles de escribir. La desventaja es una (leve) perdida de eficiencia en tiempo y memoria. Autor: Carlos Ureña. Fecha creación: January 28, Página: 67/77.

68 Herencia múltiple Indice de la sección Sección 5 Herencia múltiple Autor: Carlos Ureña. Fecha creación: January 28, Página: 68/77.

69 Herencia múltiple Herencia múltiple La herencia múltiple ocurre cuando una clase es subclase de varias superclases distintas En Ada, Java y C# no se permite: una clase solo tiene una superclase. En C++ está contemplado. Autor: Carlos Ureña. Fecha creación: January 28, Página: 69/77.

70 Clases abstractas e interfaces Indice de la sección Sección 6 Clases abstractas e interfaces Autor: Carlos Ureña. Fecha creación: January 28, Página: 70/77.

71 Clases abstractas e interfaces Clases abstractas e interfaces En algunos casos no tiene sentido definir un método en una superclase, sino que solo tiene sentido en las subclases. Un ejemplo es una clase de tipo Ventana con un método Dibujar. Solo se pueden dibujar las ventanas de tipos específicos en clases derivadas de Ventana A las clases que tienen uno o varios métodos de esta forma se les llama clases abstractas, a los métodos se les llama métodos abstractos Autor: Carlos Ureña. Fecha creación: January 28, Página: 71/77.

72 Clases abstractas e interfaces Clases abstractas No se deben crear instancias de clases abstractas, pues pueden tener toda o parte de su funcionalidad limitada Si se crea una instancia, no se deben invocar métodos abstractos, pues no se puede asumir que hacen algo útil o correcto Los métodos abstractos se pueden implementar como métodos que generan un error en t.e. al ser invocados Autor: Carlos Ureña. Fecha creación: January 28, Página: 72/77.

73 Clases abstractas e interfaces Métodos virtuales puros en C++ El lenguaje C++ tiene un mecanismo para implementar métodos abstractos, que se denominan virtuales puros Un método virtual puro tiene una declaración (cabecera) pero no una definición (no tiene cuerpo) La declaración acaba con = 0 ; Una clase con un método virtual puro es abstracta y no pueden crearse instancias de la misma Una subclase directa de una clase abstracta implementa todos lo métodos virtuales puros de la superclase, o en caso contrario es también abstracta. Autor: Carlos Ureña. Fecha creación: January 28, Página: 73/77.

74 Clases abstractas e interfaces Beneficios de las clases abstractas Las clases abstractas constituyen un mecanismo escencial en OO Las clases abstractas frecuentmente sirven para especificar que métodos se deben implementar en las derivadas, sin proveer ningún código que restrinja o indique como se pueden implementar Las clases abstractas proveen el interfaz de uso de sus clases derivadas, que todas deben incorporar, mientras que las clases derivadas de la abstracta proveen implementaciones de ese interfaz (a menudo implementaciones alternativas) Autor: Carlos Ureña. Fecha creación: January 28, Página: 74/77.

75 Clases abstractas e interfaces Interfaces en Java y C# En Java existe el mecanismo de los interfaces, que permite definir expĺıcitamente un interfaz, de forma separada de las clases que lo implementan Un interfaz Java es una especificación de que métodos como mínimo deben implementar otras clases. Se puede indicar expĺıcitamente que una clase implementa un interfaz Java. El lenguaje C# también incorpora soporte expĺıcito para el concepto de interfaz. Autor: Carlos Ureña. Fecha creación: January 28, Página: 75/77.

76 Clases abstractas e interfaces Implementación de clases abstractas o interfaces Una clase cualquiera puede proveer implementaciones de uno o varios interfaces (cumple varios roles) En C++, se puede usar herencia múltiple para definir una subclase que implementa varias clases abstractas, cada una de ellas definiendo un interfaz. En Java y C#, una clase puede implementar uno o varios interfaces Autor: Carlos Ureña. Fecha creación: January 28, Página: 76/77.

77 Clases abstractas e interfaces fin del capítulo. Autor: Carlos Ureña. Fecha creación: January 28, Página: 77/77.

Programación Orientada a Objetos en Java

Programación Orientada a Objetos en Java Programación Orientada a Objetos en Java Curso 2006-2007 Tema 4 Herencia y Polimorfismo Gonzalo Méndez Pozo Dpto. de Ingeniería de Software e Inteligencia Artificial Universidad Complutense de Madrid Herencia

Más detalles

Capítulo 6. Asociaciones y Declaraciones.

Capítulo 6. Asociaciones y Declaraciones. Capítulo 6. Asociaciones y Declaraciones. Lenguajes de Programación Carlos Ureña Almagro Curso 2011-12 Contents 1 Asociaciones, entornos y ámbitos 2 2 Declaraciones y definiciones 6 3 Definiciones de valores,

Más detalles

Herencia. 3.- Herencia. Declaración de una clase derivada en Delphi. Jerarquía de clases

Herencia. 3.- Herencia. Declaración de una clase derivada en Delphi. Jerarquía de clases Herencia 3.- Herencia La herencia nos permite definir datos y métodos que son generales (comunes a distintas clases) por separado de las que son particulares a cada clase. Esto se logra definiendo lo que

Más detalles

2.2.- Paradigmas de la POO

2.2.- Paradigmas de la POO 2.2.- Paradigmas de la POO Los principios propios de la orientación a objetos son: 2.2.1.- Abstracción de Datos 2.2.2.- Encapsulamiento 2.2.3.- Ocultamiento 2.2.4.- Herencia 2.2.5.- Polimorfismo Cualquier

Más detalles

GUIA PROGRAMACIÓN ORIENTADA A OBJETOS

GUIA PROGRAMACIÓN ORIENTADA A OBJETOS GUIA PROGRAMACIÓN ORIENTADA A OBJETOS 1. Por qué la P.O.O? R= A medida que se van desarrollando los lenguajes, se va desarrollando también la posibilidad de resolver problemas más complejos. En la evolución

Más detalles

Universidad de Cantabria corcuerp@unican.es

Universidad de Cantabria corcuerp@unican.es Herencia Pedro Corcuera Dpto. Matemática Aplicada y Ciencias de la Computación Universidad de Cantabria corcuerp@unican.es Objetivos Aprender los conceptos de herencia Comprender la forma de derivar una

Más detalles

Centro de Capacitación en Informática

Centro de Capacitación en Informática Fórmulas y Funciones Las fórmulas constituyen el núcleo de cualquier hoja de cálculo, y por tanto de Excel. Mediante fórmulas, se llevan a cabo todos los cálculos que se necesitan en una hoja de cálculo.

Más detalles

Introducción a la programación orientada a objetos

Introducción a la programación orientada a objetos Introducción a la programación orientada a objetos 1. Introducción a la programación orientada a objetos 2. Las clases 3. El tipo Struct 4. Diferencias entre Class y Struct 5. Pilares de la Programación

Más detalles

Modulo 1 El lenguaje Java

Modulo 1 El lenguaje Java Modulo 1 El lenguaje Java 13 - Codificación en Java Una de las grandes diferencias entre Java y Pascal en cuando a la codificación es que Java se trata de un lenguaje de los llamados case sensitive Esto

Más detalles

Programación Orientada a Objetos con Java

Programación Orientada a Objetos con Java Programación Orientada a Objetos con Java M.C. Jorge Eduardo Ibarra Esquer jorgeeie@uabc.mx Sobrecarga de métodos Java permite la definición de dos o más métodos que tengan el mismo nombre, dentro de la

Más detalles

INSTITUTO TECNOLOGICO de la laguna Programación Orientada a Objetos en C++

INSTITUTO TECNOLOGICO de la laguna Programación Orientada a Objetos en C++ 5.- Herencia Múltiple. Un hecho natural es que una persona tenga más de un pariente mayor, esta situación también se puede dar en la herencia de clases, naturalmente este tipo de herencia involucra un

Más detalles

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

En cualquier caso, tampoco es demasiado importante el significado de la B, si es que lo tiene, lo interesante realmente es el algoritmo. Arboles-B Características Los árboles-b son árboles de búsqueda. La "B" probablemente se debe a que el algoritmo fue desarrollado por "Rudolf Bayer" y "Eduard M. McCreight", que trabajan para la empresa

Más detalles

Capítulo 6. Introducción a la POO

Capítulo 6. Introducción a la POO Capítulo 6. Introducción a la POO 6. 1. Clases, Objetos y Métodos Definición La Programación Orientada a Objetos (POO) es una forma especial de programar, más cercana a cómo expresaríamos las cosas en

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

Tutorial de UML. Introducción: Objetivos: Audiencia: Contenidos:

Tutorial de UML. Introducción: Objetivos: Audiencia: Contenidos: Tutorial de UML Introducción: El Lenguaje de Modelamiento Unificado (UML - Unified Modeling Language) es un lenguaje gráfico para visualizar, especificar y documentar cada una de las partes que comprende

Más detalles

9. Objetos y clases. 9.1. Clases

9. Objetos y clases. 9.1. Clases Programación orientada a objetos con Java 103 9. Objetos y clases Objetivos: a) Presentar el concepto de objeto, clase, atributo, método e instancia b) Interpretar el código fuente de una aplicación Java

Más detalles

Introducción a la Programación Orientada a Objetos

Introducción a la Programación Orientada a Objetos Introducción a la Programación Orientada a Objetos El paradigma imperativo. En un programa se tienen una serie de variables con las cuales operamos y modificamos mediante sentencias y funciones para producir

Más detalles

CONTENIDOS. 1. Completar el ejemplo de Herencia: Superclase Persona-Subclase Alumno

CONTENIDOS. 1. Completar el ejemplo de Herencia: Superclase Persona-Subclase Alumno CONTENIDOS 1. Completar el ejemplo de Herencia: Superclase Persona-Subclase Alumno 2. Redefinición de métodos. 3. Jerarquía de clases. 4. Ejecución de los pasos de mensajes con Herencia. 5. Problemas con

Más detalles

DIAGRAMA DE CLASES EN UML

DIAGRAMA DE CLASES EN UML DIAGRAMA DE CLASES EN UML Mg. Juan José Flores Cueto jflores@usmp.edu.pe Ing. Carmen Bertolotti Zuñiga cbertolotti@usmp.edu.pe INTRODUCCIÓN UML (Unified Modeling Language) es un lenguaje que permite modelar,

Más detalles

Tema: Sobrecarga de Operadores.

Tema: Sobrecarga de Operadores. Programación II. Guía 7 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Sobrecarga de Operadores. Objetivos Describir como redefinir (sobrecargar) operadores para que funcionen

Más detalles

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL OBJETIVO Mejorar el nivel de comprensión y el manejo de las destrezas del estudiante para utilizar formulas en Microsoft Excel 2010. 1) DEFINICIÓN Una fórmula de Excel es un código especial que introducimos

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 02830. Programación en Java Marzo 2010 Índice 1 Introducción a la POO 2 Herencia y polimorfismo 3 Empaquetado de proyectos

Más detalles

Procesadores de lenguaje Tema 5 Comprobación de tipos

Procesadores de lenguaje Tema 5 Comprobación de tipos Procesadores de lenguaje Tema 5 Comprobación de tipos Departamento de Ciencias de la Computación Universidad de Alcalá Resumen Sistemas de tipos. Expresiones de tipo. Equivalencia de tipos. Sobrecarga,

Más detalles

Apuntes de Matemática Discreta 1. Conjuntos y Subconjuntos

Apuntes de Matemática Discreta 1. Conjuntos y Subconjuntos Apuntes de Matemática Discreta 1. Conjuntos y Subconjuntos Francisco José González Gutiérrez Cádiz, Octubre de 2004 Universidad de Cádiz Departamento de Matemáticas ii Lección 1 Conjuntos y Subconjuntos

Más detalles

Notación UML para modelado Orientado a Objetos

Notación UML para modelado Orientado a Objetos 1 Notación UML para modelado Orientado a Objetos 2 Notación UML para modelado Orientado a Objetos Índice 1.1. Qué es UML?.. 3 1.2. Por qué interesa UML en la asignatura de Programación Orientada a Objetos?3

Más detalles

Diagramas de Clase en UML 1.1

Diagramas de Clase en UML 1.1 Diagramas de Clase en UML. Francisco José García Peñalvo Licenciado en Informática. Profesor del Área de Lenguajes y Sistemas Informáticos de la Universidad de Burgos. fgarcia@.ubu.es Carlos Pardo Aguilar

Más detalles

Diagramas del UML. A continuación se describirán los diagramas más comunes del UML y los conceptos que representan: Diagrama de Clases

Diagramas del UML. A continuación se describirán los diagramas más comunes del UML y los conceptos que representan: Diagrama de Clases El UML está compuesto por diversos elementos gráficos que se combinan para conformar diagramas. Debido a que el UML es un lenguaje, cuenta con reglas para combinar tales elementos. La finalidad de los

Más detalles

Guía Corta: Alcance y Asociaciones. 1. Preliminares: Nombres y Asociaciones

Guía Corta: Alcance y Asociaciones. 1. Preliminares: Nombres y Asociaciones Universidad Simón Bolívar Departamento de Computación y Tecnología de la Información CI3641 Lenguajes de Programación I Guía Corta: Alcance y Asociaciones Esta guía presenta algunos conceptos básicos y

Más detalles

POLIMORFISMO "una interfaz, múltiples métodos".

POLIMORFISMO una interfaz, múltiples métodos. "una interfaz, múltiples métodos". 20/02/2007 Polimorfismo 2 Indice Definición y caracteristicas Objetivos. SOBRRESCRITURA-SOBRECARGA SOBRECARGA Clases y métodos abstractos INTERFACES (herencia múltiple)

Más detalles

Introducción. Herencia y Polimorfismo. Ejemplos (I) Ejemplos (II) Control de Acceso. Herencia

Introducción. Herencia y Polimorfismo. Ejemplos (I) Ejemplos (II) Control de Acceso. Herencia Introducción Herencia y Polimorfismo Se pueden definir jerarquías de clases, con clases generales que definen el comportamiento común a unos objetos y clases específicas que sólo añaden o redefinen el

Más detalles

Definición de clases: Herencia, polimorfismo, ligadura dinámica

Definición de clases: Herencia, polimorfismo, ligadura dinámica Tema 7 Definición de clases: Herencia, polimorfismo, ligadura dinámica Con alguna frecuencia es necesario definir clases de objetos entre las cuales hay elementos comunes. En una aplicación en la cual

Más detalles

Patrones de Diseño Orientados a Objetos 2 Parte

Patrones de Diseño Orientados a Objetos 2 Parte Patrones de Diseño Orientados a Objetos 2 Parte Patrón Observador Observer (Patrón de Comportamiento) Patrón Observador Observer Observador (en inglés: Observer) es un patrón de diseño que define una dependencia

Más detalles

Programación en Java. Programación en OO

Programación en Java. Programación en OO Programación en OO Lección 4:Programación en OO 1. Herencia 2. Modificadores de Acceso 3. Interfaces Herencia Es la acción en la que una clase obtiene los métodos y propiedades definidos en otra clase,

Más detalles

MATERIAL 2 EXCEL 2007

MATERIAL 2 EXCEL 2007 INTRODUCCIÓN A EXCEL 2007 MATERIAL 2 EXCEL 2007 Excel 2007 es una planilla de cálculo, un programa que permite manejar datos de diferente tipo, realizar cálculos, hacer gráficos y tablas; una herramienta

Más detalles

Manual de usuario para Android de la aplicación PORTAFIRMAS MÓVIL

Manual de usuario para Android de la aplicación PORTAFIRMAS MÓVIL Manual de usuario para Android de la aplicación PORTAFIRMAS MÓVIL Índice 1 Introducción... 5 1.1 Perfil de la aplicación... 5 1.2 Requisitos técnicos... 5 2 Manual de usuario... 7 2.1 Instalación del certificado...

Más detalles

Java Inicial (20 horas)

Java Inicial (20 horas) Java Inicial (20 horas) 1 Temario 1. Programación Orientada a Objetos 2. Introducción y Sintaxis Java 3. Sentencias Control Flujo 4. POO en Java 5. Relaciones entre Objetos 6. Polimorfismo, abstracción

Más detalles

Modelado arquitectónico con UML

Modelado arquitectónico con UML Modelado arquitectónico con UML Qué es la arquitectura de software El modelo de 4+1 vistas arquitectónicas Cohesión y acoplamiento Cómo lograr una descomposición modular eficaz Criterios para la selección

Más detalles

PROGRAMACIÓN ORIENTADA A OBJETOS

PROGRAMACIÓN ORIENTADA A OBJETOS PROGRAMACIÓN ORIENTADA A OBJETOS Clase 1. Introducción Profesor: Diego Sánchez Gómez Introducción a la programación orientada a objetos 1. Introducción a la programación orientada a objetos 2. Las clases

Más detalles

Tema 6. Reutilización de código. Programación 2015-2016. Programación - Tema 6: Reutilización de código

Tema 6. Reutilización de código. Programación 2015-2016. Programación - Tema 6: Reutilización de código Tema 6 Reutilización de código Programación 2015-2016 Programación - Tema 6: Reutilización de código 1 Tema 6. Reutilización de código Modularidad. Implementación de métodos. Uso de métodos. Programación

Más detalles

TEMA 7: DIAGRAMAS EN UML

TEMA 7: DIAGRAMAS EN UML TEMA 7: DIAGRAMAS EN UML Diagramas en UML El bloque de construcción básico de UML es un Diagrama Introducción a UML 2 1 Modelo de Casos de Uso (MCU) Todos los casos de uso constituyen el MCU que describe

Más detalles

PHP y MySQL. Inicio: - Herencia - Palabra clave Final - Polimorfismo - Type Hinting - Abstracción de clases

PHP y MySQL. Inicio: - Herencia - Palabra clave Final - Polimorfismo - Type Hinting - Abstracción de clases PHP y MySQL Inicio: - Herencia - Palabra clave Final - Polimorfismo - Type Hinting - Abstracción de clases Herencia de Objetos La herencia permite crear muchas clases que son similares entre si, sin tener

Más detalles

Prof. Dr. Paul Bustamante

Prof. Dr. Paul Bustamante Prácticas de C++ Practica Nº 8 Informática II Fundamentos de Programación Prof. Dr. Paul Bustamante ÍNDICE ÍNDICE... 1 1. INTRODUCCIÓN... 1 1.1 EJERCICIO 1: HERENCIA Y POLIMORFISMO I... 1 1.2 EJERCICIO

Más detalles

2. Conceptos básicos Abstracción La abstracción como un proceso mental natural La abstracción en el desarrollo de software

2. Conceptos básicos Abstracción La abstracción como un proceso mental natural La abstracción en el desarrollo de software 2. Conceptos básicos Hoy en día las aplicaciones son demasiado voluminosas y complejas para ser manejadas por una sola persona. Las aplicaciones de software son complejas porque modelan la complejidad

Más detalles

Inteligencia Artificial II. Razonamiento con ontologías

Inteligencia Artificial II. Razonamiento con ontologías Inteligencia Artificial II Curso 2008 09 Trabajo de curso Razonamiento con ontologías Antonio Jiménez Mavillard Enunciado Una ontología es una representación formal de un determinado dominio o área de

Más detalles

8. Sentencia return y métodos

8. Sentencia return y métodos 92 A. García-Beltrán y J.M. Arranz 8. Sentencia return y métodos Objetivos: a) Describir el funcionamiento de la sentencia return b) Interpretar el resultado de una sentencia return en el código fuente

Más detalles

INTRODUCCIÓN A LOS SISTEMAS GESTORES DE BASE DE DATOS

INTRODUCCIÓN A LOS SISTEMAS GESTORES DE BASE DE DATOS INTRODUCCIÓN A LOS SISTEMAS GESTORES DE BASE DE DATOS AUTORÍA JOSEFA PÉREZ DOMÍNGUEZ TEMÁTICA NUEVAS TECNOLOGIAS ETAPA CICLOS FORMATIVOS DE GRADO SUPERIOR DE INFORMÁTICA Resumen En esta publicación se

Más detalles

Curso de Doctorado: Tecnologías de Objetos

Curso de Doctorado: Tecnologías de Objetos Curso de Doctorado: Tecnologías de Objetos Grupo IMO Área de Lenguajes y Sistemas Informáticos Departamento de Informática J. Baltasar García Perez-Schofield http://webs.uvigo.es/jbgarcia/ Implementación

Más detalles

Curso de Python Inicial

Curso de Python Inicial Logo IAA-CSIC Curso organizado por el Gabinete de Formación del CSIC Curso de Python Inicial Clases Contenidos 1. Paradigmas de la Programación 2. Programación Orientada a objetos 3. Clases 4. Objetos

Más detalles

Introducción al UML. Domingo Hernández H. Escuela de Ingeniería de Sistemas Departamento de computación

Introducción al UML. Domingo Hernández H. Escuela de Ingeniería de Sistemas Departamento de computación Introducción al UML Domingo Hernández H. Escuela de Ingeniería de Sistemas Departamento de computación Contenido Qué es UML?. Diagramas Utilizados en UML. Ejemplos. Qué es UML UML es un Lenguaje de Modelado

Más detalles

Conceptos. ELO329: Diseño y Programación Orientados a Objetos. ELO 329: Diseño y Programación Orientados a Objetos

Conceptos. ELO329: Diseño y Programación Orientados a Objetos. ELO 329: Diseño y Programación Orientados a Objetos Conceptos ELO329: Diseño y Programación Orientados a Objetos 1 Paradigmas de Programación Historia: Los computadores parten cableados por hardware, Luego se introduce la programación en binario, Se desarrolla

Más detalles

Operación Microsoft Access 97

Operación Microsoft Access 97 Trabajar con Controles Características de los controles Un control es un objeto gráfico, como por ejemplo un cuadro de texto, un botón de comando o un rectángulo que se coloca en un formulario o informe

Más detalles

Introduccion al Lenguaje C. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia

Introduccion al Lenguaje C. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia Introduccion al Lenguaje C Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia Introducción C es un lenguaje de programación creado en 1972 por

Más detalles

CONCEPTOS FUNDAMENTALES DE LA ORIENTACION A OBJETOS

CONCEPTOS FUNDAMENTALES DE LA ORIENTACION A OBJETOS CAPITULO 3 CONCEPTOS FUNDAMENTALES DE LA ORIENTACION A OBJETOS 3.1. QUE ES LA PROGRAMACIÓN ORIENTADA A OBJETOS? La POO no es un lenguaje de programación. La POO es una nueva manera de "atacar" los problemas

Más detalles

ISTP CIDET COMPUTACION E INFORMATICA ARREGLOS EN JAVA

ISTP CIDET COMPUTACION E INFORMATICA ARREGLOS EN JAVA ARREGLOS EN JAVA I I N T R O D U C C I Ó N En las sesiones anteriores, los datos manejados en los programas han sido datos simples (carácter, entero, reales) En un gran número de problemas es necesario

Más detalles

BASE DE DATOS RELACIONALES

BASE DE DATOS RELACIONALES BASE DE DATOS RELACIONALES Una base de datos relacional es una base de datos que cumple con el modelo relacional, el cual es el modelo más utilizado en la actualidad para implementar bases de datos ya

Más detalles

EXAMEN FINAL Metodología y Programación Orientada a Objetos. Curso 2010 2011. Cuatrimestre de otoño. 17 de Enero de 2011

EXAMEN FINAL Metodología y Programación Orientada a Objetos. Curso 2010 2011. Cuatrimestre de otoño. 17 de Enero de 2011 EXAMEN FINAL Metodología y Programación Orientada a Objetos. Curso 2010 2011. Cuatrimestre de otoño. 17 de Enero de 2011 1. (0,75 PUNTOS) Identificad a continuación las sentencias que son ciertas, descartando

Más detalles

Clases abstractas e interfaces

Clases abstractas e interfaces Clases abstractas e interfaces Clases abstractas Una clase abstracta es una clase que no se puede instanciar se usa únicamente para definir subclases Cuándo es una clase abstracta? En cuanto uno de sus

Más detalles

EDICIÓN Y FORMATO (II)

EDICIÓN Y FORMATO (II) EDICIÓN Y FORMATO (II) 1. INTRODUCCIÓN Writer dispone de una serie de barras de herramientas predeterminadas, en las que se encuentran botones de acceso directo a comandos específicos que se activan con

Más detalles

FUNDACION EDUCATIVA OBRERA FUNEDO TECNICO EN SECRETARIADO EJECUTIVO SISTEMATIZADO

FUNDACION EDUCATIVA OBRERA FUNEDO TECNICO EN SECRETARIADO EJECUTIVO SISTEMATIZADO LOS FORMULARIOS Los formularios sirven para definir pantallas generalmente para editar los registros de una tabla o consulta. Veremos cómo crear un formulario, manejarlo para la edición de registros y

Más detalles

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación II MODELOS y HERRAMIENTAS UML 1 1 Modelado de casos de uso (I) Un caso de uso es una técnica de modelado usada para describir lo que debería hacer

Más detalles

UNIVERSIDAD CATOLICA DE COLOMBIA FACULTAD DE INGENIERIA DE SISTEMAS

UNIVERSIDAD CATOLICA DE COLOMBIA FACULTAD DE INGENIERIA DE SISTEMAS UNIVERSIDAD CATOLICA DE COLOMBIA FACULTAD DE INGENIERIA DE SISTEMAS CURSO: JAVA BASICO PROFESOR: EMERSON CASTAÑEDA SANABRIA TEMA: Programación Orientada a Objetos OBJETIVOS: Familiarizarse con la Programación

Más detalles

BANCOS. Manejo de Bancos. Como crear una ficha de Banco? Como modificar los datos de una ficha de Banco? Como borrar una ficha de Banco?

BANCOS. Manejo de Bancos. Como crear una ficha de Banco? Como modificar los datos de una ficha de Banco? Como borrar una ficha de Banco? BANCOS El Sistema de Gestión Administrativa permite el manejo de los movimientos bancarios. Seleccionada la opción de Bancos, el sistema presentara las siguientes opciones. Manejo de Bancos Manejo de movimientos

Más detalles

CLASS JAVASCRIPT CLASES? OBJETOS PREDEFINIDOS. WINDOW, OBJETO GLOBAL. NUMBER, MATH, DATE, REGEXP, ERROR. (CU01144E)

CLASS JAVASCRIPT CLASES? OBJETOS PREDEFINIDOS. WINDOW, OBJETO GLOBAL. NUMBER, MATH, DATE, REGEXP, ERROR. (CU01144E) APRENDERAPROGRAMAR.COM CLASS JAVASCRIPT CLASES? OBJETOS PREDEFINIDOS. WINDOW, OBJETO GLOBAL. NUMBER, MATH, DATE, REGEXP, ERROR. (CU01144E) Sección: Cursos Categoría: Tutorial básico del programador web:

Más detalles

Correspondencias entre taxonomías XBRL y ontologías en OWL Unai Aguilera, Joseba Abaitua Universidad de Deusto, EmergiaTech

Correspondencias entre taxonomías XBRL y ontologías en OWL Unai Aguilera, Joseba Abaitua Universidad de Deusto, EmergiaTech Correspondencias entre taxonomías XBRL y ontologías en OWL Unai Aguilera, Joseba Abaitua Universidad de Deusto, EmergiaTech Resumen Todo documento XBRL contiene cierta información semántica que se representa

Más detalles

QUÉ ES Y PARA QUÉ SIRVE UML? VERSIONES DEL LENGUAJE UNIFICADO DE MODELADO. TIPOS DE DIAGRAMAS. INGENIERÍA DEL SOFTWARE (DV00205D)

QUÉ ES Y PARA QUÉ SIRVE UML? VERSIONES DEL LENGUAJE UNIFICADO DE MODELADO. TIPOS DE DIAGRAMAS. INGENIERÍA DEL SOFTWARE (DV00205D) APRENDERAPROGRAMAR.COM QUÉ ES Y PARA QUÉ SIRVE UML? VERSIONES DEL LENGUAJE UNIFICADO DE MODELADO. TIPOS DE DIAGRAMAS. INGENIERÍA DEL SOFTWARE (DV00205D) Sección: Divulgación Categoría: Lenguajes y entornos

Más detalles

Clases de apoyo de matemáticas Fracciones y decimales Escuela 765 Lago Puelo Provincia de Chubut

Clases de apoyo de matemáticas Fracciones y decimales Escuela 765 Lago Puelo Provincia de Chubut Clases de apoyo de matemáticas Fracciones y decimales Escuela 765 Lago Puelo Provincia de Chubut Este texto intenta ser un complemento de las clases de apoyo de matemáticas que se están realizando en la

Más detalles

Clases y Objetos. Informática II Ingeniería Electrónica

Clases y Objetos. Informática II Ingeniería Electrónica Clases y Objetos Informática II Ingeniería Electrónica Los Tipos de Datos Hasta ahora, en un programa podemos usar para representar variables a: Tipos fundamentales : enteros (int), caracteres (char),

Más detalles

Capítulo 4. Vectores y matrices. 4.1 Declaración de tablas. 4.2 Declaración estática de tablas

Capítulo 4. Vectores y matrices. 4.1 Declaración de tablas. 4.2 Declaración estática de tablas Capítulo 4 Vectores y matrices En FORTRAN se puede utilizar un tipo especial de variable que sirve, en particular, para almacenar vectores y matrices. De esta forma, se utiliza un sólo nombre para referirse

Más detalles

Patrones para persistencia (I) Ingeniería del Software II

Patrones para persistencia (I) Ingeniería del Software II Patrones para persistencia (I) Ingeniería del Software II 1 Patrones para la construcción del esquema relacional En todos los ejemplos realizaremos transformaciones del siguiente diagrama de clases: Figura

Más detalles

Universidad Católica del Maule. Fundamentos de Computación Especificación de tipos de datos ESPECIFICACIÓN ALGEBRAICA DE TIPOS DE DATOS

Universidad Católica del Maule. Fundamentos de Computación Especificación de tipos de datos ESPECIFICACIÓN ALGEBRAICA DE TIPOS DE DATOS Especificación algebraica ESPECIFICACIÓN ALGEBRAICA DE TIPOS DE DATOS Un tipo abstracto de datos se determina por las operaciones asociadas, incluyendo constantes que se consideran como operaciones sin

Más detalles

EL MODELO ENTIDAD-RELACIÓN:

EL MODELO ENTIDAD-RELACIÓN: APUNTES DEL MÓDULO PROFESIONAL: SISTEMAS GESTORES DE BASES DE DATOS (2) Página 1 de 8 EL MODELO ENTIDAD-RELACIÓN: Conceptos previos vistos anteriormente: Los modelos de datos son el conjunto de conceptos

Más detalles

Usuarios y Permisos. Capítulo 12

Usuarios y Permisos. Capítulo 12 Capítulo 12 Usuarios y Permisos La gente simplemente intenta utilizar el sitio web Joomla! que has creado - ya sea de forma activa o pasiva. Cuanto mejor sea la experiencia que tenga al hacerlo, mejor

Más detalles

Una base de datos es una colección de información ordenada e interrelacionada que es de importancia para una empresa.

Una base de datos es una colección de información ordenada e interrelacionada que es de importancia para una empresa. Una base de datos es una colección de información ordenada e interrelacionada que es de importancia para una empresa. La creación de una base de datos debe ser realizada cuidadosamente procurando cumplir

Más detalles

OPERADORES LÓGICOS Y DE COMPARACIÓN EN PHP. PRIORIDADES. EJEMPLOS. EJERCICIOS RESUELTOS. (CU00818B)

OPERADORES LÓGICOS Y DE COMPARACIÓN EN PHP. PRIORIDADES. EJEMPLOS. EJERCICIOS RESUELTOS. (CU00818B) APRENDERAPROGRAMAR.COM OPERADORES LÓGICOS Y DE COMPARACIÓN EN PHP. PRIORIDADES. EJEMPLOS. EJERCICIOS RESUELTOS. (CU00818B) Sección: Cursos Categoría: Tutorial básico del programador web: PHP desde cero

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! Clase! Objeto! Atributo o variable de instancia! Método! Instanciar/crear un objeto!

Más detalles

Diagramas de Clases ~ 1 ~ Ing. Fabián Silva Alvarado

Diagramas de Clases ~ 1 ~ Ing. Fabián Silva Alvarado Diagramas de Clases ~ 1 ~ Ing. Fabián Silva Alvarado DIAGRAMAS DE CLASES RELACIONES ENTRE CLASES Una vez que tengamos todas nuestras clases, será necesario que estas se asocien, con el fin de mostrar la

Más detalles

Módulo mod_banners para insertar y visualizar anuncios o publicidad (banners) en Joomla. Contador. (CU00446A)

Módulo mod_banners para insertar y visualizar anuncios o publicidad (banners) en Joomla. Contador. (CU00446A) aprenderaprogramar.com Módulo mod_banners para insertar y visualizar anuncios o publicidad (banners) en Joomla. Contador. (CU00446A) Sección: Cursos Categoría: Curso creación y administración web: Joomla

Más detalles

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA UNED Centro Asociado de Cádiz RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA 1. OBJETOS Cualquier elemento del programa es un objeto. Un programa es un conjunto de objetos que se comunican entre sí

Más detalles

Ejercicio 1. Desarrollar un pequeño juego para practicar mecanografía.

Ejercicio 1. Desarrollar un pequeño juego para practicar mecanografía. Examen Curso 2001-2002. Convocatoria de Febrero Página 1 Ejercicio 1. Desarrollar un pequeño juego para practicar mecanografía. Este ejercicio se divide en dos partes con el fin de que el alumno no intente

Más detalles

Tema: Patrones de Diseño.

Tema: Patrones de Diseño. Programación II. Guía 13 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Patrones de Diseño. Objetivos Específicos Implementar la aplicación de patrones de diseño como herramientas

Más detalles

Adaptación al NPGC. Introducción. NPGC.doc. Qué cambios hay en el NPGC? Telf.: 93.410.92.92 Fax.: 93.419.86.49 e-mail:atcliente@websie.

Adaptación al NPGC. Introducción. NPGC.doc. Qué cambios hay en el NPGC? Telf.: 93.410.92.92 Fax.: 93.419.86.49 e-mail:atcliente@websie. Adaptación al NPGC Introducción Nexus 620, ya recoge el Nuevo Plan General Contable, que entrará en vigor el 1 de Enero de 2008. Este documento mostrará que debemos hacer a partir de esa fecha, según nuestra

Más detalles

TUTORIAL SOBRE EL MANEJO DE LA OFICINA VIRTUAL PARA LA REMISIÓN DE INFORMES DE DOCENCIA VIRTUAL VÍA ADMINISTRACIÓN ELECTRÓNICA

TUTORIAL SOBRE EL MANEJO DE LA OFICINA VIRTUAL PARA LA REMISIÓN DE INFORMES DE DOCENCIA VIRTUAL VÍA ADMINISTRACIÓN ELECTRÓNICA TUTORIAL SOBRE EL MANEJO DE LA OFICINA VIRTUAL PARA LA REMISIÓN DE INFORMES DE DOCENCIA VIRTUAL VÍA ADMINISTRACIÓN ELECTRÓNICA. COORDINADORES DE MÓDULOS/MATERIAS/ ASIGNATURAS VIRTUALES DE POSGRADOS CON

Más detalles

FORMACIÓN DE EQUIPOS DE E-LEARNING 2.0 MÓDULO DE DISEÑO Y PRODUCCIÓN DE MATERIALES UNIDAD 6 B

FORMACIÓN DE EQUIPOS DE E-LEARNING 2.0 MÓDULO DE DISEÑO Y PRODUCCIÓN DE MATERIALES UNIDAD 6 B 141 1 FORMACIÓN DE EQUIPOS DE E-LEARNING 2.0 Unidad 6 B 142 2 Índice SEGUIMIENTO DE PERSONAS 1 INFORMES 2 143 3 SEGUIMIENTO DE PERSONAS E INFORMES EN MOODLE El seguimiento de los participantes en Moodle

Más detalles

Fundamentos de la Programación

Fundamentos de la Programación Fundamentos de la Programación El Software Las operaciones que debe realizar el hardware son especificadas con una lista de instrucciones, llamadas programas o software. Dos grandes grupos de software

Más detalles

INDICE. 2.2. Uso de la composición (I). Preservación de la ocultación... 11. 3.3. Utilización de miembros heredados (I). Atributos...

INDICE. 2.2. Uso de la composición (I). Preservación de la ocultación... 11. 3.3. Utilización de miembros heredados (I). Atributos... TEMA 9 INDICE 1. Relaciones entre clases.... 4 1.1. Composición... 5 1.2. Herencia... 6 1.3. Herencia o composición?... 7 2 Composición... 9 2.1. Sintaxis de la composición.... 9 Ejercicio resuelto...

Más detalles

Introducción a los Tipos Abstractos de Datos

Introducción a los Tipos Abstractos de Datos Página 1 de 8 Introducción a los Tipos Abstractos de Datos Introducción: Concepto de abstracción Abstracción funcional y abstracción de datos Construcción de tipos abstractos de datos Especificación de

Más detalles

5.1. Organizar los roles

5.1. Organizar los roles Marco de intervención con personas en grave situación de exclusión social 5 Organización de la acción 5.1. Organizar los roles Parece que el modelo que vamos perfilando hace emerger un rol central de acompañamiento

Más detalles

Los elementos que usualmente componen la identidad digital son:

Los elementos que usualmente componen la identidad digital son: Enero 2016 Programa Civismo Digital - Escolar Material Educativo Lección: TU IDENTIDAD EN INTERNET v. 1.0 Topico: Alfabetización Digital, Huella Digital Objetivo: Fomentar en los alumnos la importancia

Más detalles

A25. Informática aplicada a la gestión Curso 2005/2006 Excel Tema 7. Funciones avanzadas de Excel II

A25. Informática aplicada a la gestión Curso 2005/2006 Excel Tema 7. Funciones avanzadas de Excel II DEPARTAMENTO DE LENGUAJES Y SISTEMAS INFORMÁTICOS ESCUELA SUPERIOR DE TECNOLOGÍA Y CIENCIAS EXPERIMENTALES A.D.E.M. Segundo Curso A25. Informática aplicada a la gestión Curso 2005/2006 Excel Tema 7. Funciones

Más detalles

Activos Intangibles Costos de Sitios Web

Activos Intangibles Costos de Sitios Web SIC-32 Material publicado para acompañar a la Interpretación SIC-32 Activos Intangibles Costos de Sitios Web El texto de la parte normativa de la interpretación se encuentra en la Parte A de esta edición.

Más detalles

Tema 4. Gestión de entrada/salida

Tema 4. Gestión de entrada/salida Tema 4. Gestión de entrada/salida 1. Principios de la gestión de E/S. 1.Problemática de los dispositivos de E/S. 2.Objetivos generales del software de E/S. 3.Principios hardware de E/S. 1. E/S controlada

Más detalles

Figura 4.1 Clasificación de los lenguajes de bases de datos

Figura 4.1 Clasificación de los lenguajes de bases de datos 1 Colección de Tesis Digitales Universidad de las Américas Puebla Romero Martínez, Modesto Este capítulo describen los distintos lenguajes para bases de datos, la forma en que se puede escribir un lenguaje

Más detalles

GESTIÓN DE LA DOCUMENTACIÓN

GESTIÓN DE LA DOCUMENTACIÓN Página: 1 de 8 Elaborado por: Revidado por: Aprobado por: Comité de calidad Responsable de calidad Director Misión: Controlar los documentos y registros del Sistema de Gestión de Calidad para garantizar

Más detalles

Curso: FT433 - Introducción a la virtualización con VirtualBox

Curso: FT433 - Introducción a la virtualización con VirtualBox forumtecnico.com Curso: FT433 - Introducción a la virtualización con VirtualBox Configuración de red Uno de los aspectos de la virtualización con más número de opciones es la configuración de red. Recordemos

Más detalles

M III ABSTRACCIÓN Y CLASIFICACIÓN

M III ABSTRACCIÓN Y CLASIFICACIÓN M III ABSTRACCIÓN Y CLASIFICACIÓN COMPLEJIDAD Y ABSTRACCIÓN La abstracción en el desarrollo del programario En todo el proceso de abstracción siempre hay una parte de la situación o del problema que se

Más detalles

Relaciones entre Clases Programación Avanzada Prim. 2009 FCC-Buap Profesor: M. C. Miguel Rodríguez Hernandez

Relaciones entre Clases Programación Avanzada Prim. 2009 FCC-Buap Profesor: M. C. Miguel Rodríguez Hernandez Relaciones entre Clases Programación Avanzada Prim 2009 FCC-Buap Profesor: M C Miguel Rodríguez Hernandez Asociación Es una relación binaria general que describe una actividad entre dos clases Se describe

Más detalles

ELO329: Diseño y Programación Orientados a Objetos 20 de Junio de 2005. Certamen Final

ELO329: Diseño y Programación Orientados a Objetos 20 de Junio de 2005. Certamen Final Certamen Final 1. Se tiene una aplicación Java que muestra dos botones. Cuando presionamos el botón de la izquierda, incrementa el número mostrado en el botón de la derecha. Cuando presionamos el botón

Más detalles

Índice 1 Instalación de la herramienta 2 Descripción de la herramienta 2 Arranque de la aplicación 3 Proyecto 4 Diagrama de clases 5

Índice 1 Instalación de la herramienta 2 Descripción de la herramienta 2 Arranque de la aplicación 3 Proyecto 4 Diagrama de clases 5 Índice Índice 1 Instalación de la herramienta 2 Descripción de la herramienta 2 Arranque de la aplicación 3 Proyecto 4 Diagrama de clases 5 Crear diagrama de clases 5 Crear elementos 7 Editar elementos

Más detalles

Módulo II - PowerPoint

Módulo II - PowerPoint Módulo II - PowerPoint Índice Copiando diapositivas Menú Edición... 2 Copiando diapositivas utilizando la barra de herramientas... 3 Copiando diapositivas utilizando el menú contextual... 3 Copiando diapositivas

Más detalles

Instrucción IrA (GoTo). Saltos no naturales en el flujo normal de un programa. Pseudocódigo y diagramas de flujo. (CU00182A)

Instrucción IrA (GoTo). Saltos no naturales en el flujo normal de un programa. Pseudocódigo y diagramas de flujo. (CU00182A) aprenderaprogramar.com Instrucción IrA (GoTo). Saltos no naturales en el flujo normal de un programa. Pseudocódigo y diagramas de flujo. (CU00182A) Sección: Cursos Categoría: Curso Bases de la programación

Más detalles