Tema 1. Introducción a los TAD

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

Download "Tema 1. Introducción a los TAD"

Transcripción

1 Tema 1. Introducción a los TAD Objetivos En este tema nos ocupamos inicialmente del concepto de abstracción, dedicando la mayor atención a la abstracción de datos, estudiando aspectos relacionados con su especificación e implementación. También serán objeto de atención la forma en que los lenguajes de programación soportan la abstracción de datos y algunas propiedades de los tipos abstractos de datos (TAD). Además, veremos algunos ejemplos de TAD, presentando tanto su especificación como su implementación usando el lenguaje de programación Java. Planificación Se estiman 4 horas. Contenidos 1. Abstracción de datos 1.1. Especificación 1.2. Implementación 1.3. Lenguajes de programación 1.4. Propiedades de los TAD Modificabilidad Clases de operaciones 2. Ejemplo Bibliografía Básica Franch Gutiérrez, X., Estructuras de datos. Especificación, Diseño e implementación. Ediciones UPC, Págs , Liskov, B. y J. Guttag, Program Development in Java: Abstraction, Specification, and Object-Oriented Design, Addison-Wesley, Págs. 1-13, 39-56, Departamento de Informática 1 Reyes Pavón

2 Complementaria Liskov, B. y J. Guttag, Program Development in Java: Abstraction, Specification, and Object-Oriented Design, Addison-Wesley, Págs , , Peña Marí, R., Diseño de Programas: Formalismo y Abstracción, 2ª ed., Prentice Hall, Págs Departamento de Informática 2 Reyes Pavón

3 Tema 1. Introducción a los TAD 1. Abstracción de datos Abstracción de datos o tipo abstracto de datos (TAD): nuevo tipo de dato más un conjunto de operaciones que permiten manipular los objetos de dicho tipo Abstracto los objetos del tipo deben ser manipulados mediante sus operaciones, sin necesidad de ninguna noción adicional sobre el tipo Objeto (no variable) Los TAD permiten: Añadir nuevos tipos de datos: permiten definir y utilizar tipos de datos distintos a los predefinidos en el lenguaje de programación Encapsular información: Es posible localizar la definición del tipo y el código de todas las operaciones sobre ese tipo en una determinada sección del programa Un cambio en el TAD revisar una pequeña sección del programa (no hay detalles en otras partes que puedan ocasionar errores relacionados con ese tipo de datos) Forma de organizar los programas en unidades lógicas que en muchos lenguajes de programación pueden compilarse separadamente Ocultar la representación: Los TAD se estructuran en dos partes: interfaz e implementación Interfaz: lista de operaciones junto con sus argumentos (tipo de los parámetros de entrada y el Departamento de Informática 3 Reyes Pavón

4 tipo del resultado). Es la única parte visible al usuario del TAD Implementación: lugar en donde se define cómo realizar las operaciones del TAD. Esta parte sólo es visible al programador basta con preservar la integridad de la información en esta sección, donde los posibles errores estarán controlados Para poder utilizar un TAD es necesario disponer de su especificación: características del tipo de dato + significado de las operaciones (especificación de función) Interfaz Implementación Programa Solicita operación Resultado operación Características + Operaciones Estructura de datos + algoritmos El código de las unidades de programa que usan el tipo no dependen de su implementación La implementación puede cambiar sin afectar a las unidades de programa que usan el tipo Se garantiza la fiabilidad de las unidades de programa que usan un TAD y la integridad de los objetos de ese tipo Departamento de Informática 4 Reyes Pavón

5 Objetivo: separar el uso del tipo de dato de su implementación dividir el diseño de un TAD en dos partes: especificación e implementación Especificación: define como se puede utilizar el tipo de dato = sintaxis + semántica Implementación: define una posible realización del tipo de dato = representación (o estructura de datos) + algoritmos de las operaciones (en función de dicha estructura de datos) TAD Especificación Implementación Sintaxis Semántica 1.1. Especificación Representación Algoritmos Especificación de un TAD = descripción de los objetos del tipo de dato + operaciones realizables sobre ellos Propiedades de la especificación: Precisa: dice sólo lo imprescindible General: adaptable a diferentes contextos Legible: debe transmitir el comportamiento del tipo No ambigua: debe evitar dobles interpretaciones Departamento de Informática 5 Reyes Pavón

6 Formas de realizar la especificación: Formal: mediante axiomas algebraicos Informal: usando el lenguaje natural. Para conseguir mayor precisión se utilizan un conjunto de cláusulas especificación cuasi-formal Especificación cuasi-formal del TAD Esquema de especificación Nombre del tipo de dato Declaración de tipos: tipos de datos que va a utilizar el TAD (tipos predefinidos de un lenguaje de programación u otros TAD) Características: descripción de los objetos mediante otros previsiblemente comprensibles para el lector de la especificación. Indica si los objetos son o no modificables Operaciones: especificación de cada operación siguiendo una notación cuasi-formal Departamento de Informática 6 Reyes Pavón

7 Especificación de cada operación Permite centrarnos en qué hace una función y no en cómo lo hace. Tipos: Formal: mediante asertos de entrada y salida (precondición y postcondición) Informal usando lenguaje natural ambigüedad. Para conseguir mayor precisión se puede realizar una cierta formalización mediante cláusulas especificación cuasiformal Cláusulas de la especificación cuasi-formal: Necesita: Conjunto de condiciones suficientes para asegurar la ejecución adecuada de la función restricciones bajo las cuales se define la abstracción. Ejs: función raizcuadrada (x: real) devuelve real; Necesita: x 0 Produce: Devuelve la raíz cuadrada de x función buscaenorden (a: vector de entero; x: entero) devuelve entero; Necesita: a está ordenado en orden ascendente Produce: Si x está en a, devuelve el índice del vector donde está almacenada. En caso contrario, devuelve 1. Modifica: Nombres de las entradas (argumentos o variables no locales) que se modifican en la invocación a la función identificación de efectos laterales. Produce: Comportamiento de la función para todas las entradas que cumplen la cláusula necesita: qué salidas produce y qué modificaciones se realizan sobre las variables indicadas en la cláusula modifica. Se asume que la cláusula necesita se satisface y no se dice nada sobre el comportamiento de la función en caso contrario. Abstracción parcial vs. total: Departamento de Informática 7 Reyes Pavón

