Reutilización del Software. Programación genérica

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

Download "Reutilización del Software. Programación genérica"

Transcripción

1 Reutilización del Software Programación genérica 1

2 Índice 1.-) Introducción 2.-) Contenedores (JGL containers) 3.-) Algoritmos (JGL algorithms) 4.-) Objetos función (JGL function objects) 5.-) Iteradores (JGL iterators) 6.-) Ejercicios con JGL 2

3 Genericidad Lista Pila Cola Queremos implementar los métodos: sort() greatest() printall() 3

4 Genericidad Lista Pila Cola sort() greatest() printall() sort() greatest() printall() sort() greatest() printall() Inconvenientes: El código el similar en todos las estructuras (replicación) Qué sucede si añadimos una nueva colección? (Set, Hash, Vector) 4

5 Genericidad Y mas cosas Algoritmos sort(colección c) greatest(colección c) printall(colección c) usa Colección (Interfaz) hasmoreelements() nextelement() implementa implementa implementa Lista Pila Cola 5

6 Genericidad class Algoritmos { public void printall (Colección c) { Object o; while (c.hasmoreelements()) { o=c.nextelement(); System.out.println(o); main() { Pila p=new Pila(); Algortimos.printAll(p); main() { Colección c=new Cola(); Algortimos.printAll(c); 6

7 Genericidad La programación genérica es una técnica que define algoritmos: 1. reusables 2. implementadados como entidades de primer nivel(clases) 3. independientes de los datos sobre los que opera Normalmente los algoritmos genéricos son utilizados sobre agregados de elementos (pilas, colas, listas, conjuntos. ) 7

8 JGL- Una librería genérica en Java 8

9 Qué es JGL? La Generic Collection Library for Java (JGL) es un conjunto de ESTRUCTURAS DE DATOS Y ALGORITMOS REUSABLES. JGL complementa a la librería que viene con el JDK (Java Development Kit), la cual contiene un soporte limitado para estructuras de datos y algoritmos. En JDK existen Vector, Enumeration, Dictionary,... 9

10 Componentes principales de la librería JGL Containers Adapters Algorithms Function Objects Iterators 10

11 Paquetes de la librería JGL package com.objectspace.jgl contiene interfaces, clases e iteradores package com.objectspace.jgl.adapters contiene los adaptadores a arrays nativos de Java package com.objectspace.jgl.algorithms contiene todos los algoritmos JGL package com.objectspace.jgl.functions contiene las funciones que pueden usarse para modificar algoritmos 11

12 Paquetes de la librería JGL(II) package com.objectspace.jgl.predicates contiene las clases con los predicados utilizados para especificar orden de elementos dentro de contenedores package com.objectspace.jgl.util contiene algunas clases con utilidades 12

13 JGL Containers La jerarquia Interfaces JDK

14 JGL Containers Características La versión JDK 1.5 y por lo tanto la JGL 5.0 permite definir clases e interfaces genéricas (generics) interface Stack<T> public interface Stack<T> extends Container<T> 14

15 JGL Containers Características Las clases al igual que las interfaces se definen de manera genérica public class ListStack<T> implements Stack<T> 15

16 JGL Containers Características Al crear una instancia se especifica la CLASE de elemento que contiene ListStack<String> pilastrings=new ListStack<String> o Stack<String> pilastrings=new ListStack<String> Ahora únicamente se pueden introducir elementos de tipo String, en caso contrario, el compilador detectará un error de tipos pilastrings.add( Esta inserción es correcta ); //OK pilastrings.add(new Integer(4)); //Error de compilación 16

17 JGL Containers Características No se pueden almacenar tipos primitivos (char, int, ) Para ello usar las clases Boolean, Character, Byte, Short, Integer, Long, Float y Double de java.lang pilaenteros.add(new Integer(4)); Cuando se extrae un elementos de la estructura NO hay que hacer el Casting Integer numero=pilaenteros.pop(); 17

18 JGL Containers Ejemplo Output array = Array(triangle, square, pentagon, hexagon) array.size() = 4 array.empty() = false after array is cleared... array.size() = 0 array.empty() = true public class Container1 { public static void main(string[] args) { Array<String> array = new Array<String>(); array.add( "triangle" ); array.add( "square" ); array.add( "pentagon" ); array.add( "hexagon" ); System.out.println( "array = " + array ); System.out.println( "array.size() = " + array.size() ); System.out.println( "array.empty() = " + array.isempty() ); array.clear(); System.out.println( "after array is cleared..." ); System.out.println( "array.size() = " + array.size() ); System.out.println( "array.empty() = " + array.isempty() ); 18

19 JGL Containers Ejemplo: Recorrido public class Container2 { public static void main( String[] args ) { Array<Integer> array = new Array<Integer>(); array.add( new Integer(1) ); array.add( new Integer(2)); array.add( new Integer(3)); Integer i; Enumeration<Integer> iterator = array.elements(); while ( iterator.hasmoreelements() ) { i= iterator.nextelement() System.out.println( i.tostring() ); Output

20 JGL Containers La interfaz Container<T> interface Container<T> public interface Container<T> extends java.lang.cloneable, java.io.serializable, java.util.collection<t> 20

21 JGL Containers 21

22 JGL Sequences La interfaz Sequence<T> Métodos pushfront/pushback popfront/popback front/back at/put remove replace public interface Sequence<T> extends Container<T>, java.util.list<t> Significado inserta un elemento al principio/final elimina y devuelve el elemento al principio/final devuelve el primer/último elemento devuelve/reemplaza el elemento en la posición especificada borra un valor concreto reemplaza un valor por otro count indexof cuenta el número de elementos coincidentes con uno devuelve la posición de un elemento concreto 22

23 JGL Containers => Sequences Ejemplo public class Sequences2 { public static void main( String[] args ) { Deque<String> deque =new Deque<String>(); deque.pushback( "APE" ); deque.pushback( "BAT" ); deque.pushfront( BAT"); deque.add( "cat" ); deque.add( "bat" ); deque.add( "bat" ); deque = Deque( BAT, APE, BAT, cat, bat, bat, cat ) deque.count( bat ) = 2 deque.indexof( bat ) = 4 After deque.remove( 4 ) = Deque( BAT, APE, BAT, cat, bat, cat ) After deque.replace( 0, 1, BAT, bat ) = Deque( bat, APE, BAT, cat, bat, cat ) deque.remove( cat ) = 2 After deque.remove( cat ) = Deque( bat, APE, BAT, bat ) deque.add( "cat" ); // add ES SINONIMO DE pushback System.out.println( "deque = " + deque ); System.out.println( "deque.count( bat ) = " + deque.count( "bat" ) ); int index = deque.indexof( "bat" ); System.out.println( "deque.indexof( bat ) = " + index ); deque.remove( index ); System.out.println( "After deque.remove( " + index + " ) = " + deque ); deque.replace( 0, 1, "BAT", "bat" ); System.out.println( "After deque.replace( 0, 1, BAT, bat ) = " + deque ); System.out.println( "deque.remove( cat ) = " + deque.remove( "cat" ) ); System.out.println( "After deque.remove( cat ) = " + deque ); 23

24 JGL Queues y Stacks CONTAINERS QUEUES & STACKS <<interface>> Container <<interface>> Queue <<interface>> PriorityQueue <<interface>> Stack ListQueue ListPriorityQueue ListStack Stack es una estructura de pila (LIFO). Por defecto, para su almacenamiento interno utiliza un Array, pero puede cambiarse. Queue es una estructura de cola (FIFO). Por defecto, para su almacenamiento interno utiliza una Slist, pero puede cambiarse. PriorityQueue es una estructura de cola con los elementos ordenados y que devuelve los elementos según dicho orden. Por defecto, para su almacenamiento interno utiliza un Array, pero puede cambiarse 24

25 JGL Queues y Stacks Aparte de los métodos de CONTAINER, Stack y Queue tienen los métodos push pop inserta un nuevo elemento en la Pila/Cola devuelve el último/primer elemento insertado en la Pila/Cola Los métodos para PriorityQueue son también push y pop. Al crear un nuevo objeto de dicho tipo se le puede dar un predicado por el cual se ordenen los elementos en la cola. Por ejemplo: GreaterString() 25

26 interface Stack<T> public interface Stack<T> extends Container<T> 26

27 interface Queue<T> public interface Queue<T>extends Container<T> 27

28 interface PriorityQueue<T> public interface PriorityQueue<T> extends Container<T> 28

29 JGL Queues y Stacks Ejemplo public class Stacks1 { public static void main( String[] args ) { Stack<String> stack = new Stack<String>(); stack.push( "bat" ); stack.push( "cat" ); stack.push( "dog" ); System.out.println( "stack = " + stack ); System.out.println(); bat System.out.println( "Non-destructively enumerate the Stack." ); Enumeration<String> e = stack.elements(); while ( e.hasmoreelements() ) System.out.println( e.nextelement() ); System.out.println(); System.out.println( "Pop and print each element." ); while (!stack.isempty() ) System.out.println( stack.pop() ); Output stack = Stack( Array( bat, cat, dog ) ) Non-destructively enumerate the Stack. bat cat dog Pop and print each element. dog cat 29

30 JGL Queues y Stacks Ejemplo public class Stacks5 { public static void main( String[] args ) { // Utiliza el predicado GreaterString para comparar elementos. PriorityQueue<String> queue = new PriorityQueue<String>( new GreaterString<String>() ); queue.push( "cat" ); queue.push( "dog" ); queue.push( "ape" ); queue.push( "bat" ); queue.push( "fox" ); queue.push( "emu" ); System.out.println( "Pop and print each element." ); while (!queue.isempty() ) System.out.print( queue.pop() + " "); Output Pop and print each element. ape bat cat dog emu fox 30

31 JGL Array adapters Los algoritmos genéricos de JGL se pueden aplicar a contenedores JGL, arrays nativos de Java y a estructuras de datos JDK. Para ello existen unas clases adaptadores que hacen que los arrays nativos 31 actúen como contenedores JGL (JGL Container)

32 Container add() clear() clone() JGL Array adapters implementa IntArray usa int[] class IntArray<T> implements Container<T> { int[] myarray; IntArray(int[] parray){ myarray=parray; public void add(object o) public void clear().. 32

33 JGL Array adapters Ejemplo: Recorrido arrays nativos public class Adapters1 { public static void main(string[] args) { int[] nativearray = new int[]{ 0, 3, 6, 0, 2, 3, 0, 7 ; List<Integer> intarray = new IntArray<Integer>(nativeArray); System.out.println( "Printing with JGL adapter: " + intarray ); // Now, treat the array like a list. ListIterator<Integer> iter = intarray.listiterator(); System.out.print( "Iterate forwards: " ); while ( iter.hasnext() ) System.out.print( iter.next() ); System.out.print( "\nand iterate backwards: " ); while ( iter.hasprevious() ) System.out.print( iter.previous() ); Output Printing with JGL adapter: (0, 3, 6, 0, 2, 3, 0, 7) Iterate fordwards :( ) 33 And iterate backwards = )

34 JGL Array adapters Ejemplo: Utilizando algoritmos public class Adapters2 { public static void main(string[] args) { int[] nativearray = new int[]{ 5, -1, 3, 6, 2, 3, 1, 7, -2 ; // Wrap the native array List<Integer> intarray = new IntArray<Integer>(nativeArray ); System.out.println( intarray ); // Count the values greater than 3 UnaryPredicate<Integer> greaterthan2 = new BindSecondPredicate<Integer>( new GreaterNumber<Integer>(), new Integer(2)); int count = Counting.countIf(intArray, greaterthan2); System.out.println( "Values greater than 2: " + count ); // Replace negative values with 0 Replacing.replaceIf(intArray, new NegativeNumber(), new Integer(0)); System.out.println( "Replace negative values with 0: " + intarray ); Counting.countIf y Replacing.replaceIf SON JGL ALGORITHMS (se trata más adelante) Output int[]( 5, -1, 3, 6, 2, 3, 1, 7, -2 ) Values greater than 2: 5 34 Replace negative values with 0: int[]( 5, 0, 3, 6, 2, 3, 1, 7, 0 )

35 Ejercicio Cómo definirías una Pila de enteros, utilizando como estructura interna de almacenamiento un array nativo de enteros? Modela el diagrama de clases Crea una instancia Pila y añade un elemento 35

36 JGL algorithms JGL proporciona más de 50 algoritmos reusables (desde un filtrado a un quicksort) que pueden ser aplicados a contenedores JGL, JDK y arrays nativos de Java (a través de adapters). Cada algoritmo se implementa como un método estático y público de una clase. Las clases son: Applying, Comparing, Copying, Counting, Filling, Filtering, Finding, Heap, MinMax, Permuting, Printing, Removing, Replacing, Reversing, Rotating, SetOperations, Shuffling, Sorting, Swapping, Transforming No pueden crearse instancias de estas clases 36 Se encuentran en com.objectspace.jgl.algorithms

37 JGL algorithms Ejemplo Counting public class Algorithms3 { public static void main( String[] args ) { Slist<Integer> list = new SList<Integer>(); list.add( new Integer( -1 ) ); list.add( new Integer( 1 ) ); list.add( new Integer( -2 ) ); list.add( new Integer( 1 ) ); list.add( new Integer( -3 ) ); System.out.println( "list = " + list ); Output list = SList( -1, 1, -2, 1, -3 ) Occurences of 1 = 2 Occurences of a negative = 3 NegativeNumber() ES JGL PREDICATE Object value = new Integer( 1 ); (se trata más adelante) int n1 = Counting.count( list, value ); System.out.println( "Occurences of " + value + " = " + n1 ); int n2 = Counting.countIf( list, new NegativeNumber<Integer>() ); System.out.println( "Occurences of a negative = " + n2 ); 37

38 JGL algorithms Ejemplo Finding Output public class Algorithms4 { public static void main( String[] args ) { int ints[] = { 3, 7, 8, 2, -5, 8, 9, -2 ; IntArray array = new IntArray( ints ); System.out.println( "array = " + array ); array = int[]( 3, 7, 8, 2, -5, 8, 9, -2 ) first negative = -5 some items are negative = true Integer negative = Finding.detect( array, new NegativeNumber<Integer>() ); System.out.println( "first negative = " + negative ); boolean some = Finding.some( array, new NegativeNumber<Integer>() ); System.out.println( "some items are negative = " + some ); 38

39 JGL Function Objects Muchos de los algoritmos y de los contenedores JGL requieren que se especifique un objeto función para poder ejecutar sus operaciones Hay dos tipos de objetos función: Predicados, devuelven valores booleanos y se usan para ordenar elementos o activar ejecuciones de acciones. Se encuentran en com.objectspace.jgl.predicates Funciones generales, ejecutan operaciones y devuelven objetos Se encuentran en com.objectspace.jgl.functions Se crean instancias de dichas clases de objetos 39 función

40 JGL Function Objects Predicates Los predicados se utilizan para ejecutar acciones u ordenar elementos. Devuelven siempre un valor booleano. El algoritmo countif() permite contar elementos que cumplen una determinada condición booleana (expresada mediante un predicado unario). El algoritmo sort() ordena según un criterio de ordenación (expresado mediante un predicado binario) JGL define interfaces para predicados unarios y binarios La interfaz UnaryPredicate tiene un método llamado execute() que toma un único parámetro un objeto La interfaz BinaryPredicate define un método 40 execute() que toma como parámetros dos objetos

41 La interfaz UnaryPredicate public interface UnaryPredicate<T> 41

42 JGL Function Objects Ejemplo: Unary Predicate. Mayores que 5 public class Functions { public static void main( String[] args ) { int array[] = { 5, 6, 7, 4, 3 ; IntArray ints = new IntArray( array ); UnaryPredicate<Integer> predicate = new GreaterThan5<Integer>(); int n = Counting.countIf( ints, predicate ); System.out.println( Greater than 5 in " + ints + " = " + n ); public final class GreaterThan5<T> implements UnaryPredicate<T> { public boolean execute(t number) { return ( number.intvalue()>5); 42

43 JGL Function Objects Ejemplo: Binary Predicate. Sort public class Functions { public static void main( String[] args ) { Deque deque=new Deque(); //insert data deque.add( cat );... BinaryPredicate comparator=new GreaterString<String>(); Sorting.sort(deque, comparator); public class GreaterString<T> implements BinaryPredicate<T,T> { public boolean execute(t first, T second) { return (first.tostring()).compareto(second.tostring() )> 0; 43

44 JGL Function Objects Predicates La librería de JGL nos ofrece un conjunto de predicados YA predefinidos En la documentación de JGL aparece: Todos los predicados unarios predefinidos Todos los predicados binarios predefinidos Todas los algoritmos JGL que aceptan un predicado 44

45 JGL Function Objects General Functions Las funciones generales se utilizan para aplicar operaciones matemáticas a todos los elementos de una colección. El algoritmo transform() puede ser usado para obtener una nueva secuencia a partir de otra donde a todos los elementos se les cambia de signo. JGL define interfaces para funciones unarias y binarias La interfaz UnaryFunction tiene un método llamado execute() que toma un objeto como parámetro y devuelve un objeto La interfaz BinaryFunction tiene un método execute() que toma como dos objetos como parámetros y devuelve un objeto 45

46 public class Functions5 { public static void main( String[] args ) { Deque<Integer> deque = new Deque<Integer>(); deque.add( new Integer( 4 ) ); deque.add( new Integer( -2 ) ); deque.add( new Integer( 3 ) ); UnaryFunction<Integer,Integer> function = Output before = Deque( 4, -2, 3 ) after = Deque( -4, 2, -3 ) new NegateNumber<Integer>(); System.out.println( "before = " + deque ); Transforming.transform( deque, deque.begin(), function ); System.out.println( "after = " + deque ); public class NegateNumber<T> implements UnaryFunction<T,T> { public T execute (T number) { return -1 *number ; JGL Function Objects General Functions 46

47 import com.objectspace.jgl.*; Output import com.objectspace.jgl.adapters.*; import com.objectspace.jgl.algorithms.*; import com.objectspace.jgl.functions.*; public class Algorithms9 { public static void main( String[] args ) { int ints1[] = { 1, 3, 5, 2 ; Array<Integer> array = new Array<Integer>(); IntArray<Integer> intarray1 = new IntArray<Integer>( ints1 ); UnaryFunction<Integer,Integer> function = new NegateNumber<Integer>(); Transforming.transform( intarray1, array, function ); System.out.println( "ints1 = " + intarray1 ); System.out.println( "array = " + array ); System.out.println(); int ints2[] = { 2, 4, 2, 3 ; int ints3[] = { 3, 6, 2, 1 ; SList<Integer> list = new Slist<Integer>(); IntArray<Integer> intarray2 = new IntArray<Integer>( ints2 ); IntArray<Integer> intarray3 = new IntArray<Integer>( ints3 ); BinaryFunction<Integer,Integer> function2 = new TimesNumber<Integer>(); Transforming.transform( intarray2, intarray3, list, function2 ); System.out.println( "ints2 = " + intarray2 ); System.out.println( "ints3 = " + intarray3 ); System.out.println( "list = " + list ); ints1 = int[]( 1, 3, 5, 2 ) array = Array( -1, -3, -5, -2 ) ints2 = int[]( 2, 4, 2, 3 ) ints3 = int[]( 3, 6, 2, 1 ) list = SList( 6, 24, 4, 3 ) 47

48 public class Algorithms1 { public static void main( String[] args ) { Array<String> array1 = new Array<String>(); array1.add( "cat" ); array1.add( "monkey" ); array1.add( "goat" ); Applying.forEach( array1, new Print<String>() ); SList<Integer> list = new SList<Integer>(); list.add( new Integer( 3 ) ); list.add( new Integer( 7 ) ); list.add( new Integer( 4 ) ); Output cat monkey PRINT goat list = SList( 3, 7, 4 ), total = 14 Integer total = Applying.inject( list, new Integer( 0 ), new PlusNumber<Integer>() ); System.out.println( "list = " + list + ", total = " + total ); class Print<T> implements UnaryFunction<T,T> { public T execute( T object ) { System.out.println(object.toString() ); return null; // Not used. 48

49 JGL Function Objects General Functions La librería de JGL nos ofrece un conjunto de funciones YA predefinidos En la documentación de JGL aparece: Todas las funciones unarias predefinidas Todas las funciones binarias predefinidas Todos los algoritmos JGL que aceptan una función 49

50 JGL Function Objects Binders Los objetos predicado BindFirstPredicate y BindSecondPredicate permiten fijar el primer o segundo argumento de un predicado binario public class Functions5 { public static void main( String[] args ) { DList<String> list = new DList<Integer>(); list.add( rojo ); list.add( amarillo ); list.add( verde ); list.add( azul ); UnaryPredicate<String> predicate= new BindSecondPredicate(new GreaterString<String>(), ambar ) int n =Counting.countIf(list,predicate); 50

51 JGL Function Objects Composers Los objetos función UnaryComposePredicate y BinaryComposePredicate permiten aplicar una función secundaria a cada operando antes de aplicar el predicado principal. Se pueden crear funciones objeto propias implementando el interfaz apropiado: UnaryPredicate BinaryPredicate,UnaryFunction,BinaryFunction y definiendo el método execute() 51

52 JGL Function Objects Composers Ejemplo: Ordenar un Array de Strings, en base al número de caracteres public class Functions7 { public static void main( String[] args ) { Array<String> array=new Array<String>(); list.add( rojo ); list.add( amarillo ); list.add( verde ); BinaryPredicate<String,String> comparator= new BinaryComposePredicate( new GreaterNumber<Integer,Integer>(), new LegthString<String, Integer>(), new LegthString<String,Integer>() ); Sorting.sort(array, comparator); 52

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

Identificadores, palabras reservadas, tipos de datos, operadores aritméticos y el sistema estándar de salida en Java Identificadores, palabras reservadas, tipos de datos, operadores aritméticos y el sistema estándar de salida en Java Identificadores Las variables se utilizan en programación para almacenar temporalmente

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

Tipos primitivos y clases de interés

Tipos primitivos y clases de interés Programación Avanzada para Sistemas de Telecomunicación Tipos primitivos y clases de interés Juan Carlos Cruellas cruellas@ac.upc.es Objetos y clases Tipos primitivos. Clase String y asociadas. Clases

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

AGRUPA P R OBJET E OS 1

AGRUPA P R OBJET E OS 1 AGRUPAR OBJETOS 1 Son objetos que pueden almacenar un número arbitrario de objetos. Para formar colecciones usaremos la clase ArrayList. Para poder utilizar dicha clase habrá que importar el paquete java.util,

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

Colecciones. Nadjet Bouayad-Agha Programación 2007

Colecciones. Nadjet Bouayad-Agha Programación 2007 Colecciones Nadjet Bouayad-Agha Programación 2007 ArrayList Un ArrayList es un array dinámico. No tiene restricciones de capacidad. Su tamaño se ajusta de forma dinámica. Constructor por defecto: new ArrayList().

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

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

STL: Standard Template Library

STL: Standard Template Library STL: Standard Template Library Estructuras de Datos Andrea Rueda Pontificia Universidad Javeriana Departamento de Ingeniería de Sistemas Consideraciones de diseño Programas = Algoritmos + Datos (ecuación

Más detalles

El lenguaje de Programación C. Fernando J. Pereda <ferdy@gentoo.org>

El lenguaje de Programación C. Fernando J. Pereda <ferdy@gentoo.org> El lenguaje de Programación C Fernando J. Pereda Por qué aprender C? Portable y muy extendido Estándar (C89, C99) El lenguaje de los sistemas Un lenguaje fácil (no, no es broma) Por

Más detalles

Introducción a Java LSUB. 15 de enero de 2015 GSYC

Introducción a Java LSUB. 15 de enero de 2015 GSYC Introducción a LSUB GSYC 15 de enero de 2015 (cc) 2014 Laboratorio de Sistemas, Algunos derechos reservados. Este trabajo se entrega bajo la licencia Creative Commons Reconocimiento - NoComercial - SinObraDerivada

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

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

FACULTAD DE INGENIERÍA

FACULTAD DE INGENIERÍA NOMBRE DEL PROFESOR: Ing. Héctor Manuel Quej Cosgaya NOMBRE DE LA PRÁCTICA: Variables y Tipos de Datos PRÁCTICA NÚM. [ 1 ] LABORATORIO: MATERIA: UNIDAD: TIEMPO: Centro de Ingeniería Computacional Lenguaje

Más detalles

Java en 2 horas. Rodrigo Santamaría

Java en 2 horas. Rodrigo Santamaría + Java en 2 horas Rodrigo Santamaría + Generalidades 2 Desarrollado por Sun en 1995 Hereda mucha de la sintaxis de C (1972) Fuertemente tipado y orientado a objetos Aplicaciones compiladas a bytecode Gestión

Más detalles

Introducción al lenguaje Java

Introducción al lenguaje Java Tipo de entrega: Fecha límite: Lugar: Introducción al lenguaje Java por grupos de prácticas sesión de laboratorio Atenea Objetivos de la práctica: Escribir aplicaciones simples en Java Utilizar el entorno

Más detalles

Introducción al lenguaje de programación java

Introducción al lenguaje de programación java Introducción al lenguaje de programación java Algoritmia y Programación Slide 1 LENGUAJES DE PROGRAMACION Un lenguaje de programación es un idioma artificial diseñado y creado para expresar algoritmos

Más detalles

10. Algunas clases estándar de Java (I)

10. Algunas clases estándar de Java (I) Programación orientada a objetos con Java 113 10. Algunas clases estándar de Java (I) Objetivos: a) Presentar algunas de las clases predefinidas en Java b) Interpretar el código fuente de una aplicación

Más detalles

Para leer la entrada de consola, lo primero que se hace es construir un Scanner que este asociado al flujo de entrada estándar System.

Para leer la entrada de consola, lo primero que se hace es construir un Scanner que este asociado al flujo de entrada estándar System. CICLO: 01/2010 Universidad Don Bosco Materia: Lenguaje de Programación III Contenido: 1-Lectura de Datos de entrada. 2-Introduccion a JOPTIONPANE. 3-Estructuras de Control. ->LECTURA DE DATOS DE ENTRADA

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

11. Algunas clases estándar de Java (II)

11. Algunas clases estándar de Java (II) 122 A. García-Beltrán y J.M. Arranz 11. Algunas clases estándar de Java (II) Objetivos: a) Presentar la clase predefinida en Java para trabajar con arrays b) Interpretar el código fuente de una aplicación

Más detalles

Vectores y matrices. Arrays Declaración Creación Acceso a los elementos de un array Manipulación de vectores y matrices

Vectores y matrices. Arrays Declaración Creación Acceso a los elementos de un array Manipulación de vectores y matrices Vectores y matrices Arrays Declaración Creación Acceso a los elementos de un array Manipulación de vectores y matrices Algoritmos de ordenación Ordenación por selección Ordenación por inserción Ordenación

Más detalles

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

1. Manejo de memoria estática 2. Manejo de memoria dinámica 1. Manejo de memoria estática 2. Manejo de memoria dinámica *La administración de memoria de una computadora es una tarea fundamental debido a que la cantidad de memoria es limitada. *El sistema operativo

Más detalles

Sintaxis y Convenciones de Java. M. en C. Erika Vilches

Sintaxis y Convenciones de Java. M. en C. Erika Vilches Sintaxis y Convenciones de Java M. en C. Erika Vilches Estructura del Código en Java Hay una clase en un archivo fuente Hay métodos en una clase Hay enunciados en un método Anatomía de una Clase Cuando

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

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

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

FACULTAD DE INGENIERÍA

FACULTAD DE INGENIERÍA NOMBRE DEL PROFESOR: Ing. Héctor Manuel Quej Cosgaya NOMBRE DE LA PRÁCTICA: Operadores y Expresiones PRÁCTICA NÚM. [ 3 ] LABORATORIO: MATERIA: UNIDAD: TIEMPO: Centro de Ingeniería Computacional Lenguaje

Más detalles

Tema 2. El lenguaje de programación Java. Arrays y cadenas

Tema 2. El lenguaje de programación Java. Arrays y cadenas Programación en Java Tema 2. El lenguaje de programación Java. Arrays y cadenas Luis Rodríguez Baena Facultad de Informática Arrays y colecciones Hay dos formas de guardar varias referencias a objetos:

Más detalles

2. Estructura de un programa en Java

2. Estructura de un programa en Java 24 A. García-Beltrán y J.M. Arranz 2. Estructura de un programa en Java Objetivos: a) Describir la estructura del código fuente de una aplicación Java b) Presentar los conceptos de comentario y de identificador

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

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

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

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

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

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

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

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

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

Gestor de aplicaciones Java. Esta herramienta es el intérprete de los archivos de clase generados por el javac (compilador).

Gestor de aplicaciones Java. Esta herramienta es el intérprete de los archivos de clase generados por el javac (compilador). CAPÍTULO 4 Requerimientos de software Este capítulo presenta las herramientas necesarias para la construcción y ejecución de programas en el lenguaje de programación JAVA, los requerimientos mínimos de

Más detalles

Tema 3 Elementos básicos de programación

Tema 3 Elementos básicos de programación Representación de Datos y Aplicaciones Tema 3 Elementos básicos de programación Natividad Martínez Madrid nati@it.uc3m.es Objetivos del tema 3 Conocer la estructura básica de un programa Java Comprender

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

Interface nominterface{

Interface nominterface{ Programación Orientada a Objetos Interfaces, Contenedores y Casting Angela C. Carrillo Ramos Interface Define un tipo con un contrato abstracto Una interface puede heredar de otras interfaces interface

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

Clase adicional 3. Métodos. Temas

Clase adicional 3. Métodos. Temas Clase adicional 3 Temas Métodos o Definir un método o Llamar a un método o Llamada por valor o Constructores o Método static Arrays Vectores Problemas de la clase adicional Problemas de diseño Métodos

Más detalles

Clase 33. Marco para las colecciones de Java. Historia

Clase 33. Marco para las colecciones de Java. Historia Clase 33 Marco para las colecciones de Java Historia En la versión original del kit de desarrollo de Java, JDK 1.0, los desarrolladores contaban con muy pocas estructuras de datos. Éstas eran: Vector Stack:

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

PART II: Moviendo al jugador

PART II: Moviendo al jugador UNITY PART II: Moviendo al jugador El movimiento se lo vamos a dar a través de un programa Definición de programa: Un programa es una secuencia de instrucciones, escritas para realizar una tarea específica

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

Tema 4.- Pilas y Colas

Tema 4.- Pilas y Colas Apuntes elaborados por: Eduardo Quevedo, Raquel López y Aaron Asencio Revisado por: Javier Miranda el???? Tema 4.- Pilas y Colas Las pilas y colas son estructuras de datos que se utilizan generalmente

Más detalles

INGENIERÍA DEL SOFTWARE. 4º ING. INFORMÁTICA (UPV/EHU) 31 de MAYO de 2001

INGENIERÍA DEL SOFTWARE. 4º ING. INFORMÁTICA (UPV/EHU) 31 de MAYO de 2001 INGENIERÍA DEL SOFTWARE. 4º ING. INFORMÁTICA (UPV/EHU) 31 de MAYO de 2001 NOMBRE: GRUPO: 1.- Es posible que un sistema que no ofrezca mecanismos de HERENCIA presente la característica conocida por POLIMORFISMO?

Más detalles

Primera Escuela de la Red Temática SVO. Madrid, 27-28 Noviembre, 2006 JAVA BÁSICO. Raúl Gutiérrez Sánchez LAEFF - INTA raul@laeff.inta.

Primera Escuela de la Red Temática SVO. Madrid, 27-28 Noviembre, 2006 JAVA BÁSICO. Raúl Gutiérrez Sánchez LAEFF - INTA raul@laeff.inta. Primera Escuela de la Red Temática SVO. Madrid, 27-28 Noviembre, 2006 JAVA BÁSICO LAEFF - INTA raul@laeff.inta.es Qué es Java? Java es un lenguaje de programación orientado a objetos desarrollado por Sun

Más detalles

Paquetes de java. java.applet

Paquetes de java. java.applet Paquetes de java El lenguaje Java proporciona una serie de paquetes que incluyen ventanas, utilidades, un sistema de entrada/salida general, herramientas y comunicaciones. En la versión actual del JDK,

Más detalles

Programa Java. El lenguaje de programación Java. Comentarios. Programa Java. Palabras reservadas. Identificadores

Programa Java. El lenguaje de programación Java. Comentarios. Programa Java. Palabras reservadas. Identificadores El lenguaje de programación Java Programa Java Un programa Java está formado por un conjunto de clases que interactúan entre sí La clase es la unidad básica de programación La ejecución depende de la clase

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

class Nombre_Clase extends Nombre_SuperClase { cuerpo de la clase extendida }

class Nombre_Clase extends Nombre_SuperClase { cuerpo de la clase extendida } REUTILIZACIÓN DE CLASES:MODELO DE HERENCIA EN JAVA Java soporta herencia simple pero no múltiple. Lo hace mediante el mecanismo de extensión de clase. A partir de él, una subclase se extiende (hereda)

Más detalles

Caso práctico Alquiler de películas en un vídeo-club

Caso práctico Alquiler de películas en un vídeo-club Caso práctico Alquiler de películas en un vídeo-club Adaptado de Refactoring Martin Fowler, 2000 Supongamos que tenemos que desarrollar una aplicación que gestione los alquileres de DVDs en un vídeo-club.

Más detalles

Tema 1. Introducción a JAVA

Tema 1. Introducción a JAVA Tema 1. Introducción a JAVA Historia Características Plataforma Java Entorno de desarrollo Ejemplo: Hola mundo Estructura general de un programa Java 1 Historia de Java (i) Surge en 1991: Sun Microsystems

Más detalles

Estructura de Datos [Tipos de datos concretos y tipos de datos abstractos]

Estructura de Datos [Tipos de datos concretos y tipos de datos abstractos] Estructura de Datos [Tipos de datos concretos y tipos de datos abstractos] M. en C. Sergio Luis Pérez Pérez UAM CUAJIMALPA, MÉXICO, D. F. Trimestre 14-O Sergio Luis Pérez (UAM CUAJIMALPA) Curso de Estructura

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

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

Preliminares. Tipos de variables y Expresiones

Preliminares. Tipos de variables y Expresiones Preliminares. Tipos de variables y Expresiones Felipe Osorio Instituto de Estadística Pontificia Universidad Católica de Valparaíso Marzo 5, 2015 1 / 20 Preliminares Computadoras desarrollan tareas a un

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

Java en 3 horas. Ampliación de Sistemas Operativos. Rodrigo Santamaría

Java en 3 horas. Ampliación de Sistemas Operativos. Rodrigo Santamaría Java en 3 horas Ampliación de Sistemas Operativos Rodrigo Santamaría Generalidades Desarrollado por Sun Hereda mucha de la sintaxis de C (1972) Fuertemente tipado y orientado a objetos Aplicaciones compiladas

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

James Gosling, creador de Java

James Gosling, creador de Java Lo que Java intenta hacer y lo hace con bastante éxito, es abarcar dominios diferentes. De esa forma le permite efectuar trabajos para de aplicaciones del lado del servidor, del lado del cliente, para

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

Universidad Central de Bayamón COLEGIO DE DESARROLLO EMPRESARIAL Y TECNOLOGIA. Número Estudiante:

Universidad Central de Bayamón COLEGIO DE DESARROLLO EMPRESARIAL Y TECNOLOGIA. Número Estudiante: Universidad Central de Bayamón COLEGIO DE DESARROLLO EMPRESARIAL Y TECNOLOGIA Número Estudiante: Fecha: Nombre: Examen #1- COMP 250 Prof. Carlos Rodríguez Sánchez Selección Múltiple. Marque la MEJOR contestación

Más detalles

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

VARIABLES, CONSTANTES Y EXPRESIONES ASIGNACIÓN. TIPOS ELEMENTALES. PRECEDENCIA DE LOS ESTRUCTURAS DE CONTROL. CONDICIONAL E Java Java es un lenguaje de programación presentado en 1995 enfocado a: soportar los fundamentos de la programación orientada a objetos. generar código independiente de la arquitectura de la computadora

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

Prácticas: Introducción a la programación en Java. Informática (1º Ingeniería Civil) Curso 2011/2012

Prácticas: Introducción a la programación en Java. Informática (1º Ingeniería Civil) Curso 2011/2012 Prácticas: Introducción a la programación en Java Informática (1º Ingeniería Civil) Índice Introducción a Java y al entorno de desarrollo NetBeans Estructura de un programa Tipos de datos Operadores Sentencias

Más detalles

Colecciones de Java LSUB. 17 de febrero de 2016 GSYC

Colecciones de Java LSUB. 17 de febrero de 2016 GSYC Colecciones de Java LSUB GSYC 17 de febrero de 2016 (cc) 2013 Laboratorio de Sistemas, Algunos derechos reservados. Este trabajo se entrega bajo la licencia Creative Commons Reconocimiento - NoComercial

Más detalles

EJEMPLO DE PRUEBAS UNITARIAS Y DE INTEGRACIÓN.

EJEMPLO DE PRUEBAS UNITARIAS Y DE INTEGRACIÓN. EJEMPLO DE PRUEBAS UNITARIAS Y DE INTEGRACIÓN. 1 Se desean realizar las pruebas unitarias y de integración de las 3 clases cuyo código se ofrece a continuación: Cliente.java: import java.util.vector; public

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

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

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

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

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

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

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

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

Interfaces. Amparo López Gaona. Septiembre de Amparo López Gaona () Interfaces Septiembre de / 1 Interfaces Amparo López Gaona Septiembre de 2008 Amparo López Gaona () Interfaces Septiembre de 2008 1 / 1 Interfaces Las interfaces Java permiten al diseñador de clases establecer su forma definiendo

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

TEMA 2. Agenda. Fundamentos de JAVA

TEMA 2. Agenda. Fundamentos de JAVA TEMA 2 Fundamentos de JAVA V1.3 Manuel Pereira González Agenda Introducción Historia de Java Características Principales Hello World Tipos Operadores Control de Flujo E/S básica Atributos y Métodos Resumen

Más detalles

INSTITUTO POLITECNICO NACIONAL. ESCUELA SUPEIRIOR DE INGENIERIA MECANICA Y ELECTRICA. UNIDAD CULHUACAN. INTEGRANTES: FLORES ACOLTZI ONESIMO

INSTITUTO POLITECNICO NACIONAL. ESCUELA SUPEIRIOR DE INGENIERIA MECANICA Y ELECTRICA. UNIDAD CULHUACAN. INTEGRANTES: FLORES ACOLTZI ONESIMO INSTITUTO POLITECNICO NACIONAL. ESCUELA SUPEIRIOR DE INGENIERIA MECANICA Y ELECTRICA. UNIDAD CULHUACAN. INTEGRANTES: FLORES ACOLTZI ONESIMO MARCEL SANTOS ARIEL MARTINEZ AGUILAR GILBERTO. MATERIA: ESTRUCTURA

Más detalles

1 HILOS (THREADS) EN JAVA

1 HILOS (THREADS) EN JAVA 1 HILOS (THREADS) EN JAVA 1.1QUÉ ES UN THREAD La Máquina Virtual Java (JVM) es un sistema multihilo. Es decir, es capaz de ejecutar varios hilos de ejecución simultáneamente. La JVM gestiona todos los

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

Tutorial básico del entorno de desarrollo Eclipse.

Tutorial básico del entorno de desarrollo Eclipse. Tutorial básico del entorno de desarrollo Eclipse. Arrancar Eclipse. Después de descomprimir la aplicación, dar doble clic sobre el ícono ejecutable para arrancar la aplicación. En caso de que se presente

Más detalles

PROGRAMACIÓN N C++ CONSTRUCTORES PROG.C++ L11 CONSTRUCTORES DEL LENGUAJE

PROGRAMACIÓN N C++ CONSTRUCTORES PROG.C++ L11 CONSTRUCTORES DEL LENGUAJE L11 CONSTRUCTORES DEL LENGUAJE CLASES class { } PLANTILLAS template { } ESPACIOS DE NOMBRES namespace { } EXCEPCIONES try catch.. SOBRECARGA DE OPERADORES operator (parametros) BIBLIOTECA

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

Manual del Modelizador. 28 de enero de 2009

Manual del Modelizador. 28 de enero de 2009 Índice de contenidos Introducción... 1 Proceso de ejecución de modelos... 1 Origen de datos... 3 Detalles técnicos... 3 Lenguaje de programación... 3 Estructura de los modelos... 3 Biblioteca de clases...

Más detalles

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO. Introducción FACULTAD DE INGENIERÍA. Ordenación

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO. Introducción FACULTAD DE INGENIERÍA. Ordenación Introducción Uno de los procedimientos más comunes y útiles en el procesamiento de datos, es la clasificación u ordenación de los mismos. Se considera ordenar al proceso de reorganizar un conjunto dado

Más detalles

1. Qué tipos de relación hay entre las siguientes clases?

1. Qué tipos de relación hay entre las siguientes clases? Ejercicios Tema 8: Herencia 1. Qué tipos de relación hay entre las siguientes clases? Personal de la Universidad PAS Profesor 1 n Estudiante a) herencia y asociación b) herencia y dependencia c) dependencia

Más detalles

Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación. IIC1102 Introducción a la Programación

Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación. IIC1102 Introducción a la Programación Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación IIC1102 Introducción a la Programación Tutorial eclipse TM Introducción al uso de eclipse TM Contents

Más detalles

La clase estándar Scanner

La clase estándar Scanner La clase estándar Scanner La clase Scanner de Java provee métodos para leer valores de entrada de varios tipos y está localizada en el paquete java.util. Los valores de entrada pueden venir de varias fuentes,

Más detalles

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

Sensor de Temperatura utilizando el Starter Kit Javelin Stamp. Realizado por: Bertha Palomeque A. Rodrigo Barzola J. Sensor de Temperatura utilizando el Starter Kit Javelin Stamp Realizado por: Bertha Palomeque A. Rodrigo Barzola J. INTRODUCCION DIFERENCIAS EJEMPLOS JAVA Orientado a Objetos Multiplataforma Programar

Más detalles

Aprendizaje activo: flujos

Aprendizaje activo: flujos Clase 29 Aprendizaje activo: flujos La aplicación Logger 2 1 Objetivos En el marco de trabajo de la aplicación Logger, analizaremos tres formas de leer y escribir datos utilizando flujos de Java: 1. como

Más detalles

Introducción al tipo de dato ARRAY

Introducción al tipo de dato ARRAY CONTENIDOS. Introducción al tipo de dato ARRAY. Definición, Características, Declaración, Acceso e Inicialización.. Arrays multidimensionales Definición, Declaración, Acceso e Inicialización. Introducción

Más detalles

Benemérita Universidad Autónoma del Estado de Puebla

Benemérita Universidad Autónoma del Estado de Puebla Benemérita Universidad Autónoma del Estado de Puebla Facultad de Cs. De la Computación Programación Concurrente y Paralela Práctica de Laboratorio No. 4 Profr: María del Carmen Cerón Garnica Alumno: Roberto

Más detalles