Está en la página 1de 32

JavaFast - Tutorial de JAVA bajo desarrollo Ing. Socrates A. Flores A.

Tutorial de JAVA 1. Recomendaciones En java la programacin se hace en archivos de extensin JAVA, estos pueden ser escritos con cualquier editor de texto que escriba en ASCII, pero con la aclaracin que el nombre del archiv, debe ser el mismo que de la clase principal. Comentarios Los comentarios son lneas en el cdigo fuente que no se compilan, pero ayudan mucho en la documentacin y/o el entendimiento del programa. a) Comentar una lnea simple Los caracteres para colocar estos comentarios, que solo comentan una lnea es como sigue: // <Texto de comentario> Ejemplo: // Este es un simple comentario b) Comentario de un bloque de lneas Para comentar un bloque de lneas se utilizan los siguientes tags: /* <Comentarios> <Comentarios> <Comentarios> */

2.

3.

Identificadores

Los identificadores son los nombres de las variables, estos nombres pueden estar constituidos por las letras alfanumricas, 4. Programa Hola mundo

El primer programa que se escribe es el de hola mundo, as que a continuacin ponemos el cdigo: package helloworld; //Definimos el nombre de nuestro proyecto, o para ser mas // exactos el nombre de nuestra librera o paquete; public class Main { // El nombre de nuestra clase que contendra nuestra funcion //principal public static void main(String[] args) {// declaracion de nuestra funcion principal System.out.println("Hola mundo."); //mensaje que desplegaremos por pantalla } } Este cdigo esta comentado para explicar sus partes, pero las ms importantes son: a) Las llaves ( {} ) son los smbolos para agrupar cdigo, estos delimitan el principio y el final de programas, clases, funciones y controladores de flujo. b) package: es el nombre de tu proyecto o como se conoce es tu librera de tu aplicacin, aqu se agrupan todas las clases de tu aplicacin o la creacin de tu librera. Este se encuentra formado de la siguiente manera: package <Nombre de tu proyecto/librera/paquete> En ejemplo tenemos, lo siguiente:

JavaFast - Tutorial de JAVA bajo desarrollo Ing. Socrates A. Flores A.

JavaFast - Tutorial de JAVA bajo desarrollo Ing. Socrates A. Flores A.


package HelloWorld ; c) class: Esta palabra se definen las clases que son definidas, esto es dentro de nuestro package, estas clases son los tipos de nuestros futuros objetos, se pueden definir ms de un objeto en un package, la sintaxis utilizada es la mostrada a continuacin: public class <Nobre de tu clase> { <atributos de la clase> <mtodos de la clase> } En el ejemplo que tenemos: class HolaMundo { } Nota: Se pueden especificar mas clases en un mismo archivo, con la aclaracin que solo la clase principal puede tener la palabra public en la declaracin. d) Funcin main: esta funcin es la principal en el programa , la clases que tenga implementado esta funcin es la que se ejecutar, es el inicio y final del programa, es nuestro ejemplo solo visualizamos un mensaje por pantalla, su declaracin est expuesto a continuacin: public static void main(String [] args) { <Cdigo de ejecucion del progrma al ser ejecutado> } En el ejemplo que tenemos: public static void main(String [] args) { } e) La impresin en pantalla utiliza la siguiente instruccin: System.Out.println("Hola mundo"); Donde el objeto System es el objeto que tiene los objetos propios del sistema y para interactuar con el mismo, dentro de esto se tiene el objeto out, es la manera como se puede interactuar con el usuario, entre ellas tenemos el pritnln que escribe un mensaje por pantalla. Otro tipo de funciones importantes del objeto System.out es: void println() void print() Escribe una linea en la consola y termina un salto de lnea. Escribe una lnea en la consola sin salto de lnea.

5.

Tipos de datos

Los tipos de Java se agrupan en cinco grupos, dentro de los cuales se tienen subtipos, los cuales son de diferentes tamaos para mejorar el rendimiento o precisin dentro del clculo de las operaciones. Cada subtipo tambin tiene un objeto que se encarga de agrupar los mtodos necesarios para la conversin y manipulacin del subtipo especfico. Los tipos de datos en JAVA son los siguientes: a) Enteros

JavaFast - Tutorial de JAVA bajo desarrollo Ing. Socrates A. Flores A.

JavaFast - Tutorial de JAVA bajo desarrollo Ing. Socrates A. Flores A.


Los tipos enteros en JAVA se tienen una buena variedad, entre los cuales podemos ver a continuacin: Alias byte short int long Descripcin Bytes sin signo Enteros cortos con signo Enteros comunes Enteros largos Bits 8 16 32 64 Rango de valores 0 255 [-32.768, 32.767] [-2.147.483.648, 2.147.483.647] [-9.223.372.036.854.775.808, 9.223.372.036.854.775.807] Tipo Objeto Byte Short Integer Long

Ejemplo para declarar variables tenemos: byte b= (byte)3; short c = (short)4; int e = 6; long g = 8L; Nota: Este tipo de declaraciones es necesaria, debido a que los literales que se ponen para especificar el valor de la variable, son tomadas automaticamente como enteros; en el caso de long solo se tiene que anadir una L (puede se en minuscula) al final de literal. b) Reales Dentro dos reales tenemos tres tipos: Alias float double Descripcin Reales con 7 dgitos de precisin Reales de 15-16 dgitos de precisin Bits 32 64 Rango de valores [1,510-45 - 3,41038] [5,010-324 - 1,710308] Tipo Objeto Float Double

El modo de hacer las declaraciones y asignaciones es de la siguiente manera: float a = 2.5f; // se utiliza una f al final de double b = 3.4; // cuando no se especifica ninguna letra al fina, por defecto el valor es double decimal c = 4.5m; // se utiliza una m al final de

c)

Lgicos

Los lgicos son los denominados boolean y solo tienen dos posibles valores: true o false, el objeto asociado a este tipo es el denominado Boolean. Un ejemplo de este tipo de declaracin es: boolean bandera = true; boolean flag = false;

d) Caracteres Este tipo de variable solo se encarga de almacenar caracteres, para ello los valores deben estar entre comillas simples (), si se coloca ms de un caracter generar un error. Se declara ay asigna de la siguiente manera: char car = 'A'; Pero dentro de esta gama de caracteres existen algunos caracteres que no se pueden usar como ser: \,,,.etc. para ello se tienen dos maneras: Una es el uso de la barra \, con ella adelante del caracter o letra representativa del mismo, podemos tener el caracter. Ej: o char caracter = '\\';//para solo hacer refenrencia al caracter de la barra \

JavaFast - Tutorial de JAVA bajo desarrollo Ing. Socrates A. Flores A.

JavaFast - Tutorial de JAVA bajo desarrollo Ing. Socrates A. Flores A.


o char car = '\''; //almacenamos el caracter de colmillas simples Queue oviamente NonSerializedAttribute lo podemos utilizar directamente.

Otra manera es utilizando el cdigo ASCII en hexadecimal del mismo carcter, para ello utilizamos la barra \ y la u (\u) y a continuacin 4 nmeros hexadecimales que representan, el objeto que hace referencia a este tipo es Character. Ej: char car = '\u0063'; Es lo mismo que: char car = 'c'; Los cdigos ASSCII y representaciones se encuentran en la siguiente tabla.