8 Parcial: presenta una cláusula necesita Desventaja: queda en manos del usuario comprobar si se cumplen las restricciones de la cláusula necesita Ventaja: en ocasiones pueden implementarse más eficientemente que las totales (ej: buscaenorden) o de manera más simple (con menos comprobaciones) Total: caso contrario son más seguras Cláusula necesita vs. excepciones Cláusula necesita: Cuando la función va a utilizarse sólo en un contexto muy limitado, en el que es fácil verificar que se satisfacen las restricciones, y si esto supone una implementación más eficiente o más simple Excepciones: Siempre que sea posible, la implementación debería comprobar las restricciones de la cláusula necesita y lanzar una excepción en caso de que no se satisfagan. Puede no tener sentido como en buscaenorden La cláusula produce debe identificar las condiciones que provocan la excepción Si una excepción se produce para un cierto subconjunto de valores de los argumentos, este subconjunto no debería aparecer en la cláusula necesita Ejemplo de conversión de una abstracción parcial en total: función raizcuadrada (x: real) devuelve real lanza ExcepcionNegativo Produce: Si x < 0 lanza ExcepcionNegativo, sino devuelve la raíz cuadrada de x Departamento de Informática 8 Reyes Pavón

9 Ejemplo: especificación cuasi-formal del tipo racional Tipo Racional Declaración de tipos Racional, Entero Características El valor abstracto de un objeto del tipo será un número racional Los objetos no son modificables Operaciones función ConstruirRacional (n, d: Entero) devuelve Racional lanza ExcepciónDenominadorCero Produce: Si d = 0 lanza ExcepciónDenominadorCero, sino devuelve el número racional n/d función Numerador (r: Racional) devuelve Entero Produce: el numerador de r. función Denominador (r:racional) devuelve Entero Produce: el denominador de r. función Suma (r1, r2:racional) devuelve Racional Produce: el racional r1+ r2. función Simplifica (r: Racional) devuelve Racional Produce: un racional equivalente a r e irreducible. fin Racional Conocida la especificación de un tipo, y sólo ésta, puede realizarse cualquier algoritmo que utilice el TAD Ej: producto de dos números racionales función Multiplica (r1, r2: Racional) devuelve Racional Produce: el racional r1 * r2. inicio retorna Simplifica(ConstruirRacional (Numerador(r1) * Numerador(r2), Denominador(r1) * Denominador(r2))) ffunción; 1.2. Implementación Se elige una representación, o estructura de datos, para los objetos y se realizan los algoritmos correspondientes a las operaciones en función de dicha representación Departamento de Informática 9 Reyes Pavón

10 La representación elegida debe permitirnos implementar las operaciones de forma eficiente, razonablemente simple y hacer posible que algunas de las operaciones más habituales se ejecuten más rápidamente Como unas representaciones hacen más eficientes unas operaciones que otras estudiar las distintas posibilidades Ej: implementación del TAD Racional en Java public class Racional private int num, den; public Racional (int n, int d) throws ExcepcionDenominadorCero if (d == 0) throw new ExcepcionDenominadorCero("Racional: denominador cero"); num = n; den = d; public int numerador() return num; public int denominador() return den; public Racional suma(racional r) return new Racional(num * r.den + den * r.num, den * r.den); public Racional simplifica() int mcd = OpEnteros.mcd(num, den); return new Racional(num / mcd, den / mcd); Normalmente existirán varias implementaciones para una misma especificación Departamento de Informática 10 Reyes Pavón

11 1.3. Lenguajes de programación La abstracción de datos es una técnica de diseño de programas su utilización independiente del lenguaje de programación El uso e implementación de TAD con lenguajes de programación que no los soportan convenientemente deficiencias en: Ocultación de la representación: No ocultan la representación de los objetos no pueden comprobar el buen uso de la abstracción de datos Inicialización de las estructuras de datos: No disponen de un procedimiento automático de inicialización de las estructuras de datos que se utilizan para representar a los objetos del tipo invocar a una acción para inicializar convenientemente dichas estructuras Compilación independiente Abstracciones polimórficas: Un TAD puede ser polimórfico con respecto a los tipos de los elementos que contienen sus objetos. Un procedimiento o iterador puede ser también polimórfico con respecto a los tipos de uno o más de sus argumentos Ej. de LP con deficiencias: Pascal units de Turbo Pascal permiten: Ocultar la representación de un tipo de dato (o al menos se puede dejar inaccesible) Inicializar las estructuras de datos Compilar de forma independiente Abstracción de datos en Java Lenguaje orientado a objetos basado en clases Departamento de Informática 11 Reyes Pavón

12 Facilita la ocultación de la representación mediante la visibilidad de los atributos (private) Permite la inicialización de las estructuras de datos mediante los métodos constructor Cada clase se puede compilar independientemente. Posee mecanismos para realizar abstracciones polimórficas Permite el polimorfismo funcional como de tipos Una superclase común a todas: Object Parámetros de tipo (generics, a partir de Java 1.5) La abstracción de datos es una técnica de diseño de programas el desarrollo de programas en un LP que no soporte convenientemente la abstracción de datos no impide el utilizar ésta en el diseño de los mismos El usuario de la abstracción es el responsable de mantener el paradigma de programación (el compilador no aporta ningún mecanismo de control del buen uso de la misma) 1.4. Propiedades de los TAD Modificabilidad TAD modificable = puede cambiar el estado de los objetos del tipo pueden cambiar los valores de sus atributos Diseñar un TAD modificable o no modificable? No modificable: los objetos deben mantener de forma natural sus valores (ej.: racionales, complejos) Departamento de Informática 12 Reyes Pavón

