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