Carcter Comilla simple Comilla doble Carcter nulo Alarma Retroceso Salto de pgina Nueva lnea Retorno de carro Tabulacin horizontal Tabulacin vertical Barra invertida e) Cadenas

Cdigo de escape Unicode \u0027 \u0022 \u0000 \u0007 \u0008 \u000C \u000A \u000D \u0009 \u000B \u005C

Cdigo de escape especial \' \" \0 \a \b \f \n \r \t \v \\

Las cadenas son secuencias de caracteres, por lo que las recomendaciones para los caracteres se aplican para las cadenas, con la diferencia que se utilizan comillas dobles para delimitarlas (), las cadenas no tienen un objeto relacionado debido a que ellas ya se las manejan como objetos, un ejemplo de esto es. String cadena = "Hola Mundo"; o tambin String cadena = "Hola\tMundo"; Es por ello que el siguiente cdigo fuente: package helloworld; //Definimos el nombre de nuestro proyecto, o para ser mas // exactos el nombre de nuestra librera o paquete; public class Main { // El nombre de nuestra clase que contendra nuestra funcion //principal public static void main(String[] args) {// declaracion de nuestra funcion principal System.out.println( "Hola\tmundo." ); //mensaje que desplegaremos por pantalla } } El resultado es:

JavaFast - Tutorial de JAVA bajo desarrollo Ing. Socrates A. Flores A.

JavaFast - Tutorial de JAVA bajo desarrollo Ing. Socrates A. Flores A.

Tambin se pueden concatenar cadenas String cad; cad = "Hola " + "mundo"; // es lo mismo que -> "Hola mundo" Esto es aplicable a variables, cuando se concatena una cadena con una variables, el contenido de la variables es automticamente convertido a una cadena y es inmediatamente concatenado, Ej: int cad; cad = 5; System.out.println( "Hola " + cad); // es lo mismo que -> "Hola " +"5" Las cadenas son consideradas vectores de caracteres y posee una propiedad denominada Length que tiene el nmero de String cad = "Hola mundo"; System.out.println(cad.Length);//El tamao de la cadena es 10

6.

Operadores Dentro de los operadores que se manejan en JAVA a. Operadores aritmticos +: Suma aritmtica -: Resta aritmtica / : Divisin aritmtica %: Modulo de un aritmtica b. Operadores lgicos && - &: Este es el Y lgico || - |: Este es el o lgico ! : Este es la negacin lgica ^: Este es el Xor lgico Operadores relacionados ==: Igualdad !=: Desigualdad >: Mayor que <: Menor que >=: Mayor o igual que <=: Menor o igual que d. Operadores de manipulacin de bits &: and |: or c.

JavaFast - Tutorial de JAVA bajo desarrollo Ing. Socrates A. Flores A.

JavaFast - Tutorial de JAVA bajo desarrollo Ing. Socrates A. Flores A.


~: not ^: xor <<: desplazamiento a izquierda. >>: desplazamiento a derecha. <<: desplaza a izquierda rellenando con ceros. >>: desplaza a la derecha y realiza el relleno dependiendo del tipo de dato sobre el que se aplica: si es un dato con signo mantiene el signo, y en caso contrario rellena con ceros. e. Operadores de asignacin

++ : realiza el incremento unitario. Ej: a++; ++ a;

-- : realiza el decremento unitario. EJ: a--; --a; += : realiza el incremento automtico de un determinado variable. Ej: a += 5 es lo mismo que a = a + 5 -= : realiza el incremento automtico de un determinado variable. Ej: a -= 5 es lo mismo que a = a - 5 *= : realiza el incremento automtico de un determinado variable. Ej: a *= 5 es lo mismo que a = a * 5 /= : realiza el incremento automtico de un determinado variable. Ej: a /= 5 es lo mismo que a = a / 5 %= : realiza el incremento automtico de un determinado variable. Ej: a %= 5 es lo mismo que a = a % 5 7. Las entradas y Salidas

Las salidas en JAVA se usa el objeto out que se encuentra dentro del objeto System. Este objeto tiene los siguientes mtodos: System.out.println( <cadena o variable> ) Imprime una cadena o el contenido de una variable y lo termina con un salto de linea. Imprime una cadena o el contenido de una variable y lo termina sin un salto de linea.

System.out.print(cadena o variable> )

Un ejemplo de esto tenemos System.out.println("Hola mundo"); Es lo mismo que decir System.out.print("Hola mundo\r\n");

8.

Controladores de flujo

Los controladores de flujo es la base los programas, entre ellos tenemos los siguientes.

JavaFast - Tutorial de JAVA bajo desarrollo Ing. Socrates A. Flores A.

JavaFast - Tutorial de JAVA bajo desarrollo Ing. Socrates A. Flores A.


a. if

Controlador de flujo de dos caminos: if ( <condicin> ) { <tu cdigo aqu> }else{ <tu cdigo para el caso contrario> } b. if (resumido) Este es un if resumido para la asignacin directa de valores = ( <condicin> )? <calor para else si> : <valor para el caso contrario>; Los resultados deben ser del mismo tipo que el de la asignacin. Ej: int a = 3; int b = (a > 0) ? a : 0; //tomar en cuenta que en ambos casos son enteros por que la asignacin se la hace a un entero Esto es lo mismo que decir: int a = 3; int b; if (a > 0) { b = a; }else{ b = 0; } c. while

El ciclo mientras se caracteriza por repetir un conjunto de instrucciones mientras se cumpla una determinada condicin, esto puede hacerlo de 0 a N veces, su sintaxis: while ( <condicin> ) { <tu cdigo> }

Un ejemplo de esto es: int c = 0; while (c < 10) { System.out.println(c); c++; } El resultado es:

JavaFast - Tutorial de JAVA bajo desarrollo Ing. Socrates A. Flores A.

JavaFast - Tutorial de JAVA bajo desarrollo Ing. Socrates A. Flores A.

d. for El ciclo mientras se caracteriza por repetir un conjunto de instrucciones mientras se cumpla una determinada condicin, esto puede hacerlo de 0 a N veces, su sintaxis: for ( <inicializacin> ; <condicin>; <incremento> ) { <tu cdigo>} Un ejemplo de esto es: for (int c = 0; c < 10; c++ ) { System.out.println(c); } e. dowhile El ciclo mientras se caracteriza por repetir un conjunto de instrucciones mientras se cumpla una determinada condicin, esto puede hacerlo de 0 a N veces, su sintaxis:

do{ <tu cdigo> } while ( <condicin> ) Un ejemplo de esto es: int c = 0; do{ System.out.println(c); c++; } while (c < 10); 9. Vectores Los vectores pueden ser tomados en cuenta como una secuencia de variables del mismo tipo, para ello se usa las [] para especificar que son corchetes, para esto usan la siguiente sintaxis: <tipo_variable> [] <identificador_de_variable>; Un ejemplo para la declaracin es como sigue:

JavaFast - Tutorial de JAVA bajo desarrollo Ing. Socrates A. Flores A.