13 Más fiables, pero Con objetos que se crean y rechazan frecuentemente recuperación de espacios de memoria debe realizarse a menudo (por ej., empleando técnicas de recogida de basura) Modificable (ej.: colas de clientes en sistemas de simulación) TAD Racional no modificable: Todas las operaciones devuelven objetos nuevos consumo de memoria No existen operaciones que puedan modificar los objetos Ej: Heap r2 r r Racional r1 = new Racional(10, 5); Racional r2 = new Racional(2, 3); Racional r3 = r1.suma(r2).simplifica(); En las abstracciones modificables el consumo de memoria no es un factor crítico operaciones que modifican objetos en lugar de crear nuevos Ej.: Si la operación Simplifica fuera una operación modificadora: Racional r3 = r1.suma(r2); r3.simplifica(); Departamento de Informática 13 Reyes Pavón

14 Heap r2 r r3 8 3 Pueden los objetos compartir espacio de memoria? Interés: aprovechar al máximo el espacio de memoria disponible (tanto TAD modificables, como no modificables) Ej.: TAD Lista cuyos elementos son caracteres. A partir de la lista l1=('a' 'b' 'c') se crea la lista l2=('b' 'c'). Posibilidades: El espacio de memoria ocupado por cada uno de los elementos de ambas listas sea distinto objetos no compartidos l1 'a' 'b' 'c' l2 'b' 'c' Espacio de memoria ocupado por los elementos comunes 'b' y 'c' sea el mismo, en cuyo caso los objetos están compartidos y se ahorra el espacio correspondiente a dos caracteres l1 'a' 'b' 'c' l2 Departamento de Informática 14 Reyes Pavón

15 Las modificaciones en una de las listas pueden afectar a la otra. Ej.: insertar un elemento al final de una de ellas (l2.insertafinal('d')) modificaría ambas l1 'a' 'b' 'c' l2 'd' Clases de operaciones Este problema sólo se produce si las abstracciones de datos son modificables Creadores: crean objetos de su tipo de dato sin tomar ningún objeto del mismo tipo como entrada. Todos los creadores son constructores, aunque no ocurre lo contrario Productores: crean objetos del tipo de dato tomando algún objeto del mismo tipo como entrada Modificadores: modifican los objetos del tipo de dato sólo se dan en las abstracciones modificables Observadores: toman como entrada objetos del tipo de dato y devuelven resultados de otros tipos Ej.: TAD Racional Creadores: Racional Productores: suma y simplifica Modificadores: ninguno Observadores: numerador y denominador Departamento de Informática 15 Reyes Pavón

16 2. Ejemplo Especificación public class Conjunto<E> // Declaración de tipos: Conjunto, <E> // Características: // Conjunto ilimitado de elementos de tipo <E>. Un Conjunto<E> típico es // x 1,, x n siendo x i de tipo <E> // Los objetos son modificables // Constructores public Conjunto() // Produce: Inicializa this al vacío // Métodos public void inserta(e x) // Modifica: this // Produce: Añade x a los elementos de this, esto es, // this_post = this x public void elimina(e x) // Modifica: this // Produce: Elimina x de this, esto es, this_post = this x public boolean pertenece(e x) // Produce: Si x está en this devuelve cierto; falso en caso contrario public int cardinal() // Produce: Devuelve el número de elementos de this public E elige() throws ExcepcionConjuntoVacio // Produce: Si this está vacío lanza la excepción // ExcepcionConjuntoVacio. En caso contrario, devuelve un // elemento cualquiera de this. Departamento de Informática 16 Reyes Pavón

17 Implementación public class Conjunto<E> private Vector<E> elementos; // la representación del tipo // Constructores public Conjunto() elementos = new Vector<E>(); // Métodos public void inserta(e x) if (elementos.indexof(x) < 0) elementos.addelement(x); public void elimina(e x) int i = elementos.indexof(x); if (i >= 0) elementos.setelementat(elementos.lastelement(), i); elementos.removeelementat(elementos.size()-1); public boolean pertenece(e x) return elementos.indexof(x) >= 0; public int cardinal() return elementos. size(); public E elige() throws ExcepcionConjuntoVacio if (elementos. size() == 0) throw new ExcepcionConjuntoVacio("Conjunto.elige: Conjunto vacío."); return elementos.lastelement(); Departamento de Informática 17 Reyes Pavón

Tipos Abstractos de Datos

Tipos Abstractos de Datos Objetivos Repasar los conceptos de abstracción de datos y (TAD) Diferenciar adecuadamente los conceptos de especificación e implementación de TAD Presentar la especificación algebraica como método formal

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

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

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

INTRODUCCIÓN. Estructura de Datos Tipos Abstractos de Datos (TAD S) Profs. Lorna Figueroa M. Mauricio Solar F. UTFSM 1 / 2008

INTRODUCCIÓN. Estructura de Datos Tipos Abstractos de Datos (TAD S) Profs. Lorna Figueroa M. Mauricio Solar F. UTFSM 1 / 2008 INTRODUCCIÓN Estructura de Datos Tipos Abstractos de Datos (TAD S) Para poder obtener un programa que resuelva un problema dado, son necesarios varios pasos : La formulación y especificación del problema

Más detalles

Tema 1. Introducción a las estructuras y tipos de datos

Tema 1. Introducción a las estructuras y tipos de datos Tema 1. Introducción a las estructuras y tipos de datos http://aulavirtual.uji.es José M. Badía, Begoña Martínez, Antonio Morales y José M. Sanchiz {badia,bmartine,morales,sanchiz}@icc.uji.es Estructuras

Más detalles

Programación Avanzada para Sistemas de Telecomunicación. Objetos y clases. J.C. Cruellas. Objetos y clases

Programación Avanzada para Sistemas de Telecomunicación. Objetos y clases. J.C. Cruellas. Objetos y clases Programación Avanzada para Sistemas de Telecomunicación Objetos y clases Juan Carlos Cruellas cruellas@ac.upc.es Objetos y clases Concepto de objeto. Concepto de clase. Clases, objetos y programas. Clases

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

Prácticas de Programación

