Tipos de Datos Abstractos

Documentos relacionados
Bloque II. Elementos del lenguaje de programación Java

PROGRAMACIÓN GENÉRICA

Prueba N o 1. Programación II

Conceptos Básicos. Programación Orientada a Objetos 2

Examen Teórico Convocatoria de Junio de 2012

Estructura de datos y Programación

Interfaces. Amparo López Gaona. Septiembre de Amparo López Gaona () Interfaces Septiembre de / 1

1. (1 punto) Dado el siguiente fragmento en Java:

Práctica 5. Fecha límite de entrega: viernes, 14 de diciembre

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

Tema 6 Patrones de Diseño. Programación Orientada a Objetos Curso 2010/2011

Tema 7.- Fundamentos de la Programación Orientada a Objetos

Variables. Una variable no es más que un nombre simbólico que identifica una dirección de memoria: vs.

Java. Introducción a la Programación Orientada a Objetos

18. Interfaces Declaración de una interfaz

Estructuras de control selectivas

En Java, un arreglo es un grupo de variables (llamados elementos o componentes) que contienen valores, todos del mismo tipo.

Unidad II Tema 3: Tratamiento de arreglos y cadenas en Java

HOJA DE EJERCICIOS 5 PROGRAMACIÓN CON EXCEPCIONES EN JAVA

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

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

Construcciones del Lenguaje Java

CURSO : ESTRUCTURA DE DATOS DOCENTE : ING. JUAN ZEVALLOS VALLE

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

UNADM. Estructura de datos. Guillermo Duran Garcia AL Actividad 2. Identificación de errores en métodos de ordenación

LA CLASE VECTOR DEL API JAVA. MÉTODOS TRIMTOSIZE Y ENSURECAPACITY EJEMPLO Y EJERCICIOS RESUELTOS. (CU00922C)

Introducción a Java 10/02/2011. Tokens. Juan Manuel Fernández Peña Curso Rev Tokens. Tokens

Unidad Didáctica 3. Tipos genéricos. Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos

Ejemplo (incompleto) de desarrollo de una aplicación en Java

Tipos abstractos de datos (TAD)

Qué es Java? Un lenguaje de programación Un entorno de desarrollo Un entorno de aplicación Un entorno de despliegue Es similar en sintaxis de C + +.

Unidad V. Ya veremos qué poner en "algunas_palabras" y "algo_más", por ahora sigamos un poco más.

Arrays. Los arreglos son una colección de objetos del mismo tipo los cuales tienen un nombre en común y su acceso es mediante un índice.

VARIABLES, CONSTANTES Y EXPRESIONES ASIGNACIÓN. TIPOS ELEMENTALES. PRECEDENCIA DE LOS ESTRUCTURAS DE CONTROL. CONDICIONAL E

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Introducción a la Programación Orientada a Objetos PRACTICO N 6

abril de 2017 Desarrollo de aplicaciones en Java Tipos de datos primitivos Tipos de datos Elementos de aplicaciones simples

Algoritmos y Estructuras de Datos Iteradores. Guillermo Román Díez

1. Manejo de memoria estática 2. Manejo de memoria dinámica

Tema: Plantillas en C++.

Identificadores, palabras reservadas, tipos de datos, operadores aritméticos y el sistema estándar de salida en Java

Conceptos a tratar. Fundamentos de la Programación Orientada a Objetos Ampliación sobre clases y objetos

a. Cuántas veces se ejecuta la instrucción System.out.println? b. Cuál es el diagrama de flujo correspondiente a este fragmento?

Clase adicional 3. Métodos. Temas

Introducción a Java. Dr. (c) Noé Alejandro Castro Sánchez

