Documentos de Académico
Documentos de Profesional
Documentos de Cultura
20142015
F. de Sande
Java
F. de Sande
F. de Sande
Ficheros
Cada fichero de Java contiene una clase (cuyo nombre coincide con el del
fichero sin su extension) y todas las funciones de la clase.
No se separan, por tanto, las cabeceras.
F. de Sande
Ejercicio 1
F. de Sande
La funcion main
F. de Sande
Ejercicio 2
F. de Sande
Compilacion
F. de Sande
Ejercicio 3
Escribe un fichero Pr2.java como este:
c l a s s Pr2 {
p u b l i c s t a t i c v o i d main ( String [ ] args ) {
Pair p ;
System . out . print ( E l p a r e s ) ;
System . out . println ( p ) ;
}
}
F. de Sande
Tipos de datos
F. de Sande
Inicializacion
F. de Sande
Ejercicio 4
Sustituye las las lneas de escritura del programa Pr2 por esta u
nica:
System . out . println ( E l p a r e s + p ) ;
F. de Sande
Cadenas
F. de Sande
Ejercicio 5
F. de Sande
Imprimir objetos
F. de Sande
Sobrecarga
F. de Sande
Ejercicio 6
F. de Sande
F. de Sande
Ejercicio 7
A
nade un constructor a la clase Pair del tipo
p u b l i c Pair ( i n t first , i n t second ) {
t h i s . first = first ;
t h i s . second = second ;
}
Parametros
F. de Sande
Ejercicio 8
A
nade a la clase Pair una funci
on que intercambie sus componentes:
p u b l i c v o i d reflex ( ) {
i n t z = first ; first = second ; second = z ;
}
y a
nade en Pr3 las siguientes lneas:
Pair p , q ;
p = new Pair ( 1 , 2 ) ;
q = p;
q . reflex ( ) ;
System . out . print ( p ) ;
F. de Sande
Referencias
F. de Sande
Ejercicio 9
Comprueba cual es el resultado de ejecutar este programa cuando en la
llamada java Pr4 1 2 3 ... el n
umero de enteros es uno, dos, tres,. . .
c l a s s Pr4 {
p u b l i c s t a t i c v o i d main ( String args [ ] ) {
i n t k , size = args . length ;
Integer a [ ] = new Integer [ 2 ] ;
f o r ( k = 0 ; k < size ; ++k ) {
a [ k ] = new Integer ( args [ k ] ) ;
System . out . println ( a [ + k + ]= + a [ k ] ) ;
}
}
}
F. de Sande
Clases predefinidas
F. de Sande
Ejercicio 10
Corrige el siguiente programa para evitar el error de compilacion:
import java . util . ArrayList ;
c l a s s Pr5 {
p u b l i c s t a t i c v o i d main ( String args [ ] ) {
i n t k , n , size = args . length ;
ArrayList a = new ArrayList ( ) ;
f o r ( k = 0 ; k < size ; ++k ) {
a . add ( new Integer ( args [ k ] ) ) ;
n = a . get ( k ) ;
System . out . println ( a [ + k + ]= + n ) ;
}
}
}
F. de Sande
Conversiones de tipo
F. de Sande
import
F. de Sande
Lectura de ficheros
F. de Sande
Ejercicio 11
Corrige el siguiente programa para evitar los errores de compilacion
import java . io . ;
c l a s s Pr6 {
p u b l i c s t a t i c v o i d main ( String argv [ ] ) {
String w ;
BufferedReader reader =
new BufferedReader ( new FileReader ( argv [ 0 ] ) ) ;
w h i l e ( reader . ready ( ) ) {
w = reader . readLine ( ) ;
System . out . println ( w ) ;
}
}
}
F. de Sande
Excepciones
F. de Sande
Ejercicio 12
A
nade los bloques try y catch necesarios en el programa anterior
F. de Sande
Ejercicio 13
Modifica el siguiente programa para que construya un ArrayList de
enteros a partir de una cadena almacenada en el fichero que se pasa como
argumento al programa (utiliza para ello la clase BufferedReader)
import java . util . ;
c l a s s Pr8 {
p u b l i c s t a t i c v o i d main ( String args [ ] ) {
String data = 100 200 300 ;
String [ ] token = data . split ( \\ s ) ;
f o r ( i n t k = 0 ; k < token . length ; ++k )
System . out . println ( token [ k ] ) ;
}
}
F. de Sande
Herencia
F. de Sande
Ejercicio 14
F. de Sande
Persistencia
F. de Sande
Ejercicio 15
F. de Sande
F. de Sande
Modificadores
F. de Sande
Ejercicio 16
F. de Sande
Guardar objetos
F. de Sande
Ejercicio 17
F. de Sande
Comparable
F. de Sande
Ejercicio 18
Que ocurre?
F. de Sande
HashSet
F. de Sande
Un ejemplo de implementacion
p u b l i c boolean equals ( Object o ) {
i f ( o!= n u l l &&
t h i s . getClass ( ) == o . getClass ( ) ) {
Pair p = ( Pair ) o ;
r e t u r n first == p . first &&
second == p . second ;
} else {
return f a l s e ;
}
}
p u b l i c i n t hashCode ( ) {
r e t u r n Integer . valueOf ( first ) . hashCode ( ) +
31 Integer . valueOf ( second ) . hashCode ( ) ;
}
F. de Sande
equals
N
otese que el argumento de equals debe ser de la clase Object.
Si, en cambio, se escribe una funci
on equals(Pair<Type>), esta no sera
utilizada por HashSet, como puede comprobarse incluyendo alg
un mensaje
de salida (por ejemplo a System.err) en la funci
on de comparacion.
F. de Sande
Construye una clase Matrix<T> que permita guardar objetos del tipo
T con, al menos, funciones get(int i,int j) y put(int i, int
j, T t) y que utilice solo una cantidad de memoria proporcional al
numero de objetos almacenados.
F. de Sande