Prácticas de Programación Prácticas de Programación Tema 1. Introducción al análisis y diseño de programas Tema 2. Clases y objetos Tema 4. Tratamiento de errores Tema 5. Aspectos avanzados de los tipos de datos Tema 6. Modularidad

Más detalles

Unidad I: Tipo de Dato Abstracto (TDA)

Unidad I: Tipo de Dato Abstracto (TDA) Asignatura: Programación 2 Unidad 1: Tipo de Dato Abstracto (TDA) Tema 2: Tipo de Dato Abstracto (TDA) Autor: Prof. Hilda Contreras Unidad I: Tipo de Dato Abstracto (TDA) Introducción Suponga que debe

Más detalles

www.aprendoencasa.com Curso Introducción JAVA Pág.: 1

www.aprendoencasa.com Curso Introducción JAVA Pág.: 1 www.aprendoencasa.com Curso Introducción JAVA Pág.: 1 Introducción Java es un lenguaje basado en la programación orientada a objetos (POO), este tipo de programación va más allá del tipo de programación

Más detalles

Metodología y Tecnología de la Programación

Metodología y Tecnología de la Programación Metodología y Tecnología de la Programación Curso 2008/09 Tema 7 Tipos de Datos Abstractos Temario 7.1 Concepto de Tipo de Datos Abstracto 7.2 Clasificación de Tipos de Datos Abstractos 7.3 Especificación

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

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

Repaso de las características más importantes de la programación Java y su adaptación a Android

Repaso de las características más importantes de la programación Java y su adaptación a Android Repaso de las características más importantes de la programación Java y su adaptación a Android 1. Entorno de programación en java 2. Variables y tipos de datos 3. Operaciones y operadores 4. Clases y

Más detalles

Clases. Java: Clases y Objetos. Clases. Clases. Modificadores de clase. Definición de una clase. Cada objeto es un ejemplar de una clase

Clases. Java: Clases y Objetos. Clases. Clases. Modificadores de clase. Definición de una clase. Cada objeto es un ejemplar de una clase Java: Clases y Objetos Clases La unidad fundamental de programación en Java es la clase Un programa Java está formado por un conjunto de clases Una clase es una plantilla que describe un conjunto de objetos

Más detalles

PROGRAMACIÓ DIDÁCTICA: Secuanciación, Temporalización y Unidades Didácticas

PROGRAMACIÓ DIDÁCTICA: Secuanciación, Temporalización y Unidades Didácticas Departamento de Informática PROGRAMACIÓN DIDÁCTICA Curso 11-12 1 CONSEJERÍA DE EDUCACIÓN I.E.S. NERVIÓN Departamento de Informática CICLO FORMATIVO: TÉCNICO SUPERIOR EN DESARROLLO DE APLICACIONES MULTIPLATAFORMA.

Más detalles

Programación Orientada a Objetos. Java: Excepciones

Programación Orientada a Objetos. Java: Excepciones Programación Orientada a Objetos Java: Excepciones Eduardo Mosqueira Rey LIDIA Laboratorio de Investigación y desarrollo en Inteligencia Artificial Departamento de Computación Universidade da Coruña, España

Más detalles

Lo que necesitaremos para programar en Java, será un editor de texto o IDE y la JDK.

Lo que necesitaremos para programar en Java, será un editor de texto o IDE y la JDK. Introducción Java surgió en 1991 dentro de la empresa Sun Microsystems como un lenguaje de programación sencillo y universal destinado a electrodomésticos. La reducida potencia de cálculo y memoria de

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

Programación Orientada a Objetos. Java: Excepciones

Programación Orientada a Objetos. Java: Excepciones Programación Orientada a Objetos Java: Excepciones Eduardo Mosqueira Rey Laboratorio de Investigación y desarrollo en Inteligencia Artificial Departamento de Computación Universidade da Coruña, España

Más detalles

Solución al Examen de Prácticas de Programación (Ingeniería Informática)

Solución al Examen de Prácticas de Programación (Ingeniería Informática) Solución al Examen de Prácticas de Programación (Ingeniería Informática) Junio 2006 Parte I. Cuestiones (3 puntos=50% nota del examen) 1) Se desea crear un conjunto de clases para representar en un programa

Más detalles

INDICE Parte I. Conceptos 1. El estudio de los lenguajes de programación 2. Cuestiones de diseño de lenguajes

INDICE Parte I. Conceptos 1. El estudio de los lenguajes de programación 2. Cuestiones de diseño de lenguajes INDICE Parte I. Conceptos 1 1. El estudio de los lenguajes de programación 1.1. Por qué estudiar lenguajes de programación? 2 1.2. Breve historia de los lenguajes de programación 1.2.1. Desarrollo de los

Más detalles

Objetos y Clases en Java. ELO 329: Diseño y Programación Orientados a Objetos

Objetos y Clases en Java. ELO 329: Diseño y Programación Orientados a Objetos Objetos y Clases en Java ELO 329: Diseño y Programación Orientados a Objetos 1 Elementos de Análisis y Diseño orientado a objetos Notación y relaciones entre clases: Las clases son abstracciones para los

Más detalles

CONTENIDO. Programación orientada a objetos - POO. Clases. Constructores y destructores. Definiciones. Entrada y salida

CONTENIDO. Programación orientada a objetos - POO. Clases. Constructores y destructores. Definiciones. Entrada y salida INFORMÁTICA II 1 CONTENIDO 2 1 Programación orientada a objetos - POO 2 Clases 3 Constructores y destructores 4 Definiciones 5 Entrada y salida PROGRAMACIÓN ORIENTADA A OBJETOS Los lenguajes de programación

Más detalles

Introducción al lenguaje de especificación JML

Introducción al lenguaje de especificación JML Introducción al lenguaje de especificación JML Elena Hernández Pereira Óscar Fontenla Romero Tecnología de la Programación Octubre 2006 Departamento de Computación Facultad de Informática Universidad de

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

FUNDAMENTOS DE PROGRAMACIÓN. SEPTIEMBRE 2005

