Razonamiento Geométrico Diversiones Sesión 2: Introducción a Java Introducción a Java Copyright © 2002-2003 Universidad de Alicante 1 Índice Revisión de Java ¾ ¿Qué es Java? ¾ Clases y objetos ¾ La variable CLASSPATH ¾ Los ficheros jar Introducción a Java Copyright © 2002-2003 Universidad de Alicante 2 1 ¿Qué es Java? Java es un lenguaje orientado a objetos Java es un lenguaje híbrido porque permite tipos de datos primitivos como: ¾ int ¾ double Toda la codificación tiene lugar dentro de clases Java Introducción a Java Copyright © 2002-2003 Universidad de Alicante 3 Un programa sencillo de Java Un ejemplo de programa Java: Arguments.java import java.io.*; public class Arguments { public static void main (String argv []) { if (argv.length > 0) { System.out.println("Arguments ejecutado con " + argv.length + " argumentos"); for (int i = 0; i < argv.length; i++) System.out.println("argv[" + i + "]=" + argv[i]); } else { System.out.println("Arguments: sin argumentos"); System.out.println("Usage: Arguments <argumentos>"); } } } Introducción a Java Copyright © 2002-2003 Universidad de Alicante 4 2 ¿Qué es una clase Java? Una clase Java es: ¾ La unidad atómica más pequeña de una aplicación Java ¾ Un elemento de construcción de una aplicación Java ¾ Una composición de métodos y atributos Los atributos definen las carácterísticas, o propiedades, de la clase Los métodos definen el comportamiento de la clase Introducción a Java Copyright © 2002-2003 Universidad de Alicante 5 Clases vs. Objetos Las clases son las plantillas que definen qué atributos y qué comportamientos tendrán los objetos Los objetos son las instancias reales de la implementación de las clases Ejemplo ¾ Clase: Persona ¾ Objeto: Domingo Gallardo Introducción a Java Copyright © 2002-2003 Universidad de Alicante 6 3 Clases Definición de clases: [public] class Classname { ... } Por ejemplo, Arguments.java:: public class Arguments { ... } Introducción a Java Copyright © 2002-2003 Universidad de Alicante 7 Métodos Los métodos definen el comportamiento de una clase Definición de métodos: public class Classname { [visibilidad][static] returnType methodName ( arguments ) { // cuerpo del metodo } } Por ejemplo: public class Arguments { private void doWork(String arguments) {. . .} public static void main (String argv []) { . . . } } Introducción a Java Copyright © 2002-2003 Universidad de Alicante 8 4 Atributos Los atributos de instancia representan el estado de una instancia de la clase Definición de atributos: public class Classname { [visibilidad][static] type attributeName [ = inicialización ]; // otros atributos y métodos } } Por ejemplo: public class Arguments { private String nombre = “colega”; public int index = -1; // otros atributos y métodos } Introducción a Java Copyright © 2002-2003 Universidad de Alicante 9 Import Import permite usar clases y métodos definidas en otros paquetes Importar paquetes: import package.[subpackage.]class|*; public class ClassName { // podemos usar las clases importadas como si estuvieran // definidas localmente } Por ejemplo: import JavaRG.Nucleo2D.*; public class MiCanvas { Punto2D puntos[]; // más métodos y atributos } Introducción a Java Copyright © 2002-2003 Universidad de Alicante 10 5 Excepciones Las excepciones permiten a los programadores capturar y manejar los errores que ocurren en una clase Excepciones usando bloques try/catch: try { while (poligonoSimple && i<numPuntos-1) { Segmento2D seg = new Segmento2D(vertices[i-1], vertices[i]); while (poligonoSimple && j<numPuntos) { if(seg.intersectaPropSegmento( new Segmento2D(vertices[i-1], vertices[i]))) poligonoSimple = false; } } catch (GeomException e) {} Lanzando una excepción: if (i != 0 && i != 1) throw new GeomException("cartesiana (int): indice debe ser 0 ó 1"); Introducción a Java Copyright © 2002-2003 Universidad de Alicante 11 P.E.E. Estos son los principios fundamentales del POO ¾ Polimorfismo ¾ Herencia ¾ Encapsulación Polimorfismo es la capacidad de un interfaz de tener múltiples implementaciones Herencia es un mecanismo por el que clases más especificas especializan el comportamiento de clases más generales Encapsulación es la capacidad de esconder el estado de un objeto para facilitar la abstracción. Introducción a Java Copyright © 2002-2003 Universidad de Alicante 12 6 Programas java Introducción a Java Copyright © 2002-2003 Universidad de Alicante 13 La variable CLASSPATH Para ejecutar un programa Java es necesario configurar la variable del entorno CLASSPATH CLASSPATH identifica las localizaciones del sistema de ficheros donde el compilador y el intérprete de Java van a buscar ficheros .class Un fichero .class debe ser alcazable desde una de las entradas en CLASSPATH Definición de CLASSPATH (Windows): set CLASSPATH=C:\guest;C:\myfiles;. Introducción a Java Copyright © 2002-2003 Universidad de Alicante 14 7 Ejecutando un simple programa El intérprete de Java, java, se usa para ejecutar programas El fichero .class referenciado debe ser localizable via el CLASSPATH Clase Java: Arguments.class Que se encuentra en el directorio: /Users/domingo/Documents/Cursos/RG-02-03/Teoria/Diversiones/Ejemplos CLASSPATH: Setenv CLASSPATH /Users/domingo/Documents/Cursos/RG-02-03/Teoria/Diversiones/Ejemplos Ejecutar el programa: [/Users/domingo]% java Arguments Introducción a Java Copyright © 2002-2003 Universidad de Alicante 15 8