HERENCIA. Corina Flores Villarroel. UMSS - Programa MEMI

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

Download "HERENCIA. Corina Flores Villarroel. corina@memi.umss.edu.bo UMSS - Programa MEMI"

Transcripción

1 HERENCIA Corina Flores Villarroel UMSS -

2 Conceptos Entre los conceptos a saber: Herencia Subtipos Sustitución Variables polimórficas

3 Introducción La programación OO tiene características importantes: Abstracción, Encapsulación Herencia Polimorfismo

4 Contenido Ejemplos Herencia en Java Jerarquías de herencia Ventajas de la herencia Subtipos

5 Contenido La clase Object Polimorfismo Sobreescritura Tipos estáticos y dinámicos Búsqueda dinámica Colecciones

6 Repasando Hasta ahora hemos estado trabajando en la composicion de clases. Por ejemplo: public class Agencia { private ArrayList<Azafata> azafatas; private ArrayList<Empresa> empresas; public Agencia() { azafatas = new ArrayList<Azafata>(); empresas = new ArrayList<Empresa>(); } Esta técnica en la que una clase se compone o contiene instancias de otras clases se denomina composición. En el ejemplo, diríamos que una Agencia tiene Azafatas y Empresas.

7 Repasando Veamos como se representa en un modelo: public class Agencia { private ArrayList<Azafata> azafatas; private ArrayList<Empresa> empresas; public Agencia() { azafatas = new ArrayList<Azafata>(); empresas = new ArrayList<Empresa>(); } Azafata Agencia Empresa Esta flecha representa la relacion tiene un

8 Una nueva relacion Abordaremos el concepto de herencia, pero previo a esto veamos el siguiente ejemplo.

9 Ejemplos Hablemos de instrumentos musicales El sicu (en aimara siku) es una zampoña o flauta de Pan formada generalmente por dos hileras de tubos de caña de diferentes longitudes: el arca, normalmente de siete tubos, y el ira, normalmente de 6, aunque según el tipo de sicu estas cantidades pueden variar notoriamente.

10 Ejemplos Representando al sicu a traves de una clase El sicu (en aimara siku) es una zampoña o flauta de Pan formada generalmente por dos hileras de tubos de caña de diferentes longitudes: el arca, normalmente de 7 tubos, y el ira, normalmente de 6, aunque según el tipo de sicu estas cantidades pueden variar notoriamente. nombre; nombreorig; numhileras; material; totaltubos; Sicu numtubos(); tostring();

11 Ejemplos Hablemos de instrumentos musicales La guitarra es un instrumento musical de cuerda pulsada, compuesto de una caja de madera, un mástil sobre el que va adosado el diapasón o trastero, generalmente con un agujero acústico en el centro de la tapa y seis cuerdas. Sobre el diapasón van incrustados los trastes, que permiten los diferentes tonos. Su nombre específico es guitarra clásica o guitarra española

12 Ejemplos Hablemos de instrumentos musicales La guitarra es un instrumento musical de cuerda pulsada, compuesto de una caja de madera, un mástil sobre el que va adosado el diapasón o trastero, generalmente con un agujero acústico en el centro de la tapa y seis cuerdas. Sobre el diapasón van incrustados los trastes, que permiten los diferentes tonos. Su nombre específico es guitarra clásica o guitarra española Guitarra nombre; nombreorig; numcajas; material; nummastil; numagujeroacus; totalcuerdas; totalcuerdas(); tostring();

13 Ejemplos Hablemos de instrumentos musicales La guitarra es un instrumento musical de cuerda pulsada, compuesto de una caja de madera, un mástil sobre el que va adosado el diapasón o trastero, generalmente con un agujero acústico en el centro de la tapa y seis cuerdas. Sobre el diapasón van incrustados los trastes, que permiten los diferentes tonos. Su nombre específico es guitarra clásica o guitarra española Guitarra nombre; nombreorig; numcajas; material; nummastil; numagujeroacus; totalcuerdas; totalcuerdas(); tostring();

14 Ejemplos Concentremos nuestra atencion en las clases sus atributos y metodos. nombre; nombreorig; Sicu nombre; nombreorig; numcajas; Guitarra numhileras; material; Algunos atributos y metodos material; estan REPETIDOS totaltubos; nummastil; numagujeroacus; totalcuerdas; numtubos(); tostring(); totalcuerdas(); tostring();

15 Que se puede hacer? Llevar todo lo COMUN a una nueva clase, denominada INSTRUMEN TO numhileras totaltubos() numtubos() Ejemplos Sicu Instrumento nombre; nombreorig; material tostring() Guitarra numcajas; nummastil; numagujeroacus; totalcuerdas; totalcuerdas();

16 Instrumento, es la clase Padre o Superclase Sicu y Guitarra, son las clases Hijas o Subclases numhileras totaltubos() numtubos() Ejemplos Sicu Instrumento nombre; nombreorig; material tostring() Relacion de herencia es_un Guitarra numcajas; nummastil; numagujeroacus; totalcuerdas; totalcuerdas();

17 Ejemplos Para efectos de representar mejor los instrumentos por nombres mas globales se cambiara los nombres de las subclases por Viento y Cuerda respectivamente. Instrumento nombre; nombreorig; material tostring() numhileras totaltubos() numtubos() Viento Cuerda numcajas; nummastil; numagujeroacus; totalcuerdas; totalcuerdas();

18 Concepto de Herencia Es un mecanismo de abstracción que consiste en derivar nuevas clases a partir de otras ya existentes. La nueva clase contendrá automáticamente TODOS o ALGUNOS atributos y Métodos de la clase ya existente Clase ya existente Nueva clase

19 Concepto de Herencia Es un mecanismo de abstracción que consiste en derivar nuevas clases a partir de otras ya existentes. La nueva clase contendrá automáticamente TODOS o ALGUNOS atributos y Métodos de la clase ya existente Clase ya existente Nueva clase

20 Herencia Tambien el programador puede: Añadir, nuevas variables (atributos) y métodos a la nueva clase Modificar, las variables y métodos heredados La clase ya existente (original) que se usa para derivar una clase nueva se llama PADRE o SUPERCLASE. La clase derivada se llama HIJA o SUBCLASE Clase PADRE Clase HIJA

21 Herencia y la relacion es_un El proceso de derivación de una clase por herencia corresponde a la existencia de una relación particular entre las dos clases (padre-hija): esa relación es la denominada es_un Por ejemplo: Rapiña Ave Corral Representacion simbólica

22 Herencia y la relacion es_un Cuando declaramos una clase A como una subclase de B, nos debemos preguntar es A un B?. Esta no es la única manera de usar herencia, pero es muy útil para empezar. Si una entidad A es una forma especializada de otra entidad B, esto es, A es una B, entonces debemos modelarlas usando herencia. B Declarar A como una subclase de B A

23 Extends, palabra reservada Sintaxis básica para denotar herencia: Class subclase extends { // Contenido de la clase } A superclase B B Palabra reservada para indicar que una clase nueva esta siendo derivada de otra. A

24 Aplicando conceptos Suponiendo que Gallina Pato Cóndor Alcón Pavo Real Buho Aguila Es una representacion de una clase AVE

25 Aplicando conceptos AVE Gallina Pato Cóndor Alcón Pavo Común Buho Aguila

26 Aplicando conceptos AVE Atributos: Alas Plumas Patas Metodos: Volar Empollar Gallina Pavo Común Cóndor Aguila Pato Alcón Buho AVEs de corral AVEs de rapiña Que cosas son propias de cada tipo?

27 Constructores y herencia Recordemos que los constructores sirven para inicializar los atributos de las clases, es decir, establecen su estado inicial. En las clases derivadas o subclases de una superclase, los constructores, además de establecer el estado inicial de su propia subclase, deben establecer el estado inicial de la superclase. Para realizar la acción descrita, los constructores de las subclases tienen la posibilidad de invocar a los constructores de su superclase. La sintaxis para esto es: super(parámetros) // donde puede haber cero o mas parametros La llamada a super en caso de utilizarse, debe ser obligatoriamente la primera instrucción en el cuerpo del constructor de la subclase.

28 Constructores y herencia A diferencia de otros miembros de una superclase, los constructores no son heredados. Cuando en un constructor de una subclase no se utiliza la instrucción super, el compilador inserta automáticamente super() como primera instrucción. Esto puede dar lugar a errores de compilación, puesto que si en la superclase hemos definido algún constructor y no el constructor super(), el compilador no encontrará este constructor.

29 Constructores y herencia class B { private int peso; private String tipo; public B (int peso){ this.peso = peso; tipo = AAA ; }. } Class A extends B { private String nombre; public A (String nom){ super(); // Llamada al constructor de la superclase ERROR!!! nombre = nom; }. } Porque hemos declarado un constructor en la clase B

30 Constructores y herencia class B { private int peso; private String tipo; public B(){ super(); }. } Si en la superclase no hemos definido ningún constructor, no existirán problemas, puesto que super() es el constructor por defecto que crea el compilador de java, cuando nosotros no definimos otro constructor.

31 Jerarquia de clases Se refiere al hecho de derivar a partir de una clase padre otras clases hijas, a su vez, de las clases hijas pueden derivarse otras en este caso consideradas como nietas, y asi sucesivamente, hasta un nivel ilimitado. El mecanismo de herencia es transitivo, es decir, los atributos y métodos de la clase padre pasan a las hijas y de estas a sus descendientes (incluyendo los nuevos atributos y métodos de la clase hija)

32 Modificadores de acceso protected: visible y accesible a las instancias de la clase y de las clases descendientes. private: accesible sólo a las instancias de la clase. public: accesible a todos.

33 Sobrecarga (repasando ) Sobrecarga de métodos, permite definir en una clase varios métodos con el mismo nombre, mismo tipo de retorno pero diferente número de parámetros. Ejemplo: Sea la clase A que tiene los siguientes metodos sobrecargados. void calculararea(double ancho, double alto, double prof, String tipomed) void calculararea(string tipomed, double ancho, double alto, double prof) void calculararea(double ancho, String tipomed, double alto, double prof) void calculararea(double ancho, double alto, double prof, String tipomed) void calculararea(string tipomed)

34 Sobrecarga (repasando ) Sobrecarga de constructores, permite definir en una clase varios constructores con diferente número de parámetros. Ejemplo: Sea la clase Usuario. class Usuario{ private String nombre; private int edad; private String direccion; /* El constructor de la clase */ Usuario( ) { nombre = null; edad = 0; direccion = null; } Usuario(String nom, int ed, String dir) { nombre = nom; edad = ed; direccion = dir; }

35 Sobreescritura Sobreescritura La sobreescritura de métodos se da cuando existe herencia, es decir: cuando definimos un método con la misma firma (tipo de retorno, nombre y parámetros) que otro que se hereda. Por ejemplo: Sea la clase B extends de A A metodop(int a, int b) { a+b; } B metodop(int a, int b) { System.out.println( a +a+ + b +b); }

36 Polimorfismo El polimorfismo ( poli = muchas, morfismo = formas ) es una de las propiedades importantes de la Programación Orientada a Objetos. Esta muy relacionado con el concepto de herencia, por tanto es necesario comprender bien lo qué es herencia El polimorfismo significa que objetos similares pueden responder al mismo mensaje de diferentes maneras.

37 Polimorfismo Significa que clases de diferentes tipos puedan ser referenciados por una misma variable. Ejemplo. Sea: Mostrar() B Mostrar() A C Mostrar() A a = new A(); B b = new B(); C c = new C(); A poli; poli = a; poli.mostrar(); poli = b; poli.mostrar(); Siendo poli una variable polimorfica

38 Polimorfismo El polimorfismo es el mecanismo mediante el cual una referencia poli puede referenciar a cualquier objeto de la clase padre o a un objeto de la(s) subclase(s), para el ejemplo a o b. Generalmente en una clase padre se declara un método (el que es usado de forma polimófica). Ese mismo método, se sobreescribe en las clases hijas, de esta forma existirán métodos tanto en la clase padre como en las hijas con la misma firma (mismo nombre, mismo numero de parametros con los mismos tipos y, mismo tipo de retorno).

39 Ejemplo: Euforia Euforia es un programa que permite almacenar información acerca de CDs y DVDs. La idea es crear un catálogo de todos los CDs y DVDs marcando aquellos de los que somos dueños. Su funcionalidad incluye lo siguiente: Permite ingresar información de CDs y DVDs por separado. Guarda la información de forma permanente, con la posibilidad de permitir su uso en un futuro en una BD. Por el momento no provee un método de búsqueda para encontrar, todos los CDs de cierto artista en la base de datos, ó todos los DVDs de un director. Muestra la lista de los CDs ó DVDs que figuran en la base de datos.

40 Ejemplo: Euforia Euforia define dos clases: CD y DVD, a partir de estas dos podemos crear tantos objetos CDs o DVDs como necesitemos. Sin embargo a parte de estas dos clases necesitaremos un objeto base_de_datos para almacenar la colección de CDs o DVDs.

41 Ejemplo: Euforia El objeto base_de_datos contiene entonces dos colecciones de objetos. Así: ArrayList<CD> ArrayList<DVD> De esta forma cada colección contendrá ya sea a todos los CDs o DVDs

42 Ejemplo: Euforia Gráficamente se puede ver como :BD cds dvds :ArrayList<CD> :CD :CD :CD :ArrayList<DVD> :DVD :DVD :DVD :DVD

43 Ejemplo: Euforia Veamos el modelo del proyecto Euforia versión 1 La información que manejan las clases: DVD y CD son:

44 Clases y Objetos: Euforia public class DVD { private String titulo; private String director; private int duracion; private boolean bandera; private String comentario; } public class CD { private String titulo; private String artista; private int numerodepistas; private int duracion; private boolean bandera; private String comentario; } Analizando el código ambas son muy similares?

45 Clases y Objetos: Euforia Lo que en en consecuencia significa que existe duplicación de código. La duplicación de código trae problemas como: Escribir el código dos veces Ante posibles cambios, hay que actualizar el código dos veces. Es más fácil cometer errores Mantener el programa es difícil También podemos encontrar duplicidad de código. Por ejemplo en el método imprime() de CD que es similar al de DVD.

46 Clases y Objetos: Euforia public void imprime() { System.out.print("DVD: " + titulo + " (" + duracion + " mins)"); if(bandera) { System.out.println("*"); } else { System.out.println(); } System.out.println(" " + director); System.out.println(" " + comentario); }

47 Clases y Objetos: Euforia Qué pasaría si, deseáramos incorporar una clase para representar un cuento ó o una revista?. Qué información como datos principales tiene un libro? Título Autor NroPag FechaEdic Editorial Comentario

48 Clases y Objetos: Euforia Tanto el cuento como la revista, tienen información muy similar y ésta a su vez también es similar a la información ya sea del CD y DVD. Seguro de seguir en esta lógica tendríamos que volver a escribir un código muy similar a la escrita para el CD y DVD para el cuento o la revista, lo que en consecuencia genera aún más duplicidad en el código

49 Clases y Objetos: Euforia Qué hacer entonces?. Utilizar HERENCIA!

50 Usando herencia La herencia es un mecanismo que provee una solución al problema de duplicación de código. La idea es simple. Por ej: en vez de definir clases completamente independientes para CD y DVD (ó para cuento y revista), primero definimos una clase que contiene todos las cosas comunes de ambas. A esta clase llamaremos Item. Luego declaramos que: Un CD es un Item Un DVD es un Item

51 Usando herencia Finalmente, añadimos los detalles extras que se necesitan para un CD en la clase CD y de igual forma para un DVD en la clase DVD. La característica esencial de esta técnica es que necesitamos describir las carácteristicas comunes solo una vez Veamos ahora el siguiente diagrama

52 Usando herencia Item, define todos los campos y métodos comunes a CD y DVD Item Titulo duracion bandera comentario setcomentario getcomentario setpropietario getpropietario imprime CD y DVD, definen solamente los campos y métodos que son únicos en cada clase particular. CD artista numberdepistas getartista GetNumeroDePistas DVD Director getdirector

53 Usando herencia Entonces, aprenderemos una nueva terminología de la POO. Por ejemplo la lectura del gráfico anterior sería: La clase CD hereda de la clase Item Si traducimos a Java class CD extends class Item Una palabra que define la relación de herencia

54 Usando herencia Item, es conocida como Clase Padre o Superclase Item tituo duracion bandera comentario setcomentario getcomentario setpropietario getpropietario imprime CD y DVD, se conocen Como clases hijas o Subclases CD artista numberdepistas getartista GetNumeroDePistas DVD Director getdirector

55 Usando herencia La herencia también es conocida como la relación es_un La razón es que una subclase es_una especialización de una superclase Para el ejemplo sería Un CD es_un Item Un DVD es_un Item Si analizamos con un poquito más de detalle el ejmplo, podemos encontrar que la clase CD tiene lo mismo que Item y más

56 Usando herencia Esto se debe a que comparten los mismos campos y metodos CD e Item. Además que CD puede adicionalmente tener otros como: artista numerodepistas getartista getnumerodepistas De igual forma sucede con DVD

57 Jerarquía en herencia La herencia puede ser algo mucho más general que el ejempo presentado, es decir: mas de dos subclases pueden heredar de la misma superclase, y las subclases se pueden convertir en superclases de otras subclases.

58 Jerarquía en herencia Por ejemplo: Animal La herencia es una técnica de abstracción, que permite categorizar clases de objetos bajo ciertos criterios. Ayuda a Especificar características de estas clases Invertebrado Vertebrado Reptil Ave Mamífero Oso

59 Herencia y acceso correcto Los miembros definidos como públicos ya sea en la superclase o subclase serán accesibles por objetos de otras clases. En cambio los miembros definidos como privados serán inaccesibles por objetos de otras clases. Esto significa que la privacidad se aplica entre una subclase y su superclase. Una subclase no puede acceder a los miembros privados de su superclase sino es por medio de métodos.

60 Herencia e inicialización Cuando creamos el objeto CD, se pasa varios parámetros al constructor del CD: public CD(String eltitulo, String elartista, int pistas, int tiempo) { }. Los parámetros marcados con óvalo rojo contienen valores para campos definidos en la clase Item y en cambio los valores en color naranja serán asignados a campos definidos en la clase CD.

61 Herencia e inicialización Por qué sucede esto? Justamente porque estamos utilizando el concepto de herencia, de esta forma los campos inicializados en la clase padre, cuando creemos un objeto de la clase hija no se requiere nuevamente inicializarlas. En Java es posible conseguirlo con la referencia super, de acuerdo con la siguiente sintaxis: super(lista parametros); Especifica los parámetros del constructor padre

62 Herencia e inicialización El constructor de CD recibe parámetros que necesita inicializar en ambos Items public CD(String eltitulo, String elartista, int pistas, int tiempo) { super(eltitulo, tiempo); } La palabra super, llama al constructor de la superclase, en este caso el constructor de Item es ejecutado como parte del constructor de CD eltitulo, tiempo son parámetrosque han diso inicializados en el constructor de la clase padre de CD, es decir, la clase Item

63 Euforia: añadiendo otros tipos Trabajaremos con jerarquía de clases. Añadiremos información acerca de Juego de video y luego definiremos una nueva subclase de Item llamada VideoJuego. En este caso VideoJuego hereda automáticamente campos y métodos ya definidos en Item.

64 Euforia: añadiendo otros tipos ITEM titulo duracion bandera comentario setcomentario getcomentario setpropietario getpropietario Imprime CD artista numerodepistas DVD director VideoJuego numerodejugadores sistemaoperativo

65 Euforia: añadiendo otros tipos Este ejemplo ilustra el reuso de código. Es decir, el código escrito para CDs y DVDs en la clase Item, también puede ser usado por la clase VideoJuego. El reuso de código es un gran beneficio que se consigue con facilidad con herencia. Con el reuso de código sólo aquel código que es nuevo o diferente a Item es añadido.

66 Euforia: añadiendo otros tipos Supongamos que deseamos añadir una cuarta subclase de la clase Item. OJO! lo aconsejable es, que cada vez que se desee añadir otra subclase debemos primero analizar con mucho cuidado las relaciones. Por ejemplo si añadimos un juego de cartas (CartasJuego), vemos que al igual que VideoJuego tendrá un atributo número de jugadores. De definir en ambas clases este atributo estaríamos duplicando código.

67 Euforia: añadiendo otros tipos Qué hacer entonces?, tal vez la primera idea podría ser que CartasJuego sea subclase de VideoJuego. Pero, imagenemos que VideoJuego almacena información acerca del tipo de sistema operativo en la que funciona el juego, información que no tiene sentido para CartasJuego. La solución es refactorizar la jerarquía de clases. Introduciendo una nueva superclase para todos los juegos con el nombre de Juego, el cuál se convertirá en una subclase de Item. Dejando la información general relacionada al número de jugadores en Juego

68 Euforia: añadiendo otros tipos ITEM titulo duración bandera comentario CD artista numerodepistas DVD director Juego numerodejugadores VideoJuego sistemaoperativo CartasJuego

69 Ventajas de la herencia Resumiendo las ventajas que incorpora el uso de herencia: Evita la duplicación de código Reuso de código Facilita el mantenimiento del código Hace extendible al código

70 Subtipos Para comprender el concepto de subtipos veamos el modelo de la nueva versión del proyecto Euforia2

71 Subtipos Comparando los códigos de la clase BD de Euforia versión1 y Euforia versión 2 public void insertacd(cd uncd) public void insertadvd(dvd undvd) En la nueva versión, tenemos un simple método que sirve para el mismo propósito public void insertaitem(item elitem) Estos dos metodos permiten añadir items a la base de datos

72 Subtipos Los parametros aquí public void insertacd(cd uncd) public void insertadvd(dvd undvd) Estan definidos con tipos CD y DVD, asegurando el paso de objetos CD y DVD a estos métodos, puesto que el tipo de parámetros actuales debe emparejar con los tipos de parámetros formales, es decir deben ambos ser del mismo tipo.

73 Subclases y Subtipos El tipo de un objeto creado a partir de la clase DVD es DVD. Pero también se tiene el caso en que las clases tienen sus subclases. Así, los tipos definidos en las clases pueden tener sus subtipos, Por ejm. El tipo DVD es un subtipo del tipo Item.

74 Variables y Subtipos Cuando se desea asignar un objeto a una variable, el tipo del objeto debe emparejar el tipo de la variable. Por ejemplo, Auto miauto = new Auto(); Esta asignación es válida porque un objeto de tipo Auto es asignado a una variable declarada para contener objetos de tipo Auto.

75 Variables y Subtipos Ahora veamos cómo se procede a declarar una variable cuando hay herencia. Partamos de la siguiente figura: Las siguientes asignaciones son correctas: Vehículo v1 = new Vehículo(); Vehículo v2 = new Auto(); Vehículo v3 = new Bicicleta(); Auto Vehículo Bicicleta

76 Variables y Subtipos Para el ejemplo: Una variable declarada de tipo Vehículo, contiene a vehículos, pero también siguiendo la lectura del diagrama encontramos que: Un Auto es un Vehículo, Por lo tanto es correcto, almacenar en una variable de tipo Vehículo un Auto

77 Variables y Subtipos A este principio se conoce como substitución, es decir: En lenguajes orientados a objetos nosotros podemos substituir un objeto subclase (Auto) donde un objeto superclase (Vehículo) es esperado. Así: Vehículo v2 = new Auto ();

78 Variables y Subtipos Sin embargo hacer al revés, no está permitido. Por ej. Auto a1 = new Vehículo(); porque intenta almacenar un objeto Vehículo (superclase) en un objeto Auto (subclase). El compilador de Java en este caso reportará ERROR Tampoco podemos Auto a2 = new Bicicleta(); El tipo de una bicicleta no es un subtipo de Auto. En este caso ambos objetos son de la subclase.

79 Subtipos y paso de parámetros Paso de parámetro: es asignar un parámetro actual a una variable del parámetro formal. Cuando tenemos herencia es correcto pasar un objeto cuyo tipo pertenece a la subclase como parámetro a un objeto de tipo de la superclase. Por ejem.: Un objeto del tipo DVD a un método que tiene como parámetro el tipo Item

80 Subtipos y paso de parámetros Así: public class BD { } Si usamos el método insertaritem para añadir CDs o DVDs en la base de datos: BD db = new BD(); DVD dvd = new DVD( ); CD cd = new CD( ); public void insertaritem(item elitem) { } db.insertaritem(dvd); db.insertaritem(cd);

81 Variables polimórficas Las variables que contienen tipos objeto en Java son variables polimórficas. El término polimórfico se refiere literalmente a muchas formas, esto se refiere a que una variable puede contener objetos de diferentes tipos. Por ejm: podemos declarar una variable elitem de tipo Item, utilizando la variable elitem podemos referenciar tanto a CD o DVD

82 Variables polimórficas Veamos el siguiente ej.: public void lista() { for(item item : items) { item.imprime(); System.out.println(); // empty line between items } } Partimos de una lista de items contenidos en un ArrayList items, conseguimos cada item de la lista invocando al método imprime(), notar que los items conseguidos son del tipo CD o DVD y no del tipo Item

83 Casting Si se conoce que una variable supertipo (v) contiene a un objeto subtipo (a), la asignación siguiente esta permitida: Vehículo v; Auto a = new Auto(); v = a; // Correcto a = v; // Incorrecto, porque intenta asignar una variable supertipo a una subtipo Sin embargo la última línea podemos hacer que sea correcto haciendo uso del operador de casting

84 Casting v = a; Esto significa que, la variable v contiene un objeto a del tipo auto, esto es correcto! Para el caso en el que: a = v; Si utilizamos el operador cast para: a = (Auto)v; // Correcto

85 Casting Veamos más ejemplos: Vehículo v; Auto a; Bicicleta b; a = new Auto(); v = a; // Correcto b = (Bicicleta) a; // Error, tiempo de compilación b = (Bicicleta) v; // Error, tiempo de ejecución

86 Casting Analizando los errores: b = (Bicicleta) a; // Error, tiempo de compilación Encontramos que en este caso lo que se intenta hacer que un objeto Auto sea contenido en un objeto bicicleta, siendo que, entre Auto y Bicicleta no hay una relación de supertipo/subtipo.

87 Casting Analizando los errores para: b = (Bicicleta) v; // Error, tiempo de ejecución En tiempo de compilación deja pasar el error porque encuentra entre el objeto b y el objeto v una relación de supertipo/subtipo y un Vehículo puede contener potencialemente a una Bicicleta. En cambio en tiempo de ejecución detecta error porque, el objeto en v no es un Vehículo sino es un Auto ( v = a; ) por lo que el programa deja de ejecutarse

88 La clase Object Todas las clases tienen una superclase. Hasta ahora, hemos aprendido que las superclases aparecen solo cuando se hace una declaración explícita de la forma como: class CD extends Item Sin embargo, en la librería estándar de Java existe una clase Object que sirve como una superclase para todos los objetos.

89 La clase Object Por ejemplo: public class Persona { } public class Persona extends Object { } Es equivalente a El compilador de Java automáticamente inserta la superclase Object para todas las clases que no tienen explicitado la declaración extends

90 La clase Object Por ejemplo: Object String Persona Vehículo Cada clase simple hereda de Object ya sea directa o indirectamente Auto Bicicleta

91 La clase Object Tener una clase común para todos los objetos sirve para dos propósitos: 1. Se pueden declarar variables polimórficas de tipo Object para contener cualquier objeto (muchas veces esto no es útil) 2. La clase Object puede definir algunos métodos que son automáticamente disponibles para cada objeto existente. Esto llega ser mucho más interesante!

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

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

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

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

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

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

HERENCIA. Corina Flores Villarroel. UMSS - Programa MEMI

HERENCIA. Corina Flores Villarroel. UMSS - Programa MEMI HERENCIA Corina Flores Villarroel corina@memi.umss.edu.bo UMSS - Conceptos Entre los conceptos a saber: Herencia Subtipos Sustitución Variables polimórficas Introducción La programación OO tiene características

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

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

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

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

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

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

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

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

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

Estructura de las Aplicaciones Orientadas a Objetos Herencia y Polimorfismo

Estructura de las Aplicaciones Orientadas a Objetos Herencia y Polimorfismo Estructura de las Aplicaciones Orientadas a Objetos Herencia y Polimorfismo Programación Orientada a Objetos Facultad de Informática Dep. Ingeniería del Software e Inteligencia Artificial Universidad Complutense

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

La ventana de Microsoft Excel

La ventana de Microsoft Excel Actividad N 1 Conceptos básicos de Planilla de Cálculo La ventana del Microsoft Excel y sus partes. Movimiento del cursor. Tipos de datos. Metodología de trabajo con planillas. La ventana de Microsoft

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

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

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

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

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

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

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

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

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

CASO PRÁCTICO DISTRIBUCIÓN DE COSTES

CASO PRÁCTICO DISTRIBUCIÓN DE COSTES CASO PRÁCTICO DISTRIBUCIÓN DE COSTES Nuestra empresa tiene centros de distribución en tres ciudades europeas: Zaragoza, Milán y Burdeos. Hemos solicitado a los responsables de cada uno de los centros que

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

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

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

POO en Java IV: Herencia (Parte 1)

POO en Java IV: Herencia (Parte 1) Herencia POO en Java IV: Herencia (Parte 1) Escuela de Ingeniería Industrial Pontificia Universidad Católica de Valparaíso, Chile fguidi@ucv.cl Es la derivación de una clase a partir de otra existente.

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

GENERAR DOCUMENTOS HTML USANDO LENGUAJE PHP. EJERCICIO RESUELTO EJEMPLO SENCILLO. (CU00733B)

GENERAR DOCUMENTOS HTML USANDO LENGUAJE PHP. EJERCICIO RESUELTO EJEMPLO SENCILLO. (CU00733B) APRENDERAPROGRAMAR.COM GENERAR DOCUMENTOS HTML USANDO LENGUAJE PHP. EJERCICIO RESUELTO EJEMPLO SENCILLO. (CU00733B) Sección: Cursos Categoría: Tutorial básico del programador web: HTML desde cero Fecha

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

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

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

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

SGIC. Propuesta para Plan de Telefonía y Perfiles de Consumo

SGIC. Propuesta para Plan de Telefonía y Perfiles de Consumo SGIC Propuesta para Plan de Telefonía y Perfiles de Consumo A continuación se presenta una propuesta para tratar los planes de telefonía y los perfiles de consumo en el SGIC. Las clases naranjas son las

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

Pruebas de unidad con JUnit

Pruebas de unidad con JUnit Pruebas de unidad con JUnit Cuando se implementa software, resulta recomendable comprobar que el código que hemos escrito funciona correctamente. Para ello, implementamos pruebas que verifican que nuestro

Más detalles

Para crear formularios se utiliza la barra de herramientas Formulario, que se activa a través del comando Ver barra de herramientas.

Para crear formularios se utiliza la barra de herramientas Formulario, que se activa a través del comando Ver barra de herramientas. Formularios TEMA: FORMULARIOS. 1. INTRODUCCIÓN. 2. CREACIÓN DE FORMULARIOS. 3. INTRODUCIR DATOS EN UN FORMULARIO. 4. MODIFICAR UN FORMULARIO 5. MANERAS DE GUARDAR UN FORMULARIO. 6. IMPRIMIR FORMULARIOS.

Más detalles

Partes de un programa en Java. A. Ejemplo de un Programa en Java /* Programa Ejemplo de Java: Muestra una Ventana Archivo: Ejemplo1.

Partes de un programa en Java. A. Ejemplo de un Programa en Java /* Programa Ejemplo de Java: Muestra una Ventana Archivo: Ejemplo1. Partes de un programa en Java A. Ejemplo de un Programa en Java /* class Ejemplo1 { //comienza la clase Ejemplo1. public static void main(string[] args) { // comienza el método main. JFrame miventana;

Más detalles

Pilares de la Orientación a Objetos

Pilares de la Orientación a Objetos Pilares de la Orientación a Objetos Pilares de la Orientación a Objetos Abstracción Relaciones Herencia Encapsulamiento Abstracción La Abstracción es la propiedad que permite seleccionar las características

Más detalles

PRÁCTICAS DE GESTIÓN GANADERA:

PRÁCTICAS DE GESTIÓN GANADERA: PRÁCTICAS DE GESTIÓN GANADERA: MANEJO DE HOJA DE CÁCULO (EXCEL) 1. INTRODUCCIÓN AL MANEJO DE EXCEL La pantalla del programa consta de una barra de herramientas principal y de una amplia cuadrícula compuesta

Más detalles

Impress : Programa de presentaciones de OpenOffice.

Impress : Programa de presentaciones de OpenOffice. Impress : Programa de presentaciones de OpenOffice. Básicamente Impress es un programa de presentaciones proyectadas a través de diapositivas (pantallas completas) que un orador o ponente puede utilizar

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

**NOTA** las partes tachadas todavía no están escritas, se ira actualizando poco a poco el documento

**NOTA** las partes tachadas todavía no están escritas, se ira actualizando poco a poco el documento Simple tutorial we riseup Pequeña introducción a We Riseup #Qué es we.riseup o Crabgrass? #Como esta estructurado We.riseup? Lo Esencial Unirse a un grupo Metodo 1 Metodo 2 Crear contenido #1 ) Crear la

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

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

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

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

MANUAL DEL PROGRAMA DE ASESORAMIENTO (Asesores) Navegador y limpiar caché/cookies...2 Acceso al programa de Asesoramiento... 7

MANUAL DEL PROGRAMA DE ASESORAMIENTO (Asesores) Navegador y limpiar caché/cookies...2 Acceso al programa de Asesoramiento... 7 MANUAL DEL PROGRAMA DE ASESORAMIENTO (Asesores) Índice Pasos previos a la visualización del programa: Navegador y limpiar caché/cookies...2 Acceso al programa de Asesoramiento... 7 Conceptos e información

Más detalles

Liderazgo se genera en el lenguaje

Liderazgo se genera en el lenguaje Liderazgo se genera en el lenguaje Para nosotros, un buen punto de partida para comprender el liderazgo está en el reconocimiento de que éste se da en el lenguaje. El liderazgo es un fenómeno producido

Más detalles

LEER Y ESCRIBIR ARCHIVOS O FICHEROS EN C. FOPEN, FCLOSE, MODOS DE ACCESO READ, WRITE Y APPEND (CU00536F)

LEER Y ESCRIBIR ARCHIVOS O FICHEROS EN C. FOPEN, FCLOSE, MODOS DE ACCESO READ, WRITE Y APPEND (CU00536F) APRENDERAPROGRAMAR.COM LEER Y ESCRIBIR ARCHIVOS O FICHEROS EN C. FOPEN, FCLOSE, MODOS DE ACCESO READ, WRITE Y APPEND (CU00536F) Sección: Cursos Categoría: Curso básico de programación en lenguaje C desde

Más detalles

Yalù Galicia Hernàndez. Yalú Galicia Hdez. (FCC/BUAP)

Yalù Galicia Hernàndez. Yalú Galicia Hdez. (FCC/BUAP) Yalù Galicia Hernàndez Yalú Galicia Hdez. (FCC/BUAP) 1 Introducción Qué es la Programación Orientada a Objetos? Conceptos básicos Abstracción Jerarquía Encapsulación Objeto Clase Herencia Polimorfismo

Más detalles

Modelos y Bases de Datos

Modelos y Bases de Datos Modelos y Bases de Datos MODELOS Y BASES DE DATOS 1 Sesión No. 10 Nombre: Álgebra Relacional Contextualización En qué consiste el álgebra relacional? Se ha planteado hasta el momento cada uno de los procesos

Más detalles

Diseño orientado a los objetos

Diseño orientado a los objetos Diseño orientado a los objetos El Diseño Orientado a los Objetos (DOO) crea una representación del problema del mundo real y la hace corresponder con el ámbito de la solución, que es el software. A diferencia

Más detalles

El proceso de edición digital en Artelope y CTCE

El proceso de edición digital en Artelope y CTCE El proceso de edición digital en Artelope y CTCE Carlos Muñoz Pons Universitat de València carlos.munoz-pons@uv.es Introducción Una de las cuestiones más importantes a la hora de trabajar en proyectos

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

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

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

INVENTARIO INTRODUCCIÓN RESUMEN DE PASOS

INVENTARIO INTRODUCCIÓN RESUMEN DE PASOS INVENTARIO INTRODUCCIÓN Es habitual que en las empresas realicen a final de año un Inventario. Con este proceso se pretende controlar el nivel de stock existente, para iniciar el nuevo ejercicio, conociendo

Más detalles

MANUAL DE USUARIO. Sistema de Administración de Proyectos de Vinculación con la Colectividad (SAPVC) MANUAL DE USUARIO DOCENTE

MANUAL DE USUARIO. Sistema de Administración de Proyectos de Vinculación con la Colectividad (SAPVC) MANUAL DE USUARIO DOCENTE PAGINA: 1 / 17 MANUAL DE USUARIO DOCENTE SISTEMA DE ADMINISTRACIÓN DE PROYECTOS DE VINCULACIÓN CON LA COLECTIVIDAD (SAPVC) UPSE PAGINA: 2 / 17 ÍNDICE 1 Introducción... 3 2 Generalidades del Sistema...

Más detalles

Ejemplo de programa básico en Visual Basic. Option Explicit, Form, Dim, String, etc. (CU00310A)

Ejemplo de programa básico en Visual Basic. Option Explicit, Form, Dim, String, etc. (CU00310A) aprenderaprogramar.com Ejemplo de programa básico en Visual Basic. Option Explicit, Form, Dim, String, etc. (CU00310A) Sección: Cursos Categoría: Curso Visual Basic Nivel I Fecha revisión: 2029 Autor:

Más detalles

MICROSOFT EXCEL 2007. Introducción: Qué es y para qué sirve Excel2007? TECNOLOGIA/ INFORMATICA: MS-EXCEL

MICROSOFT EXCEL 2007. Introducción: Qué es y para qué sirve Excel2007? TECNOLOGIA/ INFORMATICA: MS-EXCEL MICROSOFT EXCEL 2007 Qué es y para qué sirve Excel2007? Excel 2007 es una hoja de cálculo integrada en Microsoft Office. Esto quiere decir que si ya conoces otro programa de Office, como Word, Access,

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

Programación Orientada a Objetos en JAVA

Programación Orientada a Objetos en JAVA Programación Orientada a Objetos en JAVA Jorge Pérez Introducción a la Computación Jorge Pérez Programación Orientada a Objetos en JAVA 1 / 36 Orientación a Objetos OO es un paradigma de modelación y programación

Más detalles

Visual Basic 1. Empleo de módulos y Procedimientos. Procedimientos definidos por el usuario

Visual Basic 1. Empleo de módulos y Procedimientos. Procedimientos definidos por el usuario Empleo de módulos y Procedimientos Procedimientos definidos por el usuario Según lo que hemos visto hasta ahora, Visual Basic, almacena el código en módulos. Hay tres clases de módulos: formularios (.frm),

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

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

Ejercicio Artículo 4.5. Bancos de imágenes y sonido en la Web

Ejercicio Artículo 4.5. Bancos de imágenes y sonido en la Web Maximiliano Díaz Molinaro Ejercicio Artículo 4.5. Bancos de imágenes y sonido en la Web Opción 2. Análisis comparativo de dos de los casos presentados en la unidad: CORBIS y AGE Fotostock. Indicar y argumentar

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

INDICE DEL CURSO APRENDER PROGRAMACIÓN JAVA DESDE CERO. PROGRAMACIÓN ORIENTADA A OBJETOS (CU00601B)

INDICE DEL CURSO APRENDER PROGRAMACIÓN JAVA DESDE CERO. PROGRAMACIÓN ORIENTADA A OBJETOS (CU00601B) APRENDERAPROGRAMAR.COM INDICE DEL CURSO APRENDER PROGRAMACIÓN JAVA DESDE CERO. PROGRAMACIÓN ORIENTADA A OBJETOS (CU00601B) Sección: Cursos Categoría: Curso Aprender programación Java desde cero Fecha revisión:

Más detalles

DESCARGA E INSTALACIÓN DE LA DOCUMENTACIÓN PARA LAS CLASES DEL API DE JAVA. CONSULTAR EN LOCAL O EN INTERNET? (CU00910C)

DESCARGA E INSTALACIÓN DE LA DOCUMENTACIÓN PARA LAS CLASES DEL API DE JAVA. CONSULTAR EN LOCAL O EN INTERNET? (CU00910C) APRENDERAPROGRAMAR.COM DESCARGA E INSTALACIÓN DE LA DOCUMENTACIÓN PARA LAS CLASES DEL API DE JAVA. CONSULTAR EN LOCAL O EN INTERNET? (CU00910C) Sección: Cursos Categoría: Lenguaje de programación Java

Más detalles

Maestría en Bioinformática. Bases de Datos y Sistemas de Información. Diseño Conceptual. Ing. Alfonso Vicente, PMP alfonso.vicente@logos.com.

Maestría en Bioinformática. Bases de Datos y Sistemas de Información. Diseño Conceptual. Ing. Alfonso Vicente, PMP alfonso.vicente@logos.com. Maestría en Bioinformática Bases de Datos y Sistemas de Información Diseño Conceptual Ing. Alfonso Vicente, PMP alfonso.vicente@logos.com.uy Agenda Conceptos Elementos del MER Herramientas Diseño conceptual

Más detalles

Análisis de esquemas XML [1]

Análisis de esquemas XML [1] Análisis de esquemas XML [1] Dirigido a: Administradores de Bases de Datos Área: Bases de Datos Autor: Pablo F. Dueñas Servicios Profesionales Danysoft Resumen Un esquema XML describe la estructura de

Más detalles

Elementos de Microsoft Word

Elementos de Microsoft Word Contenido 1. Distintas formas de iniciar Word 2007... 2 2. Ayuda de Word... 2 3. Las barras de herramientas... 3 4. Funcionamiento de las pestañas. Cómo funcionan?... 4 5. Personalizar barra de acceso

Más detalles

Actividades para mejoras. Actividades donde se evalúa constantemente todo el proceso del proyecto para evitar errores y eficientar los procesos.

Actividades para mejoras. Actividades donde se evalúa constantemente todo el proceso del proyecto para evitar errores y eficientar los procesos. Apéndice C. Glosario A Actividades de coordinación entre grupos. Son dinámicas y canales de comunicación cuyo objetivo es facilitar el trabajo entre los distintos equipos del proyecto. Actividades integradas

Más detalles

Este programa mueve cada motor de forma independiente, y cuando termina una línea pasa a la siguiente.

Este programa mueve cada motor de forma independiente, y cuando termina una línea pasa a la siguiente. 1 Programa 1 Utilizando el icono añadimos un movimiento a por cada línea de programa. Podremos usar 8 posibles líneas de programa (Base, Hombro, Codo, Muñeca, Pinza, Salida 1, Salida 2 y línea en blanco).

Más detalles

15. Parámetros o argumentos

15. Parámetros o argumentos Programación orientada a objetos con Java 161 15. Parámetros o argumentos Objetivos: a) Profundizar en el concepto de parámetro de una clase e indicar su mecanismo de funcionamiento. b) Interpretar el

Más detalles

UTILIZACION DE ESQUEMAS XML DE LA AGENCIA TRIBUTARIA PARA CALCULO RETENCIONES

UTILIZACION DE ESQUEMAS XML DE LA AGENCIA TRIBUTARIA PARA CALCULO RETENCIONES UTILIZACION DE ESQUEMAS XML DE LA AGENCIA TRIBUTARIA PARA CALCULO RETENCIONES INTRODUCCION El conjunto de herramientas de ayuda aportados por la Agencia Tributaria, para facilitar las obligaciones fiscales

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

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

Lección 24: Lenguaje algebraico y sustituciones

Lección 24: Lenguaje algebraico y sustituciones LECCIÓN Lección : Lenguaje algebraico y sustituciones En lecciones anteriores usted ya trabajó con ecuaciones. Las ecuaciones expresan una igualdad entre ciertas relaciones numéricas en las que se desconoce

Más detalles

FOCO GESTIÓN DE GRUPOS

FOCO GESTIÓN DE GRUPOS FOCO GESTIÓN DE GRUPOS MANUAL DE USUARIO CONVENIO DE PRÁCTICAS ÍNDICE 1. INTRODUCCIÓN... 3 2. BÚSQUEDA DE CONVENIOS... 3 3. ALTA CONVENIO... 5 4. MODIFICACIÓN DEL CONVENIO... 18 5. ELIMINAR CONVENIO...

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

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

HERRAMIENTAS DE ACCESS ACCESS 2010. Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

HERRAMIENTAS DE ACCESS ACCESS 2010. Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE HERRAMIENTAS DE ACCESS ACCESS 2010 Manual de Referencia para usuarios Salomón Ccance CCANCE WEBSITE HERRAMIENTAS DE ACCESS En esta unidad veremos algunas de las herramientas incorporadas de Access que

Más detalles

El lenguaje de programación Java

El lenguaje de programación Java Departament d Arquitectura de Computadors El lenguaje de programación Java Java (I) Orientado a objetos Ejecutado por una maquina virtual Independiente de la plataforma Multithreaded Orientado a la red

Más detalles

Curso Internet Básico - Aularagon

Curso Internet Básico - Aularagon Antes de empezar es necesario que tengas claro algunas cosas: para configurar esta cuenta de correo, debes saber que el POP y el SMTP en este caso son mail.aragon.es; esta cuenta de correo hay que solicitarla

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

GUÍA RÁPIDA DE TRABAJOS CON ARCHIVOS.

GUÍA RÁPIDA DE TRABAJOS CON ARCHIVOS. GUÍA RÁPIDA DE TRABAJOS CON ARCHIVOS. 1 Direcciones o Ubicaciones, Carpetas y Archivos Botones de navegación. El botón Atrás permite volver a carpetas que hemos examinado anteriormente. El botón Arriba

Más detalles

TÉCNICAS DE ESTUDIO EN EL TERCER CICLO DE EDUCACIÓN PRIMARIA

TÉCNICAS DE ESTUDIO EN EL TERCER CICLO DE EDUCACIÓN PRIMARIA TÉCNICAS DE ESTUDIO EN EL TERCER CICLO DE EDUCACIÓN PRIMARIA Judith Domínguez Martín Diplomada en Educ. Infantil y Audición y Lenguaje. Maestra de Educ. Primaria. A lo largo de la etapa de educación primaria

Más detalles

5.2.1 La Página Principal

5.2.1 La Página Principal 5.2 Las Páginas WEB Una página Web es un documento electrónico escrito en un lenguaje de ordenador llamado HTML, o Hypertext Markup Language (lenguaje de marcación de hipertexto). Como ya hemos dicho,

Más detalles

2. ABRIR UN NUEVO DOCUMENTO DE TRABAJO

2. ABRIR UN NUEVO DOCUMENTO DE TRABAJO 2. ABRIR UN NUEVO DOCUMENTO DE TRABAJO 18 Introducción Hasta ahora hemos visto como abrir una imagen para tratarla en Photoshop CS3, y a guardarla en cualquiera de los estados en los que se encuentre en

Más detalles

LENGUAJES DE CONSULTA ORIENTADOS A OBJETOS

LENGUAJES DE CONSULTA ORIENTADOS A OBJETOS LENGUAJES DE CONSULTA ORIENTADOS A OBJETOS Los lenguajes de consulta constituyen una funcionalidad importante de los SGBDOO. El usuario puede recuperar los datos especificando simplemente las condiciones

Más detalles

Procedimientos Géminis-Nínive Balances y Libros Oficiales. Extracción de Balances y Libros Oficiales.

Procedimientos Géminis-Nínive Balances y Libros Oficiales. Extracción de Balances y Libros Oficiales. Página 1 de 6 Extracción de. Para la obtención de los Libros Oficiales y por extensión de cualquier balance personalizado a sus necesidades, hemos diseñado nuevos procedimientos de definición de cuentas,

Más detalles