FUNDAMENTOS DE PROGRAMACIÓN. SEPTIEMBRE 2005 Dpto. de Ingeniería de Sistemas Telemáticos E.T.S.I. Telecomunicación Universidad Politécnica de Madrid FUNDAMENTOS DE PROGRAMACIÓN. SEPTIEMBRE 2005 Normas de examen: Con libros y apuntes Duración: 2 horas

Más detalles

Tema 5: Programación Orientada a Objetos en C++ Programación Orientada a Objetos Curso 2009/2010 Begoña Moros Valle

Tema 5: Programación Orientada a Objetos en C++ Programación Orientada a Objetos Curso 2009/2010 Begoña Moros Valle Tema 5: Programación Orientada a Objetos en C++ Programación Orientada a Objetos Curso 2009/2010 Begoña Moros Valle Contenido Introducción Clases y Objetos en C++: Módulos: Clases, estructuras y espacios

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

1. Ejemplo de clase : La clase Cuenta 2. Uso de la clase Cuenta. 3. Métodos y objetos receptores de mensajes (Importante)

1. Ejemplo de clase : La clase Cuenta 2. Uso de la clase Cuenta. 3. Métodos y objetos receptores de mensajes (Importante) 1. : La clase Cuenta. Uso de la clase Cuenta 3. Métodos y objetos receptores de mensajes (Importante) 1 Una clase para cuentas de un banco Vamos a modelar con una clase, un nuevo tipo de datos, donde los

Más detalles

INICIACIÓN A LA PROGRAMACIÓN LENGUAJE JAVA

INICIACIÓN A LA PROGRAMACIÓN LENGUAJE JAVA INICIACIÓN A LA PROGRAMACIÓN LENGUAJE JAVA Introducción Qué es programar? Idear y ordenar las acciones necesarias para realizar un proyecto (R.A.E) En nuestro contexto: Resolver problemas, Automatizar

Más detalles

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez Encapsulamiento: Control de Acceso Clases en Java (1) UNIVERSIDAD AUTÓNOMA DEL ESTADO DE MÉXICO En Java se organizan las clases en paquetes

Más detalles

Lenguajes de Programación Curso 04-05. Práctica 4. Herencia. Utilización de interfaces y clases abstractas. 1. Interfaces 1. 2. Clases abstractas 2

Lenguajes de Programación Curso 04-05. Práctica 4. Herencia. Utilización de interfaces y clases abstractas. 1. Interfaces 1. 2. Clases abstractas 2 Objetivos Herencia. Utilización de interfaces y clases abstractas. Índice 1. Interfaces 1 2. Clases abstractas 2 3. Collections Framework 3 3.1. Collection........................................... 3

Más detalles

Tipos Abstractos de Datos y Diseño por Contrato

Tipos Abstractos de Datos y Diseño por Contrato Tipos Abstractos de Datos y Diseño por Contrato 1.- Motivación de los tipos abstractos de datos Nuestro objetivo es obtener descripciones apropiadas de los objetos, para lo cual se necesita un método que

Más detalles

Ejercicio 1 (3 puntos).-

Ejercicio 1 (3 puntos).- URJC Ingeniería Técnica de Gestión Abril 2011 Asignatura: SOFTWARE AVANZADO Normas: La prueba consta de 2 ejercicios. La máxima nota del examen es un 8. Siendo la práctica la que añade los 2 puntos que

Más detalles

Tema 2. El lenguaje de programación Java (Parte 1)

Tema 2. El lenguaje de programación Java (Parte 1) Programación en Java Tema 2. El lenguaje de programación Java (Parte 1) Luis Rodríguez Baena Facultad de Informática Elementos del lenguaje (I) El juego de caracteres. No utiliza ASCII, sino Unicode de

Más detalles

JavaScript. Contenidos. Introducción El lenguaje Validación de formularios. Programación en Internet 2005-2006. DLSI - Universidad de Alicante 1

JavaScript. Contenidos. Introducción El lenguaje Validación de formularios. Programación en Internet 2005-2006. DLSI - Universidad de Alicante 1 Departamento de Lenguajes y Sistemas Informáticos JavaScript Programación en Internet Curso 2005-2006 Contenidos Introducción El lenguaje Validación de formularios DLSI - Universidad de Alicante 1 Introducción

Más detalles

Creación y destrucción de objetos

Creación y destrucción de objetos Creación y destrucción de objetos Contenido Descripción general 1 Uso de constructores 2 Objetos y memoria 13 Creación y destrucción de objetos i Notas para el instructor Este módulo proporciona a los

Más detalles

FIUBA - 7507 Algoritmos y programación 3

FIUBA - 7507 Algoritmos y programación 3 FIUBA - 7507 Algoritmos y programación 3 Trabajo práctico 2: Algo Hero 2010 1er cuatrimestre, 2010 1er entrega (trabajo grupal) Integrantes: 90365, Nahuel Lucero, nahuel.bm6@gmail.com 91299, Diego Meller,

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

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

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

CONCEPTOS BASICOS DEL LENGUAJE JAVA

CONCEPTOS BASICOS DEL LENGUAJE JAVA CONCEPTOS BASICOS DEL LENGUAJE JAVA NOMENCLATURA GENERAL En Java se distinguen las letras mayúsculas y minúsculas. Las reglas del lenguaje respecto a los nombres de variables son muy amplias y permiten

Más detalles

Clase 6: Invariantes de representación y funciones de abstracción

Clase 6: Invariantes de representación y funciones de abstracción Clase 6: Invariantes de representación y funciones de abstracción 6.1 Introducción En esta clase, vamos a describir dos herramientas utilizadas para la comprensión de tipos de datos abstractos: los invariantes

Más detalles

Tema 2. Técnicas básicas de POO. Técnicas de Programación - Curso 2007/08

Tema 2. Técnicas básicas de POO. Técnicas de Programación - Curso 2007/08 Tema 2 Técnicas básicas de POO Técnicas de Programación - Curso 2007/08 Contenido Principios de POO Encapsulación Herencia Polimorfismo Ejemplos Técnicas básicas Delegación Uso de interfaces Interfaces

Más detalles

Tema 3. Test Driven Development