Interface nominterface{

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

Programación orientada a objetos

Objetivo de aprendizaje del tema

Algoritmos y Estructuras de Datos: Ordenación y Colas con Prioridad. Guillermo Román Díez

Sobre Carga de Operadores

Lección 2: Creando una Aplicación en Java. 1. Estructura del archivo de una clase. 3. Definiendo clases fundamentos

INTERACCION ENTRE OBJETOS

Estructura de datos tipo vector.

INTERFACE ITERATOR DEL API JAVA. MÉTODO REMOVE PARA BORRAR OBJETOS EN COLECCIONES. EJERCICIOS Y EJEMPLO RESUELTO. (CU00919C)

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

Arreglos. H. Tejeda. Marzo Declaración de arreglos Inicialización de arreglos Uso de subíndices variables en un arreglo 5

CONCEPTOS BASICOS DEL LENGUAJE JAVA

// Método Comunicarse, sera implementado por las clases concretas que hereden de la clase //animal

Programación Orientada a Objetos con Java. Elementos Básicos del Lenguaje Java. Creación de un objeto. Creación de un objeto. Creación de un objeto

12. Tipos de atributos

Objetos y memoria dinámica

INTERFACE COMPARATOR. DIFERENCIAS ENTRE COMPARATOR Y COMPARABLE. CLASE COLLECTIONS. EJERCICIOS RESUELTOS. (CU00918C)

Introducción a la Programación Orientada a Objetos

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

Programación de sistemas Listas enlazadas

Tema 9. Algoritmos sobre listas. Programación Programación - Tema 9: Algoritmos sobre listas

LA ESTRUCTURA DE DATOS PILA EN JAVA. CLASE STACK DEL API JAVA. EJEMPLO Y EJERCICIOS RESUELTOS. (CU00923C)

Introducción a Java LSUB. 30 de enero de 2013 GSYC

VARIABLES, CONSTANTES Y EXPRESIONES ASIGNACIÓN. TIPOS ELEMENTALES. PRECEDENCIA DE LOS ESTRUCTURAS DE CONTROL. CONDICIONAL E

Ejercicio 1 (proyecto prlistas, paquete listas)

Docente: Juan Carlos Pérez P. Alumno : Fecha : Nota:

Sebastián García Galán

Curso Informática Lección 2. Introducción a la programación en Java

- Compilar y ejecutar programas en Java - Estructura básica de una clase - El comando javac - El comando java - Introducción al IDE de desarrollo

ALGORITMICA Y PROGRAMACION POR OBJETOS I

APUNTES JAVA ARRAYS (ARREGLOS) Un arreglo es un grupo de posiciones de memoria contiguas. Todas las cuales tienen el mismo nombre y el mismo tipo.

Sensor de Temperatura utilizando el Starter Kit Javelin Stamp. Realizado por: Bertha Palomeque A. Rodrigo Barzola J.

TEMA 3:Programación con Clases y Objetos.

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

Introducción: una simple colección

Derechos de Acceso: COMPOSICION

INTERFACE LIST DEL API JAVA. CLASES ARRAYLIST, LINKEDLIST, STACK, VECTOR. EJEMPLO CON ARRAYLIST. (CU00920C)

EXAMEN PROGRAMACIÓN 21 de Septiembre de 2007 INGENIERÍA INFORMÁTICA Primera parte: Cuestiones 1,5 horas

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

Tema: Arreglos de Objetos en C++.

Ingeniera de Sistemas: Luz Esperanza Espitia Tutora de Estructura de datos.

Plantillas (Templates)

Examen de Programación II (Ingeniería Informática)

o Una clase es un tipo al cual pertenecen objetos o instancias de la clase.

Introducción a Java. Introducción a Java. Programación I

Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas

Prácticas de Programación

Patrones de diseño. Patrón básico Handler. Técnicas de Programación - Curso 2008/09 (Esther Guerra Sánchez)

Examen escrito de Programación 1

Informática Lección 5. Arreglos (vectores) Curso Pedro Álvarez y José Ángel Bañares 2/11/2010. Dpto. Informática e Ingeniería de Sistemas.

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

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

FUNDAMENTOS DE PROGRAMACIÓN. SEPTIEMBRE 2007.

PROGRAMACION II. Dr. Mario Rossainz López. Fac. de Cs. de la Computación Benemérita Universidad Autónoma de Puebla Primavera de 2017

Transcripción:

Una clase que modela los atributos y el comportamiento de una colección de objetos, define un tipo de dato. Si en el modelo se encapsula la representación de los atributos y la implementación de las operaciones, el tipo de dato es abstracto. La interface describe qué pueden hacer los objetos de una clase, la implementación establece cómo lo hacen.

Al definir un tipo de dato abstracto, se extienden las facilidades provistas por el lenguaje con una nueva abstracción. Algunos tipos son generales y más fáciles de reusar. Otros son más específicos de una aplicación en particular. El TDA String provisto por Java es muy general y seguramente podrá usarse en aplicaciones muy diversas, nuestro TDA Racional es más específico y el TDA Ciudad todavía más.

Ejemplo: Implementar un TDA Vector que brinde operaciones para calcular el producto escalar de un vector, el producto vectorial entre dos vectores, la suma de dos vectores, etc. El vector se representa mediante un arreglo de números reales. La clase que encapsula al arreglo brinda operaciones para establecer y obtener un elemento y para comparar, copiar y clonar vectores.

Vector real [] vec <<constructores>> Vector (max : entero) <<comandos>> establecerelem (pos : entero, elem : real) copy (v: Vector) Asume que la Posición es válida El comentario asociado al método establecerelem establece una precondición, un compromiso para la clase cliente.

Vector real [] vec <<consultas>> existepos (p : entero): boolean existeelem (r : real) : boolean obtenerelem (p : entero) : real cantelems () : entero prodescalar(v : Vector) : real suma (v : Vector ) : Vector escalarxvector(e : entero) : Vector equals (v : Vector) : boolean clone () : Vector Asume que la posición es válida Asume que las longitudes son consistentes

public class Vector { private float[] vec; // Constructor public Vector(int m) { vec = new float[m]; // Comandos public void establecerelem(int p,float val) { //Asume que la posición es válida vec[p] = val; vec es una variable que referencia a un arreglo, Vector es una clase a partir de la cual se crearán objetos

// Consultas public boolean existepos (int p) { return (p >= 0 && p < vec.length); public float obtenerelem (int p){ //Asume que la posición es válida return vec[p]; public int cantelems () { return vec.length;

// Consultas public float prodescalar(vector v) { //Asume que las longitudes son consistentes float pe=0; for (int i=0;i<vec.length;i++) pe= pe+v.obtenerelem(i)*vec[i]; return pe;

// Consultas public Vector suma (Vector v){ //Asume que las longitudes son consistentes Vector aux=new Vector(vec.length); float r ; for (int i=0;i<vec.length;i++) { r=vec[i]+ v.obtenerelem(i)) ; aux.establecerelem(i,r); return aux;

// Consultas public Vector escalarxvector(float esc) { Vector aux = new Vector(vec.length); for (int i=0;i<vec.length;i++) aux.establecerelem(i,vec[i]*esc); return aux;

La entrada y salida se realiza desde la clase cliente. La estructura está completa y la cantidad de elementos se define en el momento de la creación. Todos los elementos ya están ingresados cuando empieza el procesamiento Introducción a la Programación

public class TestVector { public static void main (String arg[]) { Vector v1,v2,v3; v1 = generavector(m); mostrarvector(v1); v2 = generavector(m); mostrarvector(v2); if (v1.cantelems() == v2.cantelems()) { System.out.println("Producto escalar "+ v1.prodescalar(v2)); else...;

if (v1.cantelems() == v2.cantelems()) { System.out.println("Vector suma "); v3 = v1.suma(v2); mostrarvector(v3); else... v2 = v2.escalarxvector (5); System.out.println("Vector v2 X escalar "); mostrarvector(v2);

Administración de Memoria public class Vector { private float[] vec; // Constructor public Vector(int m) { vec=new float[m]; Vector v1; v1=new Vector(5); Se declara una variable v1 y se crea un objeto de la clase Vector cuya referencia se almacena en v1. v1 vec length 5

Aclaración Java brinda en el paquete java.util una clase llamada Vector con características muy diferentes a la que hemos definido. Si quisiéramos implementar la clase especificada por el diagrama y también usar la clase Vector provista por el paquete java.util, deberíamos utilizar un nombre diferente.