Download Diapositiva 1 - EHU-OCW

Document related concepts
no text concepts found
Transcript
Objetos y clases:
uso de clases de librerías
Clases de librería
El desarrollo de muchas aplicaciones es más
sencillo si se crean y usan objetos de las
clases adecuadas
Hay una enorme cantidad de clases de
objetos ya inventadas
– Muchas están disponibles en la configuración
habitual de java
Son clases de librerías que tiene instaladas Eclipse
Para crear ventanas…
Los objetos de la clase JFrame sirven
para dibujar ventanas en la pantalla
– Básicamente, sólo hay que hacer dos cosas
JFrame uno = new JFrame();
Hacer que el objeto realice la
función show
Crear un objeto y asignárselo
a una variable
uno.show();
Cosas a tener en cuenta para usar
clases de librería…
Abrir
UsoSimpleDeVentanas
JFrame no es un nombre de clase válido!
¿Por qué no es un nombre de
clase válido?
Para crear un objeto…
– Se usa una operación constructora:
La palabra new seguida por el nombre de la clase
new JFrame()
– Pero el nombre completo es:
javax.swing.JFrame
JFrame sólo es la forma abreviada del nombre
Es preferible usar el nombre abreviado de una clase siempre que sea
posible
Para usar el nombre abreviado
Pinchar en la marca de error y
elegir el import adecuado
Después de corregir…
Código incrustado por Eclipse
Permite usar la forma abreviada del nombre
Al ejecutar el programa se verá esa ventana
Sobre los objetos JFrame…
Tienen métodos para cambiar las dimensiones
de la ventana, su posición, el título…
– El programa UsoDeVentanas indica cómo se usan
algunos de esos métodos
Más información en
http://java.sun.com/javase/6/docs/api/
Pero puede no ser una documentación fácil de usar en las
primeras etapas
Para crear un archivo de texto…
Los objetos de la clase PrintStream
sirven para crear archivos de texto
– Básicamente, sólo hay que hacer dos cosas
PrintStream uno = new PrintStream ();
Hacer que el objeto escriba
un texto en el archivo
Crear un objeto y asignárselo
a una variable
uno.println(“Texto”);
Cosas a tener en cuenta para usar
java.io.PrintStream
Abrir
PrintStreamSimpleDemo
Para evitar errores molestos
al comienzo,
•Primero, declarar la variable
•Después, asignarle el objeto
creado
¿Cómo se usa
new PrintStream?
tiene que incluir un argumento String
Indica la ruta del archivo a crear
Cosas a tener en cuenta para usar
PrintStream
Con algunas clases de librería, hay que usar una
instrucción especial…
Para usar PrintStream
Pinchar en la marca de error y
elegir surround with
Después de corregir…
A veces, es obligado poner
una instrucción dentro de un
try…catch
Al ejecutar el programa se crea un archivo con la ruta indicada:
Si no es una ruta absoluta, se crea en la carpeta del proyecto
Sobre los objetos PrintStream…
Tienen métodos para cambiar escribir en el
archivo de texto: valores String, int,…
– El programa PrintStreamDemo indica cómo se usan
algunos de esos métodos
Más información en
http://java.sun.com/javase/6/docs/api/
Pero puede no ser una documentación fácil de usar en las
primeras etapas
Para procesar un archivo de
texto…
Los objetos de la clase Scanner sirven
para procesar archivos de texto
– Básicamente, sólo hay que hacer esto
File file = new File();
Crear un objeto File y
asignárselo a una variable
Scanner uno = new Scanner ();
Crear un objeto Scanner y
asignárselo a una variable
Hacer que el scanner lea una
pieza de información de un
archivo
String s = uno.next();
Cosas a tener en cuenta para usar
java.io.Scanner
Abrir
ScannerSimpleDemo
Para evitar errores molestos al
comienzo,
•Primero, declarar las variables
•Después, asignarles los
objetos creados
¿Cómo se usa
new Scanner?
tiene que incluir un argumento File
Indica la ruta del archivo a procesar
¿Cómo se usa new File?
Un objeto File almacena una
ruta de archivo
tiene que incluir un argumento String
la ruta de un archivo
Cosas a tener en cuenta para…
Con algunas clases de librería, hay que usar una
instrucción especial…
Para usar Scanner
Pinchar en la marca de error y
elegir surround with
Después de corregir…
A veces, es obligado poner
una instrucción dentro de un
try…catch
Lee la primera palabra del
archivo
Sobre los objetos Scanner…
Ven el contenido de un archivo como una
sucesión de palabras
– Cada vez que ejecutan el método next leen
una palabra
Leen las palabras de una en una: primera,
segunda…
– Las palabras pueden estar formadas por letras, pero
también por cifras decimales…
Sobre los objetos Scanner…
Al ejecutar…
Las variables
serán…
SI el texto del
archivo es…
File file = null;
Scanner scanner = null;
File = new File(ruta);
Scanner = new Scanner(file);
java
Programming
1024
String
String
String
String
a
b
c
d
=
=
=
=
scanner.next();
scanner.next();
scanner.next();
scanner.next();
Ahí, aborta: no quedan
palabras por leer
a
java
b
Programming
a
1024
Para saber si quedan palabras…
El método hasNext sirve averiguar si
quedan palabras por leer
boolean chivato = scanner.hasNext();
true
Si quedan palabras
chivato
false
Si no quedan palabras
Para saber si quedan palabras…
Al ejecutar…
Las variables
serán…
SI el texto del
archivo es…
File file = null;
Scanner scanner = null;
File = new File(ruta);
scanner = new Scanner(file);
java
Programming
1024
a
java
b
String a = scanner.next();
String b = scanner.next();
Programming
String c = scanner.next();
boolean f = scanner.hasNext();
c
1024
f
false
Para leer enteros…
El método nextInt sirve leer la siguiente
palabra, interpretándola como valor
entero, si es posible
int n = scanner.nextInt();
Para leer enteros…
Al ejecutar…
Las variables
serán…
SI el texto del
archivo es…
PX01
File file = null;
Scanner scanner = null;
File = new File(ruta);
Scanner = new Scanner(file);
PX01
a
10
1024
XP04
256
String
String
String
String
a
b
c
d
=
=
=
=
scanner.next();
scanner.nextInt();
scanner.nextInt();
scanner.nextInt();
Ahí, aborta: la siguiente palabra no
es interpretable como valor int
b
c
10
1024
Para saber si…
El método hasNextInt sirve para averiguar
si la siguiente palabra puede interpretarse
como valor entero
boolean chivato = scanner.hasNextInt();
true
Si al siguiente palabra
puede interpretarse…
chivato
false
en caso contrario
Para procesar un archivo…
En cada iteración se procesa una palabra…
while ( scanner.hasNext( ) ){
if ( scanner.hasNextInt( ) ){
Si la palabra a
int v = scanner.nextInt( );
leer representa
procesar v
un valor int
} else if ( scanner.hasNextDouble( ) ){
double d = scanner.nextDouble( );
Si la palabra a
leer representa
un valor double
procesar d
} else {
String p = scanner.next( );
procesar p
}
}
En cualquier otro
caso..
Ejemplos…
ScannerDemo muestra el uso de algunos
de los métodos de un Scanner
ScannerUso muestra el esquema
habitual para procesar el contenido de un
archivo