Escuela Superior De Ingenieros Industriales Industri Injineruen .

Transcription

E s c u e la S u p e rio r de In g e n ie ros In d u s tria l e sIn d u s tri In jin e rue n G o i m a i l a k o E s k o laU N IV E R S ID A D D E N A V A R R A - N A F A R R O A K O U N IB E R T S IT A T E AA p re n d a J a v aSan Sebastián, Marzo 1999Aprenda Informática .como si estuviera en primeroJ a v i e r G a r c í a d e J a l ó n J o s é Ig n a c i o R o d r í g u e zIñigo M ingo A itor ImazA lfonso B r a z á l e z A lberto Larzabal J e s ú s C alleja J o n G a r c í a

A p re n d a J a v acomo si estuviera en primeroJavier G arcía de JalónJ o s é Ignacio RodríguezIñigo MingoA itor ImazA lfons o B razálezA lberto LarzabalJ e s ú s C allejaJ o n G arcíaP e rte n e c i e n t e a l a c o l e c c i ó n : “Aprenda , como si estuviera en primero”

Índicepágina iÍNDICE1.INTRODUCCIÓN A JAVA .11.1QUÉ ES JAVA 2 .21.2EL ENTORNO DE DESARROLLO DE JAVA.21.2.1 El compilador de Java .31.2.2 La Java Virtual Machine.31.2.3 Las variables PATH y CLASSPATH .31.3UN EJEMPLO COMPLETO COMENTADO .41.3.1 Clase Ejemplo1 .41.3.2 Clase Geometria .81.3.3 Clase Rectangulo .91.3.4 Clase Circulo .111.3.5 Interface Dibujable .121.3.6 Clase RectanguloGrafico .131.3.7 Clase CirculoGrafico .141.3.8 Clase PanelDibujo .151.3.9 Clase VentanaCerrable.171.3.10 Consideraciones adicionales sobre el Ejemplo1.181.4NOMENCLATURA HABITUAL EN LA PROGRAMACIÓN EN JAVA .191.5ESTRUCTURA GENERAL DE UN PROGRAMA JAVA.191.5.1 Concepto de Clase .201.5.2 Herencia.201.5.3 Concepto de Interface .201.5.4 Concepto de Package.201.5.5 La jerarquía de clases de Java (API).202.PROGRAMACIÓN EN JAVA .222.1VARIABLES.222.1.1 Nombres de Variables .222.1.2 Tipos Primitivos de Variables .222.1.3 Cómo se definen e inicializan las variables .232.1.4 Visibilidad y vida de las variables .242.1.5 Casos especiales: Clases BigInteger y BigDecimal.252.2OPERADORES DE JAVA .252.2.1 Operadores aritméticos.252.2.2 Operadores de asignación .252.2.3 Operadores unarios .262.2.4 Operador instanceof .262.2.5 Operador condicional ?:.262.2.6 Operadores incrementales .262.2.7 Operadores relacionales.262.2.8 Operadores lógicos .272.2.9 Operador de concatenación de cadenas de caracteres ( ) .272.2.10 Operadores que actúan a nivel de bits.272.2.11 Precedencia de operadores.282.3ESTRUCTURAS DE PROGRAMACIÓN .282.3.1 Sentencias o expresiones.292.3.2 Comentarios .292.3.3 Bifurcaciones .292.3.3.12.3.3.22.3.3.32.3.3.4Bifurcación if . 30Bifurcación if else . 30Bifurcación if elseif else. 30Sentencia switch. 302.3.4 Bucles.312.3.4.12.3.4.22.3.4.32.3.4.42.3.4.5Bucle while . 31Bucle for . 31Bucle do while . 32Sentencias break y continue . 32Sentencias break y continue con etiquetas . 32

ESIISS: Aprenda Java como si estuviera en Primero2.3.4.62.3.4.73.Sentencia return . 33Bloque try {.} catch {.} finally {.}. 33CLASES EN JAVA .353.1CONCEPTOS BÁSICOS.353.1.1 Concepto de Clase .353.1.2 Concepto de Interface .363.2EJEMPLO DE DEFINICIÓN DE UNA CLASE .363.3VARIABLES MIEMBRO.373.3.1 Variables miembro de objeto .373.3.2 Variables miembro de clase (static).38VARIABLES FINALES.383.43.5MÉTODOS (FUNCIONES MIEMBRO).383.5.1 Métodos de objeto .383.5.2 Métodos sobrecargados (overloaded).393.5.3 Paso de argumentos a métodos.403.5.4 Métodos de clase (static).413.5.5 Constructores .413.5.6 113.123.134.página iiInicializadores static. 42Inicializadores de objeto . 423.5.7 Resumen del proceso de creación de un objeto .433.5.8 Destrucción de objetos (liberación de memoria) .433.5.9 Finalizadores .43PACKAGES.443.6.1 Qué es un package .443.6.2 Cómo funcionan los packages.45HERENCIA .453.7.1 Concepto de herencia.453.7.2 La clase Object.463.7.3 Redefinición de métodos heredados.463.7.4 Clases y métodos abstractos .473.7.5 Constructores en clases derivadas.47CLASES Y MÉTODOS FINALES .48INTERFACES .483.9.1 Concepto de interface .483.9.2 Definición de interfaces .493.9.3 Herencia en interfaces .493.9.4 Utilización de interfaces .49CLASES INTERNAS .503.10.1 Clases e interfaces internas static .503.10.2 Clases internas miembro (no static).503.10.3 Clases internas locales.523.10.4 Clases anónimas .53PERMISOS DE ACCESO EN JAVA .543.11.1 Accesibilidad de los packages.543.11.2 Accesibilidad de clases o interfaces.543.11.3 Accesibilidad de las variables y métodos miembros de una clase:.54TRANSFORMACIONES DE TIPO: CASTING .553.12.1 Conversión de tipos primitivos.55POLIMORFISMO .553.13.1 Conversión de objetos.56CLASES DE UTILIDAD.584.1ARRAYS .584.1.1 Arrays bidimensionales.594.2CLASES STRING Y STRINGBUFFER .594.2.1 Métodos de la clase String .604.2.2 Métodos de la clase StringBuffer .614.3WRAPPERS .61