JavaFast - Tutorial de JAVA bajo desarrollo Ing. Socrates A. Flores A.


int[] vector;//vector de enteros Esto ayuda para no tener que declarar 10 variables enteras, solo construimos un vector de tamao 10, para ello utilizamos la siguiente sintaxis: new <tipo_Variable>[<tamao_del_vector>]; El ejemplo es: vector = new int[10]; Tambin se pueden crear de otra manera: int[] vector = {1,2,3,4,5,6,7,8,9,0 }; As se crear automticamente un vector con variables. La manera de acceder al contenido de una determinada posicin de un vector es mediante la siguiente sintaxis: <identificador> [ <posicin del vector> ] Esto se usa tanto para obtener el valor de una variable como tambin asignar un determinado valor, solo hay que tomar en cuenta que el ndice tiene que ser un nmero de 0 hasta el tamao de vector menos, si es cualquier otro nmero entonces aparecer una excepcin o error. Un ejemplo es: vector[2] = 3; int c = vector[4]; Los vectores poseen una propiedad denominada length que tiene el nmero de System.out.println(vector.Length);//El tamao de la cadena es 10 Nota: Los Vectores o cualquier tipo de mtodo o tcnica que sirve para agrupar datos reciben el nombre de colecciones.

10. Foreach El ciclo foreach es una manera ms adecuada para acceder a cada elemento de una coleccin, como ser los vectores, la estructura del foreach es como sigue: for ( <tipo> <variable> : <coleccin> ) { <tu cdigo fuente> } Un ejemplo de esto es: int[] vector = {1,2,3,4,5,6,7,8,9,0 }; for ( int b : vector) { System.out.println( b ); } 11. Clases Las clases son las especificaciones de objetos, las declaramos usando la palabra reservada class, para ello se usa la siguiente sintaxis class <Nombre_clase>

JavaFast - Tutorial de JAVA bajo desarrollo Ing. Socrates A. Flores A.

JavaFast - Tutorial de JAVA bajo desarrollo Ing. Socrates A. Flores A.


{ <Definicin de mtodos y propiedades> } De esta manera podemos crear una clase propia llamada persona class Persona // El nombre de tu clase principal { } Nota: Cuando se programa en JAVA, se debe hacer en un archivo con la extensin .java, estos archivos deben al menos la declaracin de una clase, la cual es la clase principal y debe de tener la palabra public delante de la declaracin, de la siguiente manera. public class <Nombre_clase> { <Definicin de mtodos y propiedades> } Nota: La clase principal del archivo java debe tener el mismo nombre que el nombre del archivo. A partir de este punto se puede declarar variables que sean del tipo que se ha creado, en este caso persona: Persona A; Pero para instanciarla se utiliza la palabra reservada new y se hace referencia a su constructor (el cual veremos ms adelante). Persona A = new Persona(); Niveles de acceso Las clases internamente tienen diferentes niveles de accesos , esto se utilizan para definir relaciones entre las clases, los niveles de acceso existentes en JAVA se tienen listadas a continuacin: Nivel de acceso public protected private Descripcin Puede ser accedido por cualquier clase en cualquier lugar. Solo puede ser accedido por sus hijos. Nadie, excepto la misma clase, puede acceder. Amistosa, solo objetos del mismo paquete pueden acceder (no se pone nada adelante del tipo).

Las clases estn conformadas por mtodos y propiedades. a. Las propiedades son variables que nosotros definimos y son comunes entre los objetos, pero llegan a ser nicas en su valor, cumpliendo con el encapsulamiento, para esto tenemos el siguiente ejemplo de persona. class Persona // El nombre de tu clase principal { String nombre; // propiedad de la clase int edad; long ci; } Tambin pueden inicializarse a este punto con un valor especfico.

JavaFast - Tutorial de JAVA bajo desarrollo Ing. Socrates A. Flores A.

JavaFast - Tutorial de JAVA bajo desarrollo Ing. Socrates A. Flores A.


Las propiedades pueden ser accedidas de la siguiente manera: <nivel de acceso> <variable>.<propiedad_accedida> Un ejemplo de ello es: A.nombre; Para poder acceder a estas funciones debemos tomar en cuenta el nivel de acceso, como sigue a continuacin: public class Persona { public String nombre; // acceso por cualquier otra clase protected int edad; // solo por clases hijas private long ci; // solo la clase persona boolean casado; // solo clases del mismo paquete }

b.

Los mtodos son quienes definen el comportamiento de un objeto, ejecutando un conjunto de instrucciones como si fueran programas independientes , en los cuales podemos clasificar de dos tipos, las funciones , que siempre devuelven un valor, y los procedimientos que no devuelven un valor, en JAVA todos son funciones, las funciones se definen de la siguiente manera: <nivel acceso> <tipo_de_retorno> <nombre de la funcin> ( <lista de parmetros> ) { return <valor_del_tipo_de_retorno>); } Cuando la instruccin de return se ejecuta, la ejecucin de la funcin termina inmediatamente, devolviendo el valor que se le especifique. Un ejemplo de esto es crear una funcin que despliegue por pantalla los datos de una persona. public void imprimir() { System.out.println("Nombre: "+nombre); System.out.println("Edad: " + edad); System.out.println("CI: " + ci); return void; } En este ejemplo se puede destacar algunos puntos: Una que la funcin tiene parntesis en vacio, eso significa que la lista de parmetros es vaca, por lo que no recibe ninguna variable. La segunda es void, el cual es un tipo especial de dato, pero por el momento solo se mar en cuenta que se utiliza cuando la funcin no devuelve ningn valor, lo cual especificamos con el return, aunque esta funcin retorna void se puede simplemente colocar return; , directamente se puede obviar esta lnea y el compilador lo interpretar automticamente como un return void;. Las propiedades de la clase pueden ser accedidas por los mtodos de la clase.

Creamos una funcin que sume un determinado nmero a la edad. public void incrementar(int n) { edad = edad + n;

JavaFast - Tutorial de JAVA bajo desarrollo Ing. Socrates A. Flores A.

JavaFast - Tutorial de JAVA bajo desarrollo Ing. Socrates A. Flores A.


} La declaracin de parmetros es: <tipo> <identificador>. Podemos tambin crear una variable que retorne un determinado valor como ser, cambiar el nombre de la persona y retornar el antiguo nombre. public String nuevoNombre(String name) { String antiguoNombre=nombre; nombre = name; return antiguoNombre; } En este ejemplo se puede apreciar que adems de retornar el mismo tipo que especificamos, se pueden crear variables dentro de las funciones, cuya existencia solo es dentro de dicha funcin. Cuando se desea recibir ms de un parmetro se los separa utilizando comas, como en el siguiente ejemplo: public void nuevosDatos(String name, int age, ulong cin) { nombre = name; edad = age; ci = cin; } Todas estas funciones deben ser declaradas dentro de la clase a la que deben pertenecer, a continuacin se muestra la implementacin de estas funciones en la clase: class Persona // El nombre de tu clase principal { String nombre = "Juan Perez"; int edad = 55; ulong ci = 4533678; void imprimir() { System.out.println("Nombre: "+nombre); System.out.println("Edad: " + edad); System.out.println("CI: " + ci); return void; } public void incrementar(int n) { edad = edad + n; } public String nuevoNombre(String name) { String antiguoNombre=nombre; nombre = name; return antiguoNombre; } public void nuevosDatos(String name, int age, ulong cin) { nombre = name; edad = age; ci = cin; } }

