310 likes | 723 Views
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
E N D
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 • Los objetos de la clase JFrame sirven para dibujar ventanas en la pantalla • Básicamente, sólo hay que hacer dos cosas Crear un objeto y asignárselo a una variable Crear un objeto y asignárselo a una variable JFrame uno = newJFrame(); JFrame uno = newJFrame(); Hacer que el objeto realice la función show Hacer que el objeto realice la función show uno.show(); 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: • Lapalabranewseguidaporelnombre de la clase new JFrame() • Pero el nombre completo es: javax.swing.JFrame • JFrame sólo eslaformaabreviadadelnombre 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 Crear un objeto y asignárselo a una variable PrintStream uno = newPrintStream (); Hacer que el objeto escriba un texto en el archivo 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 usanew 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 Crear un objeto File y asignárselo a una variable File file = newFile(); Crear un objeto Scanner y asignárselo a una variable Scanner uno = newScanner (); 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 usanew 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); String a = scanner.next(); String b = scanner.next(); String c = scanner.next(); String d = scanner.next(); a java java Programming 1024 b Programming Ahí, aborta: no quedan palabras por leer a 1024
Para saber si quedan palabras… • El método hasNext sirve averiguar si quedan palabras por leer boolean chivato = scanner.hasNext(); Si quedan palabras true 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); String a = scanner.next(); String b = scanner.next(); String c = scanner.next(); boolean f = scanner.hasNext(); a java java Programming 1024 b Programming 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… File file = null; Scanner scanner = null; File = new File(ruta); Scanner = new Scanner(file); String a = scanner.next(); String b = scanner.nextInt(); String c = scanner.nextInt(); String d = scanner.nextInt(); a PX01 PX01 10 1024 XP04 256 b 10 Ahí, aborta: la siguiente palabra no es interpretable como valor int c 1024
Para saber si… • El método hasNextInt sirve para averiguar si la siguiente palabra puede interpretarse como valor entero boolean chivato = scanner.hasNextInt(); Si al siguiente palabra puede interpretarse… true chivato false en caso contrario
Para procesar un archivo… En cada iteración se procesa una palabra… while ( scanner.hasNext( ) ){ if ( scanner.hasNextInt( ) ){ int v = scanner.nextInt( ); procesar v } else if ( scanner.hasNextDouble( ) ){ double d = scanner.nextDouble( ); procesar d } else { String p = scanner.next( ); procesar p } } Si la palabra a leer representa un valor int Si la palabra a leer representa un valor double 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