Índice4.44.54.65.página iii4.3.1 Clase Double.614.3.2 Clase Integer .62CLASE MATH .62COLECCIONES .634.5.1 Clase Vector.634.5.2 Interface Enumeration .644.5.3 Clase Hashtable .65OTRAS CLASES DEL PACKAGE JAVA.UTIL .65EL AWT (ABSTRACT WINDOWS TOOLKIT) .675.1QUÉ ES EL AWT.675.1.1 Creación de una Interface Gráfica de Usuario .675.1.2 Objetos “event source” y objetos “event listener”.675.1.3 Proceso a seguir para crear una aplicación interactiva (orientada a eventos) .685.1.4 Componentes y eventos soportados por el AWT de Java .685.1.4.15.1.4.25.1.4.35.25.35.45.5Jerarquía de Componentes . 68Jerarquía de eventos . 69Relación entre Componentes y Eventos. 705.1.5 Interfaces Listener.715.1.6 Clases Adapter .72COMPONENTES Y EVENTOS .745.2.1 Clase Component .745.2.2 Clases EventObject y AWTEvent.755.2.3 Clase ComponentEvent .755.2.4 Clases InputEvent, MouseEvent y MouseMotionEvent .755.2.5 Clase FocusEvent.765.2.6 Clase Container .765.2.7 Clase ContainerEvent .775.2.8 Clase Window .775.2.9 Clase WindowEvent .775.2.10 Clase Frame.785.2.11 Clase Dialog .785.2.12 Clase FileDialog .795.2.13 Clase Panel .795.2.14 Clase Button.805.2.15 Clase ActionEvent .805.2.16 Clase Canvas.805.2.17 Component Checkbox y clase CheckboxGroup .815.2.18 Clase ItemEvent .825.2.19 Clase Choice .825.2.20 Clase Label .825.2.21 Clase List.835.2.22 Clase Scrollbar .835.2.23 Clase AdjustmentEvent.845.2.24 Clase ScrollPane.855.2.25 Clases TextArea y TextField .855.2.26 Clase TextEvent.86CLASE KEYEVENT .87MENUS .885.4.1 Clase MenuShortcut.885.4.2 Clase MenuBar .885.4.3 Clase Menu .895.4.4 Clase MenuItem .895.4.5 Clase CheckboxMenuItem.895.4.6 Menús pop-up.90LAYOUT MANAGERS .905.5.1 Concepto y Ejemplos de LayoutsManagers .905.5.2 Ideas generales sobre los LayoutManagers.915.5.3 FlowLayout .925.5.4 BorderLayout .92

ESIISS: Aprenda Java como si estuviera en Primero5.65.5.5 GridLayout.925.5.6 CardLayout .925.5.7 GridBagLayout .93GRÁFICOS, TEXTO E IMÁGENES .945.6.1 Capacidades gráficas del AWT: Métodos paint(), repaint() y update() .945.6.1.15.6.1.25.6.1.35.7página ivMétodo paint(Graphics g) . 94Método update(Graphics g) . 94Método repaint() . 955.6.2 Clase Graphics.955.6.3 Primitivas gráficas .965.6.4 Clases Graphics y Fonf.965.6.5 Clase FontMetrics.975.6.6 Clase Color .985.6.7 Imágenes .98ANIMACIONES .995.7.1 Eliminación del parpadeo o flicker redefiniendo el método update().995.7.2 Técnica del doble buffer.1006.THREADS: PROGRAMAS MULTITAREA.1016.1CREACIÓN DE THREADS .1016.1.1 Creación de threads derivando de la clase Thread .1026.1.2 Creación de threads implementando la interface Runnable .1026.2CICLO DE VIDA DE UN T

Aprenda Java como si estuviera en primero Javier García de Jalón José Ignacio Rodríguez Iñigo Mingo Aitor Imaz Alfonso Brazález Alberto Larzabal Jesús Calleja Jon García Perteneciente a la colección : "Aprenda , como si estuviera en primero"