Tema 3. Test Driven Development Tema 3. Test Driven Development Ejercicios Resueltos Ejercicio 01. Desarrolle mediante TDD una implementación del algoritmo de la Criba de Eratóstenes para calcular la lista de los números primos desde

Más detalles

Capítulo 10. Subtipos y Herencia.

Capítulo 10. Subtipos y Herencia. 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 2009-10 Autor:

Más detalles

El Concepto De Objeto y Clase

El Concepto De Objeto y Clase TEMA 3 El Concepto De Objeto y Clase V1.2 Manuel Pereira González Agenda Encapsulamiento y Reutilización Introducción a Objetos y Clases Resumen 1 Encapsulamiento y Reutilización Nivel de abstracción ->

Más detalles

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

Temario detallado. Conceptos generales de lenguajes y compiladores. Proceso de compilación de un programa en C++ bajo Code::Blocks

Temario detallado. Conceptos generales de lenguajes y compiladores. Proceso de compilación de un programa en C++ bajo Code::Blocks Temario detallado Programación básica en C++ Conceptos generales de lenguajes y compiladores Proceso de compilación de un programa en C++ bajo Code::Blocks Estructura básica de un programa en C++ Análisis

Más detalles

Enseñando programación con C++: una propuesta didáctica

Enseñando programación con C++: una propuesta didáctica Jorge Díaz Universidad de Oriente, Departamento de Computación, Santiago de Cuba 90500, Cuba jdiaz@csd.uo.edu.cu Resumen: Se hace un análisis crítico acerca de las características del lenguaje C++ con

Más detalles

El Principio Abierto/Cerrado

El Principio Abierto/Cerrado El Principio Abierto/Cerrado 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

Tema 4. Clases y objetos en C++ 4.1. Introducción

Tema 4. Clases y objetos en C++ 4.1. Introducción Tema 4 Clases y objetos en C++ 4.1. Introducción A lo largo del curso nos hemos encontrado con varias situaciones en las que era necesario trabajar con datos para los que no existía un tipo predefinido

Más detalles

Tema 3: Genericidad en Java. Tema 3: Genericidad en Java. Objetivos y Bibliografía. Modelos de Datos Genéricos

Tema 3: Genericidad en Java. Tema 3: Genericidad en Java. Objetivos y Bibliografía. Modelos de Datos Genéricos Tema 3: Genericidad en Java Tema 3: Genericidad en Java Germán Moltó Escuela Técnica Superior de Ingeniería Informática Universidad Politécnica de Valencia Índice general: 1. Definición y Ventajas de la

Más detalles

Elementos léxicos del lenguaje de programación Java

Elementos léxicos del lenguaje de programación Java Elementos léxicos del lenguaje de programación Java Elementos léxicos del lenguaje de programación Java Palabras reservadas Identificadores Literales Operadores Delimitadores Comentarios Apéndices Operadores

Más detalles

Tema 3. Monitores Programación Concurrente

Tema 3. Monitores Programación Concurrente Tema 3. Monitores Programación Concurrente Depto. de Lenguajes y Sistemas Informáticos Universidad de Granada Contenidos 1. Concepto de Monitor 1.1. Fundamento teórico de los monitores 1.2. Sintaxis de

Más detalles

3. DIAGRAMAS DE CLASES...19 3.1. INTRODUCCIÓN... 19 3.2. DIAGRAMAS DE CLASES... 19 3.2.1. Perspectivas...20 3.2.2. Clases...20 3.2.2.1.

3. DIAGRAMAS DE CLASES...19 3.1. INTRODUCCIÓN... 19 3.2. DIAGRAMAS DE CLASES... 19 3.2.1. Perspectivas...20 3.2.2. Clases...20 3.2.2.1. 3. DIAGRAMAS DE CLASES...19 3.1. INTRODUCCIÓN... 19 3.2. DIAGRAMAS DE CLASES... 19 3.2.1. Perspectivas...20 3.2.2. Clases...20 3.2.2.1. Compartimento del nombre...21 3.2.2.2. Compartimento de la lista

Más detalles

NIVEL 15: ESTRUCTURAS RECURSIVAS BINARIAS

NIVEL 15: ESTRUCTURAS RECURSIVAS BINARIAS 1 NIVEL 15: ESTRUCTURAS RECURSIVAS BINARIAS Árboles Binarios y Árboles Binarios Ordenados 2 Contenido Árboles binarios Iteradores Árboles binarios ordenados 3 Árboles binarios Algunas definiciones para

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

CARRERA: LICENCIATURA EN INFORMATICA

CARRERA: LICENCIATURA EN INFORMATICA CARRERA: LICENCIATURA EN INFORMATICA AREA CURRICULAR ASIGNATURA CLAVE DE APOYO PROGRAMACION I IGEPR108210 SEMESTRE HORAS A LA SEMANA No. DE CREDITOS II TEORIA PRACTICA TOTAL 3 2 5 8 INTRODUCCIÓN Una vez

Más detalles

CICLO SUPERIOR DESARROLLO DE APLICACIONES MULTIPLATAFORMA

CICLO SUPERIOR DESARROLLO DE APLICACIONES MULTIPLATAFORMA CICLO SUPERIOR DESARROLLO DE APLICACIONES MULTIPLATAFORMA PROGRAMACIÓN DIDACTICA ANUAL Parte específica del módulo: 0485. Programación Departamento de Familia Profesional de Informática Curso: 2014-15

Más detalles

Prácticas de Programación

Prácticas de Programación Prácticas de Programación Tema 1. Introducción al análisis y diseño de programas Tema 2. Clases y objetos Tema 3. Herencia y Polimorfismo Tema 4. Tratamiento de errores Tema 5. Aspectos avanzados de los

Más detalles

Trabajo Práctico N 4: Diseño por Contratos

Trabajo Práctico N 4: Diseño por Contratos 1. Defina los contratos de las siguientes clases: Trabajo Práctico N 4: Diseño por Contratos a. La clase Fecha representa una fecha en el formato dia, mes y año. Especificar los contratos para asegurar