JavaFast - Tutorial de JAVA bajo desarrollo Ing. Socrates A. Flores A.

JavaFast - Tutorial de JAVA bajo desarrollo Ing. Socrates A. Flores A.


La llamada a los metodos de un objeto es de la misma manera que la llamada alas propiedades, la manera es de esta manera: <nombre variable> . <mtodo> ( <valores de los parametros> ); Un ejemplo de esto es Persona a = new Persona(); a.incrementar( 5 ): aaimprimir(); c. Sobrecarga de mtodos

La sobrecarga es una manera de agrupar metodos que son similares pero que solo se diferencian en los tipos de parametros y/o en el nmero de ellos, un ejemplo de esto es sumar dos nmeros pueden existir 3 funcionesuna para int, otra para float y otra para double, como tambien otra para sumar 3 enteros. De la siguiente manera: public int sumar(int a, int b) { return ( a + b ); } public float sumar(float a, int b) { return ( a + b ); } public double sumar(double a,double b) { return ( a + b ); } public int sumar(int a, int b, int c) { return ( a + b + c); } La llamada a estas funciones es como sigue a continuacin: int a = suma( 2 , 3 ); float b = suma( 2.0f , 3.0f ); double c = suma ( 5.0 , 6.0 ); int d = suma( 2 , 3, 4 ); JAVA automticamente detecta cual es la funcin que tiene que ser ejecutada por los parmetros que son pasados a ellas.