Más detalles

Analizar, diseñar, desarrollar e implementar soluciones orientadas a objetos utilizando encapsulamiento, herencia, polimorfismo y archivos.

Analizar, diseñar, desarrollar e implementar soluciones orientadas a objetos utilizando encapsulamiento, herencia, polimorfismo y archivos. Nombre de la asignatura: Programación Orientada a Objetos Créditos: 2-3- 5 Aportación al perfil Desarrollar, implementar y administrar software de sistemas o de aplicación que cumpla con los estándares

Más detalles

Tema 1. Abstracciones y Especificaciones.

Tema 1. Abstracciones y Especificaciones. Programa de teoría Parte I. Estructuras de Datos. 1. Abstracciones y especificaciones. 2. Conjuntos y diccionarios. 3. Representación de conjuntos mediante árboles. 4. Grafos. Parte II. Algorítmica. 1.

Más detalles

Herencia e Interfaces

Herencia e Interfaces Herencia Introducción En C# cualquier dato es un objeto porque todos los tipos derivan implícitamente de este tipo, y heredan los métodos y campos definidos en dicha clase. Cada nuevo tipo tiene todo lo

Más detalles

Algunas características de los lenguajes de programación orientados a objetos son:

Algunas características de los lenguajes de programación orientados a objetos son: Programación Orientada a Objetos (POO) La programación orientada a objetos es un paradigma de programación que, como su nombre lo indica, se basa en el uso de objetos estructuras de datos que consisten

Más detalles

Ingeniería de Software con UML Unified Modeling Language Lenguaje Unificado de Modelado

Ingeniería de Software con UML Unified Modeling Language Lenguaje Unificado de Modelado Ingeniería de Software con UML Unified Modeling Language Lenguaje Unificado de Modelado 1. Introducción Unified Modeling Languaje Fuente: Booch- Jacobson-Rumbauch y diversos sitios Internet, entre otros:

Más detalles

Introducción al lenguaje JAVA

Introducción al lenguaje JAVA Universidad Autónoma de Tlaxcala Introducción al lenguaje JAVA M.C.. José Juan Hernández ndez Mora Segunda Sesión 1. Arreglos 2. Matrices 3. Clases en Java 4. Clases de Usuario en Java 5. Objetos definidos

Más detalles

ASIGNATURA: ESTRUCTURA DE DATOS III Cód.: 31-307 Régimen: Cuatrimestral Horas semanales: 4 horas Escuela: Sistemas 2010

ASIGNATURA: ESTRUCTURA DE DATOS III Cód.: 31-307 Régimen: Cuatrimestral Horas semanales: 4 horas Escuela: Sistemas 2010 ASIGNATURA: ESTRUCTURA DE DATOS III Cód.: 31-307 Régimen: Cuatrimestral Horas semanales: 4 horas Escuela: Sistemas 2010 FUNDAMENTOS: Esta área está organizada para que los estudiantes adquieran el criterio

Más detalles

PROGRAMACION CONCURRENTE Y DISTRIBUIDA. II.5 Sincronización basada en memoria compartida: Monitores

PROGRAMACION CONCURRENTE Y DISTRIBUIDA. II.5 Sincronización basada en memoria compartida: Monitores PROGRAMACION CONCURRENTE Y DISTRIBUIDA II.5 Sincronización basada en memoria compartida: Monitores J.M. Drake 1 Monitor Son módulos que encierran los recursos o variables compartidas como componentes internos

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

Conceptos fundamentales de la POO. Fundamentos de la Programación Orientada a Objetos Objetos y Clases

Conceptos fundamentales de la POO. Fundamentos de la Programación Orientada a Objetos Objetos y Clases Fundamentos de la Programación Orientada a Objetos Objetos y Clases Programación Orientada a Objetos Facultad de Informática Dep. Ingeniería del Software e Inteligencia Artificial Universidad Complutense

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

Tecnólogo Informático- Estructuras de Datos y Algoritmos- 2009

Tecnólogo Informático- Estructuras de Datos y Algoritmos- 2009 Árboles Ejemplos de estructuras arborescentes: con forma de árbol Regla de Alcance: los objetos visibles en un procedimiento son aquellos declarados en él mismo o en cualquier ancestro de él (cualquier

Más detalles

Grados Ing. Inf. y Mat. Inf. Julio 2014 Algoritmos y Estructura de Datos Página 1 de 6

Grados Ing. Inf. y Mat. Inf. Julio 2014 Algoritmos y Estructura de Datos Página 1 de 6 Grados Ing. Inf. y Mat. Inf. Julio 201 Algoritmos y Estructura de Datos Página 1 de 6 Algoritmos y Estructura de Datos: Examen Julio (Solución) Grados Ing. Inf. y Mat. Inf. Julio 201 Departamento de Lenguajes,

Más detalles

Curso de programación Java III Artículo publicado originalmente en la revista Sólo Programadores

Curso de programación Java III Artículo publicado originalmente en la revista Sólo Programadores Curso de programación Java III Artículo publicado originalmente en la revista Sólo Programadores Hasta ahora en este curso de programación Java hemos introducido los tipos de datos primitivos del lenguaje

Más detalles

Refactorizar (v) Reestructurar el software aplicando una secuencia de refactorizaciones.

Refactorizar (v) Reestructurar el software aplicando una secuencia de refactorizaciones. Refactorización Definición Refactorización (n) Cambio realizado a la estructura interna del software para hacerlo más fácil de comprender y más fácil de modificar sin cambiar su comportamiento observable.

Más detalles

Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º

Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º 1. Ejercicio (1 punto) Dado el array A={8, 3, 7, 1, 4, 9, 5, 2, 6 Describir cual es el estado del array A después de cada paso principal del algoritmo: InsertionSort. {8, 3, 7, 1, 4, 9, 5, 2, 6 {3, 8,

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

Segunda práctica de Programación 2

Segunda práctica de Programación 2 Segunda práctica de Programación 2 La segunda práctica consistirá en el diseño y posterior implementación como proyecto de Netbeans de dos versiones sobre el mismo problema. El tema central de ambas versiones

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

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

Práctica 3 mtp. metodoloxía e tecnoloxía da programación. Presentar detalles básicos sobre la sintaxis del lenguaje de programación Java.

Práctica 3 mtp. metodoloxía e tecnoloxía da programación. Presentar detalles básicos sobre la sintaxis del lenguaje de programación Java. Práctica 3 mtp metodoloxía e tecnoloxía da programación Objetivos: Duración: Presentar detalles básicos sobre la sintaxis del lenguaje de programación Java. 1 semana 1.- Identificadores Los identificadores

Más detalles

Técnicas Avanzadas de Testing Automático

Técnicas Avanzadas de Testing Automático Técnicas Avanzadas de Testing Automático Marcelo Frias ITBA - Buenos Aires, Argentina CONICET Preliminares: Calidad Validación y Verificación Especificaciones y V&V Análisis estático y dinámico Inspecciones

Más detalles

Objetivo de aprendizaje del tema

Objetivo de aprendizaje del tema Computación II Tema 3. Identificadores, palabras clave y tipos de datos Objetivo de aprendizaje del tema Al finalizar el tema serás capaz de: Distinguir i entre modificadores d válidos y no válidos. Enumerar

Más detalles

Programa Instruccional de Asignatura. Curriculum INGENIERÍA EN INFORMÁTICA N 14-461-01 ANALISTA PROGRAMADOR COMPUTACIONAL Nº 14-447-05

Programa Instruccional de Asignatura. Curriculum INGENIERÍA EN INFORMÁTICA N 14-461-01 ANALISTA PROGRAMADOR COMPUTACIONAL Nº 14-447-05 ESCUELA DE INFORMÁTICA Y TELECOMUNICACIONES CARRERA(s) Curriculum INGENIERÍA EN INFORMÁTICA N 14-461-01 ANALISTA PROGRAMADOR COMPUTACIONAL Nº 14-447-05 PEF2501 PROGRAMACIÓN ORIENTADA A OBJETOS 10 Créditos

Más detalles

Tema 1. Conceptos de Java para Estructuras de Datos: interfaces y programación genérica

Tema 1. Conceptos de Java para Estructuras de Datos: interfaces y programación genérica Tema 1. Conceptos de Java para Estructuras de Datos: interfaces y programación genérica Duración: 3 semanas aprox. Índice General: 1. Clases y objetos en Java: el modelo TIENE UN(A) 2. El principio POO

Más detalles

Tecnologías de Programación Web Dr. Diego C. Martínez. Depto de Cs e Ing. de la Computación Universidad Nacional del Sur.

Tecnologías de Programación Web Dr. Diego C. Martínez. Depto de Cs e Ing. de la Computación Universidad Nacional del Sur. Historia de Java 1991 Comienza el proyecto Green. 1992 Se presenta el lenguaje Oak. Java, 10 años - JavaOne Conference 26 al 30 de junio de 2005 1995 Nace oficialmente la tecnología Java. Cambia el nombre

Más detalles

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 3 Clases y Objetos Gonzalo Méndez Pozo Dpto. de Ingeniería de Software e Inteligencia Artificial Universidad Complutense de Madrid Clases y

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

Tema 8. PROGRAMACIÓN ORIENTADA A OBJETOS I. CONCEPTOS BÁSICOS. 1. Programación Orientada a Objeto (POO) 2. Objeto

Tema 8. PROGRAMACIÓN ORIENTADA A OBJETOS I. CONCEPTOS BÁSICOS. 1. Programación Orientada a Objeto (POO) 2. Objeto I. CONCEPTOS BÁSICOS 1. Programación Orientada a Objeto (POO) Tema 8. PROGRAMACIÓN ORIENTADA A OBJETOS La programación Orientada a Objetos es una metodología que basa la estructura de los programas en

Más detalles

Práctica 4: Herencia. Objetivos:

Práctica 4: Herencia. Objetivos: Práctica 4: Herencia Objetivos: Como se implementa la herencia en Java (superclase - clase descendiente). Utilizar super. Redefinición de métodos Clase Object Clase System Clases abstractas 1. Herencia.

Más detalles

b c b c b b a a c a a c b c c b b c b c d c c c b

b c b c b b a a c a a c b c c b b c b c d c c c b INSTRUCCIONES: El EXAMEN TEÓRICO se divide en dos parciales. El PRIMER PARCIAL corresponde a las unidades 1 a 5. El SEGUNDO PARCIAL corresponde a las unidades 6 a 9. Aquellos alumnos que aprobaron el examen

Más detalles

ALGORITMICA Y PROGRAMACION POR OBJETOS I

ALGORITMICA Y PROGRAMACION POR OBJETOS I ALGORITMICA Y PROGRAMACION POR OBJETOS I Nivel 2 Definiendo situaciones y manejando casos Marcela Hernández Hoyos Qué vamos a aprender en este nivel: Diferencia entre clase y objeto Modelar características

Más detalles

Uso de excepciones en Java

Uso de excepciones en Java Uso de excepciones en Java En Java, cuando se produce un error en un método, se lanza un objeto Throwable. Cualquier método que haya llamado al método puede capturar la excepción y tomar las medidas que

Más detalles

Técnicas Avanzadas de Testing Automatizado

Técnicas Avanzadas de Testing Automatizado Técnicas Avanzadas de Testing Automatizado Introducción: Testing ad hoc Testing sistemático Testing unitario Unidad y Suite de tests Frameworks xunit Fixtures compartidos e independecia Tests parametrizados

Más detalles

Tema 2: Clase y objetos en Java. Programación Orientada a Objetos Curso 2009/2010 Begoña Moros Valle

Tema 2: Clase y objetos en Java. Programación Orientada a Objetos Curso 2009/2010 Begoña Moros Valle Tema 2: Clase y objetos en Java Programación Orientada a Objetos Curso 2009/2010 Begoña Moros Valle Índice Introducción Clases Objetos Semántica referencia Métodos y mensajes Creación de objetos Modelo

Más detalles