12. Constructores Los constructores son mtodos especiales que poseen los objetos, tienen la finalidad de inicializar las propiedades de los atributos o definir comportamiento ( 0 estado inicial) del objeto. Los constructores deben tener el mismo nombre de la clase y se declaran de la siguiente manera: <Tipo de acceso> <nombre de la clase> ( <lista de parmetros> ) { <tu cdigo aqu> } Un ejemplo de esto es el expuesto a continuacin: public Persona() {

JavaFast - Tutorial de JAVA bajo desarrollo Ing. Socrates A. Flores A.

JavaFast - Tutorial de JAVA bajo desarrollo Ing. Socrates A. Flores A.


nombre = "Pepe"; //inicializacin de las propiedades edad = 18; ci = 1234567L; casado = false; incrementar ( 5 ); //llamadas a los mtodos } 13. Constructores Los constructores en JAVA pueden o no declararse, si no se declara, JAVA automticamente crear un constructor por defecto con las siguientes caractersticas: public <nombre de la clase>() { <cdigo a ejecutarse> } Los constructores tambin pueden ser sobrecargados, de esta manera public class Persona { public Persona() { nombre = "Pepe"; //inicializacin de las propiedades edad = 18; ci = 1234567L; casado = false; } public Persona( String name ) { nombre = name; //inicializacin de las propiedades edad = 18; ci = 1234567L; casado = false; } public Persona ( String name, int age) { nombre = name; edad = age; ci = 1234567L; casado = false; } } Los constructores son llamados en el momento en que se instancia las clases, en otras palabras con la instruccin new, esto nos permite tener valores especficos y/o estados especficos para cada objeto, como ser a continuacin creamos tres objetos de tipo Persona, haciendo referencia a los constructores respectivos: Persona a = new Persona ( ); // Constructor por defecto Persona b = new Persona ( Juan Perez ); // Primera sobrecarga Persona c = new Persona ( Sebastian Vaght , 38 ); // Segunda sobrecarga Nota: Basta que se implemente un constructor sea declarado para que JAVA no cree el constructor por defecto a partir de ese momento si uno desea el constructor por defecto entonces este debe ser declarado explcitamente. 14. Concepto de nulo El concepto del nulo es el concepto que se usa con los objetos y sus variables, cuando se declara una variable para contener un objeto, puede estar apuntando a cualquier lugar, lo preferente es que

JavaFast - Tutorial de JAVA bajo desarrollo Ing. Socrates A. Flores A.

JavaFast - Tutorial de JAVA bajo desarrollo Ing. Socrates A. Flores A.


siempre tenga un valor aunque este sea un valor nulo ( o como algunos prefieren decir un valor vacio). Esta especificacin del valor nulo se utiliza la palabra null, un ejemplo de esto tenemos: Persona A; A = null; 15. Puntero this Dentro de objetos existe una instruccin en particular, que a veces es difcil de entender cuando se empieza a programar objetos, este es el puntero this, esta instruccin es la referencia al objeto actual cuando esta implementado, pero cuyo uso se especifica en la clase; cuando se usa el puntero this, su efecto se da solo en el objeto que esta instanciado y propiamente su uso es en los mtodos de una clase. El uso se complica debido a que muchos editores se valen de este puntero para hacer un despliegue dinmico de las propiedades y mtodos de la clase que se est desarrollando. La idea bsica es: El puntero this es la referencia al objeto actual. Yo puedo hacer referencia a otros mtodos del mismo objeto usando el puntero this, como sigue a continuacin: this.<Mtodo o propiedad a ser llamada> Un ejemplo de esto es puesto a continuacin. public class Persona { public String nombre; // acceso por cualquier otra clase protected int edad; // solo por clases hijas private long ci; // solo la clase persona boolean casado; // solo clases del mismo paquete public Persona() { nombre = "Pepe"; //inicializacin de las propiedades edad = 18; ci = 1234567L; casado = false; this.incrementar ( 5 ); //llamadas a los mtodos usando el puntero this } public void incrementar( int n ) { this.edad = this.edad + n; // llamada a los mtodos usando el puntero this } } Esto es til con un editor que tiene inteligent pues lista todos los mtodos y propiedades de la clase. Tambin es til en la llamada de constructores sobrecargados, porque solo hacemos un constructor que haga todo y le pasamos los valores que tendr. this ( <Lista de parmetros> ); Un ejemplo de esto es:

JavaFast - Tutorial de JAVA bajo desarrollo Ing. Socrates A. Flores A.

JavaFast - Tutorial de JAVA bajo desarrollo Ing. Socrates A. Flores A.


public class Persona { public Persona() // constructor por defecto { this( Juan Perez ); } public Persona( String name ) // primer constructor sobrecargado { this ( Victor Frankeinstein, 35 ); } public Persona ( String name, int age) //constructor base { nombre = name; edad = age; ci = 1234567L; casado = false; } }

16. Herencia La Herencia es una propiedad de Programacin Orientada a Objetos (POO), esto permite reutilizar el cdigo y solo concentrarnos en los mtodos que cambian el comportamiento de una clase. Existe una clase que se le denomina clase padre y una clase que hereda todas las propiedades y mtodos de esta clase que se denomina clase hija, los hijos solo se concentran en aadir mas mtodos y/o propiedades, para heredar se utiliza la palabra reservada extends, utilizando la siguiente sintaxis: class <Nombre de la clase hija> extends <Nombre de la clase padre> { <mtodos y/o propiedades de la clas padre> } Un ejemplo es: class Persona // El nombre de tu clase principal { String nombre = "Juan Perez"; int edad = 55; long ci = 4533678; void imprimir() { System.out.println("Nombre: "+nombre); System.out.println("Edad: " + edad); System.out.println("CI: " + ci); } } Public class Militar // El nombre de tu clase principal { String cargo = "cadete"; // nueva propiedad void imprimirCargo() // nuevo mtodo aadida { this.imprimir(); // metodo heredado System.out.println("Cargo: " + this.cargo); } } 17. Sobre-escritura

JavaFast - Tutorial de JAVA bajo desarrollo Ing. Socrates A. Flores A.

JavaFast - Tutorial de JAVA bajo desarrollo Ing. Socrates A. Flores A.


La sobre-escritura es una caracterstica de la herencia que nos permite cambiar el comportamiento de las clases hijas con respecto a las clases padres, el concepto es el siguiente, cuando declaro un mtodo con el mismo nombre de un mtodo heredado, con la condicin que la declaracin debe ser exactamente igual al mtodo heredado, de lo contrario la sobre-escritura no es aplicada. Un ejemplo es: class Persona // El nombre de tu clase principal { String nombre = "Juan Perez"; int edad = 55; long ci = 4533678; void imprimir() { System.out.println("Nombre: "+nombre); System.out.println("Edad: " + edad); System.out.println("CI: " + ci); } } class Militar // El nombre de tu clase principal { String cargo = "cadete"; // nueva propiedad void imprimir() // mtodo sobre-escrito { System.out.println("Nombre: "+nombre); // imprimimos una propiedad heredada System.out.println("Cargo: " + this.cargo); System.out.println("Edad: " + edad); // imprimimos una propiedad heredada System.out.println("CI: " + ci); // imprimimos una propiedad heredada } } De esta manera cuando instanciemos un objeto de la clase militar y llamamos al mtodo imprimir, se ejecutar el mtodo de la clase hija, como se muestra a continuacin. Militar m = new Militar(); // se llama al constructor por defecto de la clase m.imprimir(); // se ejecuta la clase 18. Concepto de super Con la sobre-escritura en ocasiones se necesita sobre-escribir un mtodo heredado pero tambin usar el mtodo que se ha heredado, para ello se puede llamar al mtodo del padre, esto se hace con la palabra super,la sintaxis es: super.<mtodo o propiedad del padre>; Un ejemplo de esto es aplicndolo al mismo ejemplo de la sobre-escritura: class Persona // El nombre de tu clase principal { String nombre = "Juan Perez"; int edad = 55; long ci = 4533678; void imprimir() { System.out.println("Nombre: "+nombre); System.out.println("Edad: " + edad); System.out.println("CI: " + ci); } }

JavaFast - Tutorial de JAVA bajo desarrollo Ing. Socrates A. Flores A.

JavaFast - Tutorial de JAVA bajo desarrollo Ing. Socrates A. Flores A.


class Persona // El nombre de tu clase principal { String cargo = "cadete"; // nueva propiedad void imprimir() // mtodo sobre-escrito { super.imprimir(); // llamada al mtodo del padre System.out.println("Cargo: " + this.cargo); } } El super tambin se puede utilizar para los constructores, para hacer referencia a un constructor del padre, de esta manera nosotros hacemos referencia a un constructor del padre, usando la siguiente sintaxis: super ( <lista de parmetros> ); Un ejemplo de esto: public class Persona { public Persona() { nombre = "Pepe"; //inicializacin de las propiedades edad = 18; ci = 1234567L; casado = false; } public Persona( String name ) { nombre = name; //inicializacin de las propiedades edad = 18; ci = 1234567L; casado = false; } } public class Militar { public Militar () { super (); // llamada al constructor por defecto del padre } public Militar ( String name ) { super ( name ); // llamada al primer constructor sobrecargado del padre } }

19. Polimorfismo El polimorfismo es un mtodo que nos ayuda a utilizar diferentes objetos que son hijos de una misma clase y utilizarlos como si fuese la misma clase, esto se puede apreciar con un ejemplo . class Persona { public void yosoy()

JavaFast - Tutorial de JAVA bajo desarrollo Ing. Socrates A. Flores A.

JavaFast - Tutorial de JAVA bajo desarrollo Ing. Socrates A. Flores A.


{ System.out.println("Yo soy una Persona."); } } class Militar extends Persona { @Override public void yosoy() // funcin sobre-escrita { System.out.println("Yo soy un Militar."); } } class Policia extends Persona { @Override public void yosoy() // funcin sobre-escrita { System.out.println("Yo soy un Policia."); } } class Marinero extends Persona { @Override public void yosoy()// funcin sobre-escrita { System.out.println("Yo soy un Marinero."); } } class Piloto extends Persona { @Override public void yosoy()// funcin sobre-escrita { System.out.println("Yo soy un Piloto."); } } public class Main //clase principal { public static void main(String[] args) { Persona A; Persona B; Persona C; A = new Militar(); B = new Piloto(); C = new Marinero(); A.yosoy (); B.yosoy (); C.yosoy (); } } Esto es muy til si lo usamos con un vector

JavaFast - Tutorial de JAVA bajo desarrollo Ing. Socrates A. Flores A.

JavaFast - Tutorial de JAVA bajo desarrollo Ing. Socrates A. Flores A.


public static void main(String[] args) { Persona [] vector = new Persona [3]; vector [0] = new Militar(); vector [1] = new Piloto(); vector [2] = new Marinero();

for ( int i = 0; i < vector.length; i++) { vector [i] .yosoy(); } } 20. Concepto del Cast As como el polimorfismo generaliza diferentes objetos para obtener manejarlos indistintamente, el cast hace el paso inverso, de un conjunto de objetos que se usan en forma generalizada, lo que se debe hacer es identificar el tipo de cada objeto y lo asigna a una variable menos generalizada o exactamente el tipo de variable que es dicho objeto, el formato que sigue es: <tipo especfica> <nombre de la variable> = ( <tipo especfico> ) <variable objeto> ; Aplicndolo al ejemplo del polimorfismo es: Persona A; Persona B; Persona C; Militar X; Piloto Y; Marinero Z; A = new Militar(); B = new Piloto(); C = new Marinero(); X = ( Militar ) A; Y = ( Piloto ) B; Z = ( Marinero ) D; 21. Clases abstractas Las clases abstractas son clases que no pueden ser instanciadas, es utilizando la palabra clave abstract en la declaracin de la clase, como se muestra a continuacin: abstract class Persona // El nombre de tu clase principal { } Desde luego al hacer esto, las clases abstractas no tienen constructores y por lo menos uno de sus mtodos deben ser abstractos, esto significa que solo son declarados sin la implementacin del algoritmo, como se muestra a continuacin: abstract class Persona // El nombre de tu clase principal { public abstract void yosoy(); // funcin abstracta }

JavaFast - Tutorial de JAVA bajo desarrollo Ing. Socrates A. Flores A.

JavaFast - Tutorial de JAVA bajo desarrollo Ing. Socrates A. Flores A.


Esto compromete a que los hijos de esta clase deben sobre-escribir dicha funcin, de lo contrario aparecer un error, a continuacin un ejemplo de esto. abstract class Militar extends Persona // El nombre de tu clase principal { public void yosoy() // funcin sobre-escrita { System.out.println( "Yo soy un Piloto." ); } } Por esta razn las clases abstractas son utilizadas para definir comportamientos para las clases hijas. 22. Interfaces Las interfaz son clases especiales, que se caracterizan por no tener propiedades, ser automticamente un a clase abstracta y todas sus funciones son abstractas y pblicas. Rn otras palabras las interfaces ayudan a definir comportamiento de las clases. La manera en de finir una interfaz es usando la palabra reservada interface, y su sintaxis es: <tipo de acceso> interface <Nombre de la interfaz> { < declaracin de funciones> } Un ejemplo es : public interface Comportamiento { public void saludar(); public void cuadrarce(); public void discrecin(); } Para aplicar una interfaz a una clase se utiliza la palabra reservada implements, de la siguiente manera. public class <nombre de la clase> implements <interfaz1>,<interfaz2>, { <implementacin de las funciones de la interfaz> } Un ejemplo de esto es: public class Militar implements Comportamiento // aplicacin de una interfaz { public void saludar()// funcin sobre-escrita { <implementacion de la funcin> } public void cuadrarce()// funcin sobre-escrita { <implementacion de la funcin> } public void discrecin()// funcin sobre-escrita { <implementacion de la funcin>

JavaFast - Tutorial de JAVA bajo desarrollo Ing. Socrates A. Flores A.

JavaFast - Tutorial de JAVA bajo desarrollo Ing. Socrates A. Flores A.


} }

Java AWT La librera AWT es una librera de entorno grfico, con elementos bsicos para la creacin de GUI. la importacin de los componentes del GUI es: import java.awt.*; 1. Ventanas Las ventanas son importantes para un ambiente grfico, es nuestro lugar de trabajo e interfaz para interactuar con el usuario. hay muchas maneras de crear una ventana, pero aqu utilizaremos una de las ms comunes, la herencia, creamos una clase y heredamos todas las caractersticas de Frame. public class MiVentana extends Frame{ public MiVentana() { } } Las ventanas tienen muchas propiedades entre las cuales podemos destacar las ms utilizadas: Este es el constructor de la clase frame, en el constructor de la ventana solo tienes que hacer referencia al constructor del super y pasarle el mismo parametro. La cadena que se le pasa al constructor es el ttulo que va a tener la ventana. Especifica el alto y el ancho que tendr la ventana, por defecto tiene de tamao 0,0; por lo que es recomendable siempre darle un tamao a la ventana. Esta funcin coloca la ventana en un coordenada Y y X en la pantalla. Esta funcin se encarga de visualizar la ventana.

Frame( String title)

setSize(int width, int heigth)

setLocation(int x, int y) setVisible(boolean b)

Esta funcin es til para aadir componentes grficos, el uso de add( Componet comp) esta funcin la veremos a partir de paneles. Es el manejador de distribucin de componentes, recibe una manejador de layouts, se recomienda para principiantes que este se debe pasar el valor de null.

setLayout(Layout layout)

Un ejemplo para la creacin de una ventana es el cdigo presentado a continuacin: import java.awt.*;//cargamos los componentes de la librera AWT.

JavaFast - Tutorial de JAVA bajo desarrollo Ing. Socrates A. Flores A.

JavaFast - Tutorial de JAVA bajo desarrollo Ing. Socrates A. Flores A.


public class MiVentana extends Frame{ //Heredamos todas las propiedades de la ventana public MiVentana() { super( "MiVentana" ); //Llamada al constructor padre setLayout( null ); setSize( 400,400 ); //Colocamos un tamao a la ventana actual setLocation( 50,50 ); //Especificamos la posicin en la pantalla } } Ahora podemos instancear nuestra ventana en el programa principal, de la siguiente forma. public static void main( String [] args) { MiVentana v; // Declaramos una variable de tipo MiVentana v = new MiVentana(); // Instanceamos una de las ventanas v.setVisible(true); // la volvemos visible } El resultado de la ejecucin de este cdigo es la ventana a continuacin.

2.

Dialogo Los dilogos son sub-ventanas que pueden o no depender de una ventana, la ventaja esta en esta dependencia, porque se puede especificar el funcionamiento de una aplicacin haciendo que el usuario interactu con un dialogo antes que con la ventana principal, otra ventaja es que en esta dependencia si la ventana se cierra, todos los dilogos que dependen de ella pueden ser cerrados. La manera como se instancia un dilogo es similar que las ventanas. public class MiDialogo extends Dialog{ public MiDialogo() {

JavaFast - Tutorial de JAVA bajo desarrollo Ing. Socrates A. Flores A.

JavaFast - Tutorial de JAVA bajo desarrollo Ing. Socrates A. Flores A.


} } Las ventanas tienen muchas propiedades entre las cuales podemos destacar las ms utilizadas: Nombre de la funcin Descripcin Estos son los constructores de los dilogos, pueden ser cualquiera de ello, si se utiliza el primero, se estar visualizando un dialogo con un ttulo especfico, en el segundo caso se visualiza un dialogo sin ningn ttulo, como se muestra en el grfico.

Dialog(Frame ventana, String title) Dialog(Frame ventana)

Especifica el alto y el ancho que tendr la ventana, por defecto tiene setSize(int width, int heigth) de tamao 0,0; por lo que es recomendable siempre darle un tamao a la ventana. setLocation(int x, int y) setVisible(boolean b) Esta funcin coloca la ventana en un coordenada Y y X en la pantalla. Esta funcin se encarga de visualizar la ventana. Esta funcin es til para aadir componentes grficos, el uso de esta funcin la veremos a partir de paneles. Es el manejador de distribucin de componentes, recibe un manejador de layouts, se recomienda para principiantes que este se debe pasar el valor de null.

add( Componet comp)

setLayout(Layout layout)

Un ejemplo para la creacin de una ventana es el cdigo presentado a continuacin: import java.awt.*;//cargamos los componentes de la librera AWT. public class MiDialogo extends Dialog{ //Heredamos todas las propiedades de la ventana public MiDialogo( Frame ventana ) { super( ventana, "MiDialogo" ); //Llamada al constructor padre setLayout(null); setSize(200,200); //Colocamos un tamao al dialogo actual setLocation(150,150); //Especificamos la posicin en la pantalla } }

JavaFast - Tutorial de JAVA bajo desarrollo Ing. Socrates A. Flores A.

JavaFast - Tutorial de JAVA bajo desarrollo Ing. Socrates A. Flores A.


Ahora podemos instancear nuestra ventana dentro de nuestra ventana, de la siguiente forma. import java.awt.*; public class MiVentana extends Frame{ protected MiDialogo dialogo; // Declaramos una variable que sea de tipo mi dialogo. public MiVentana() { super("MiVentana"); this.setSize(400,400); this.setLocation(50,50); dialogo = new MiDialogo(this);// Instanciamos un objeto de tipo MiDialogo dialogo.setVisible(true);// visualizamos nuestro dialogo. } } El resultado de la ejecucin de este cdigo es la ventana a continuacin.

3.

Componentes en General Los componentes son objetos grficos que nosotros utilizamos en JAVA para interactuar con el usuario, estos componentes a las ventanas, dilogos y paneles, todos los componentes heredan las mismas propiedades del objeto Component, entre estas propiedades podemos destacarlos mtodos ms usuales. Nombre de la funcin void setText( String text) String getText( ) void setSize(int width, int heigth) Descripcin Esta funcin se encarga de asignar el texto que se mostrar en el componente. Esta funcin se encarga de retornar el texto que se encuentra en el componente. Especifica el alto y el ancho que tendr la ventana, por defecto tiene de tamao 0,0; por lo que es recomendable

JavaFast - Tutorial de JAVA bajo desarrollo Ing. Socrates A. Flores A.

JavaFast - Tutorial de JAVA bajo desarrollo Ing. Socrates A. Flores A.


siempre darle un tamao a la ventana, si no0 especificamos el tamao, por defecto va a ser (0,0) y no podremos ver nuestro componente. void setLocation(int x, int y) void setVisible(boolean b) void setBackground(Color c) Esta funcin coloca la ventana en un coordenada Y y X en la pantalla. Esta funcin se encarga de visualizar la ventana. Esta funcin se encarga de colocar de fondo al componente.

El uso de estas funciones vamos apreciarlas a lo largo de este tutorial y apreciaremos que todos los componentes tienen estas funciones. 4. Titulos o Labels Los Labels, es el texto que nosotros podemos presentar en java pero no puede ser editado, tal como si fuese un titulo.

import java.awt.*; // librera grafica public class MiVentana extends Frame{ Label titulo; // declaramos una variable de tipo Label. public MiVentana() { super("MiVentana"); setLayout(null); setSize(200,100); setLocation(50,50); titulo = new Label(); // Instanceamos un objeto de tipo label llamando al constructor por defecto. titulo.setText ( "Mi titulo" );// Colocamos un titulo o texto que ser visualizado. titulo.setSize ( 200,25 );// Especificamos el tamao que tendras nuestro ttulo. titulo.setLocation ( 20,50 );// Especificamos la posicin de nuestro ttulo. add ( titulo );// ahora aadimos nuestro ttulo a nuestra ventana, si no hacemos esto, nuestro ttulo no aparecer en la ventana. } } El resultado de la ejecucin de este cdigo es la imagen que est a continuacin:

5. Cajas de texto Las cajas de texto son los llamados TextField, son campos de texto editable que ayudan a que el usuario ingrese valores a un programa, para obtener import java.awt.*; // librera grafica public class MiVentana extends Frame{ TextField msg; // declaramos una variable de tipo Label. public MiVentana() { super("MiVentana");

JavaFast - Tutorial de JAVA bajo desarrollo Ing. Socrates A. Flores A.

JavaFast - Tutorial de JAVA bajo desarrollo Ing. Socrates A. Flores A.


setLayout(null); setSize(250,100); setLocation(50,50); msg = new TextField (); // Instanceamos un objeto de tipo TextField llamando al constructor por defecto. msg.setText ( "Introduzca su texto aqu" );// Colocamos un textoa ser visualizado en la caja de texto. msg.setSize ( 200,25 );// Especificamos el tamao que tendr nuestro ttulo. msg.setLocation ( 20,50 );// Especificamos la posicin de nuestro ttulo. add (msg);// ahora aadimos nuestra caja de texto a nuestra ventana, si no hacemos esto, nuestro ttulo no aparecer en la ventana. } } El resultado de este cdigo es como se muestra a continuacin:

6.

Botones

Los botones son otros objetos visuales que son tiles para iniciar funcionalidades especficas del programa, en JAVA utilizan el nombre de Buttons. Los botones no tienen una funcin de setText() para especificar el texto que se visualizar en el botn, para ello se utiliza la funcin setLabel(), que se utiliza de la misma manera. Nombre de la funcin void setLabel ( String label ) Descripcin Recibe el texto que se visualizar en el botn.

Un ejemplo del uso de los botones es el que ponemos a continuacin: public class MiVentana extends Frame { Button miBoton; public MiVentana() { super("MiVentana"); setLayout(null); setSize(200,100); setLocation(50,50);

miBoton = new Button(); // instanceamos un botn miBoton.setLabel ( "Mi Boton" ); // le colocamos un texto miBoton.setLocation (25,45 ); // especificamos una posicin miBoton.setSize ( 150, 25 ) ; // especificamos el tamao del botn this.add( miBoton ); //aadimos el botn a nuestra ventana } }

JavaFast - Tutorial de JAVA bajo desarrollo Ing. Socrates A. Flores A.

JavaFast - Tutorial de JAVA bajo desarrollo Ing. Socrates A. Flores A.


Al ejecutar este cdigo tenemos el siguiente resultado

Ahora si queremos hacer algo al presionar el botn, veremos que no sucede nada, y ms todava si nosotros queremos cerrar la ventana al ejecutar todos estos ejemplos, tendremos la frustracin que no se cierra, para ello veamos el siguiente apartado. 7. Listeners

Existe otro paradigma de programacin, la cual es el paradigma orientado a eventos, esto es que cada vez que sucede un evento se puede suceder algo, un evento son acciones que suceden como ser, el movimiento del mouse, el cierre de una ventana, la presin de un botn, el escribir por el teclado. Los encargados de escuchar a estos eventos son denominados Listeners.

Los listeners son interfaces, en otras palabras que son comportamientos que se aplican a las clases para que tengan un comportamiento y puedan ser usados por el sistema, existen una variedad de listeners. Entre ellos tenemos. a. ActionListener Esta interfaz es usada para escuchar los eventos al presionar el mouse sobre un componente, como por ejemplo los botones, el ActionListener se encuentra en el siguiente paquete: import java.awt.event.*; Esta interfaz tienen una funcin que debe ser sobre-escrita, esta funcin es: public void actionPerformed (ActionEvent ae) { } Cada vez que se hace click sobre un componente JAVA, hace referencia a esta funcin. Esta funcin recibe como parmetro un objeto ActionEvent que contiene toda la informacin del evento del mouse. Utilizando el mtodo getSource().equals() para comparar el objeto seleccionado con nuestro botn.

Los botones y otros objetos similares tienen un mtodo para especificar el objeto que implementa el ActionListener, este es el addAtionListener(), as enlazamos el objeto que se encarga de escuchar el evento con el botn, para apreciar eso tomaremos el ejemplo de la seccin 6, donde cada vez que presionemos el botn se desplegara un mensaje en pantalla: import java.awt.*; import java.awt.event.*; //implementamos la interfaz del ActionListener en la venta para, que esta sea quien escuche los eventos. public class MiVentana extends Frame implements ActionListener { Button miBoton = null; public MiVentana() {

JavaFast - Tutorial de JAVA bajo desarrollo Ing. Socrates A. Flores A.

JavaFast - Tutorial de JAVA bajo desarrollo Ing. Socrates A. Flores A.


super("MiVentana"); setLayout(null);// no olvidar esta lnea setSize(200,100);//definimos el tamao para el botn setLocation(50,50);//ponemos el botn en una posicin miBoton = new Button(); // instanceamos un botn miBoton.setLabel("Mi Boton"); // le colocamos un texto miBoton.setLocation(25, 45); // especificamos una posicin miBoton.setSize(150, 25); // especificamos el tamao del botn miBoton.addActionListener( this ); // le decimos al botn que quien lo escuchar ser la ventana add(miBoton);//aadimos el botn a la ventana } public void actionPerformed( ActionEvent ae ) //sobre-.escribimos esta funcin que es del ActionListener { //usamos el mtodo getSource().equals(...) para compara if ( ae.getSource().equals( miBoton ) ) //Verificamos si nuestro botn es el presionado { System.out.println( "Se presiono MiBoton." ); //imprimimos un mensaje cada vez que presionamos el botn } } }

b. WindowsListener Esta interfaz se encarga de escuchar los eventos que ocurren sobre la ventana, como ser mimizarla, restaurarla, cerrarla, etc. Esta interfaz se encuentra en el siguiente paquete: import java.awt.event.*; Las funciones que se tienen que sobre-escribir de esta interfaz, son las listadas a continuacin Nombre void windowActivated( WindowEvent e ) void windowClosed( WindowEvent e ) void windowClosing( WindowEvent e ) void windowDeactivated( WindowEvent e ) void windowDeiconified( WindowEvent e ) void windowIconified( WindowEvent e ) void windowOpened( WindowEvent e ) Descripcin Cuando se selecciona la ventana. Cuando la venta se ha cerrado sin intervencin de los botones estndares. Cuando se encarga presiona el botn de cerrado de la ventana. Esta funcin entra cuando la ventana entra en estado inactivo. Esta funcin es llamada cuando la ventana es restaurada. Esta funcin es llamada cuando la ventana es minimizada. Esta funcin es llamada cuando la ventana es visualizada.

El objeto WindowEvent contiene toda la informacin sobre el evento que se ha capturado. La funcin que se encarga de especificar el objeto que escuchar estos eventos es: addWindowListener( ); Un ejemplo de este cdigo es el programa presentado a continuacin: import java.awt.*; import java.awt.event.*; public class MiVentana extends Frame implements WindowListener

JavaFast - Tutorial de JAVA bajo desarrollo Ing. Socrates A. Flores A.

JavaFast - Tutorial de JAVA bajo desarrollo Ing. Socrates A. Flores A.


{ public MiVentana() //constructor por defecto { super("MiVentana"); // llamamos al constructor de la clase padre setLayout(null); // especificamos el manejador de layouts con inexistente setSize(200,100);//especificamos un tamao de la ventana setLocation(50,50);// especificamos una posicin this.addWindowListener(this);// especificamos el objeto que se encargar de escuchar los eventos de la ventana } public void windowActivated(WindowEvent e) { //esta funcin es invocada cuando la ventana se activa System.out.println( "Ventana activa" ); } public void windowClosed(WindowEvent e) { //esta funcin se invoca cuando se cierra la ventana mediante el dispose. System.out.println( "Ventana cerrada" ); } public void windowClosing(WindowEvent e) { //esta funcin se invoca cuando cerramos la ventana System.out.println( "Ventana cerrandose" ); System.exit(0);//esta instruccin termina el programa que actualmente se est ejecutando } public void windowDeactivated(WindowEvent e) { //esta funcin se encarga de ejecutarse cuando entra en un estado inactivo System.out.println( "Ventana inactiva" ); } public void windowDeiconified(WindowEvent e) { //esta funcin se invoca cuando la ventana es restaurada System.out.println( "Restaurando la ventana" ); } public void windowIconified(WindowEvent e) { //esta funcin es invocada cuando la ventana es minimizada System.out.println( "Minimizando la ventana" ); } public void windowOpened(WindowEvent e) { //esta funcin es invocada cuando la ventana es visualizada System.out.println( "Cuando se visualiza la ventana" ); } }

8.

Mi primer programa

Para estas alturas se puede hacer un programa ms avanzado que el hola mundo, como ser el que el usuario ingrese un texto en la caja de texto y este se despliegue en otro lugar de la ventana como en la barra de la ventana.

JavaFast - Tutorial de JAVA bajo desarrollo Ing. Socrates A. Flores A.

JavaFast - Tutorial de JAVA bajo desarrollo Ing. Socrates A. Flores A.


El cdigo para este programa esta a continuacin, gran parte del cdigo ya se ha visto, lo novedoso, es como se visualiza el mensaje de texto en el label y en el ttulo de la ventana, por lo cual es lo que resalta en el programa a continuacion

import java.awt.*; import java.awt.event.*; public class MiVentana extends Frame implements WindowListener,ActionListener { private Button miBoton = null; private Label miTitulo = null; private Label miResultado = null; private TextField miCaja = null; public MiVentana() //constructor por defecto { super("MiVentana"); // llamamos al constructor de la clase padre setLayout(null); // especificamos el manejador de layouts con inexistente setSize(250,130);//especificamos un tamao de la ventana setLocation(50,50);// especificamos una posicin miTitulo = new Label("Ingrese un texto:"); miTitulo.setLocation(10, 25); miTitulo.setSize(200,25); this.add(miTitulo); miCaja = new TextField("Hola mundo...."); miCaja.setLocation(10, 50); miCaja.setSize(200,25); this.add(miCaja); miBoton = new Button("Imprimir el texto"); miBoton.setLocation(10, 75); miBoton.setSize(200,25); miBoton.addActionListener(this); // especificamos que la ventana est escuchando this.add(miBoton); miResultado = new Label("Msj: "); miResultado.setLocation(10, 100); miResultado.setSize(200,25); this.add(miResultado); this.addWindowListener(this);// espoecificamops wl objeto que se encargar de escuchar los eventos de la ventana } public void actionPerformed(ActionEvent ae) {// Esta funcion es llamada cuando se presiona el boton if( ae.getSource().equals( miBoton ) ) { // obtenemos el texto de la caja de texto y lo visualizamos en el label miResultado.setText( "Msj: " + miCaja.getText() ); //Colocamos el texto en el ttulo de la ventana this.setTitle("Mi Ventana-"+ miCaja.getText()); } }

JavaFast - Tutorial de JAVA bajo desarrollo Ing. Socrates A. Flores A.

JavaFast - Tutorial de JAVA bajo desarrollo Ing. Socrates A. Flores A.


public void windowActivated(WindowEvent e)//esta funcin es invocada cuando la ventana se activa {} public void windowClosed(WindowEvent e)//esta funcin se invoca cuando se cierra la ventana mediante el dispose. {} public void windowClosing(WindowEvent e) {//esta funcin se invoca cuando cerramos la ventana System.exit(0);//esta instruccin termina el programa que actualmente se est ejecutando } public void windowDeactivated(WindowEvent e)//esta funcin se encarga de ejecutarse cuando entra en un estado inactivo {} public void windowDeiconified(WindowEvent e)//esta funcin se invoca cuando la ventana es restaurada {} public void windowIconified(WindowEvent e)//esta funcin es invocada cuando la ventana es minimizada {} public void windowOpened(WindowEvent e)//esta funcin es invocada cuando la ventana es visualizada {} } 9. Continuara

JavaFast - Tutorial de JAVA bajo desarrollo Ing. Socrates A. Flores A.