Sunteți pe pagina 1din 59

CURSO JAVA

Pagina 1

Curso JAVA

Ing. Fernando Gil

Que es JAVA?
JAVA, la mayor isla de Indonesia ? JAVA, el personaje de la guerra de las galaxias ? JAVA:
- Lenguaje de programacion orientado a objetos. - De plataforma independiente. - Para desarrollar aplicaciones: * Standalone ( computadoras independientes ) * para Internet ( computadoras en red ) * para Dispositivos ( celulares, PDAs, TVs, microondas, etc )

Surge en 1995 en Sun Microsystems, EUA. Originalmente se habia lanzado como un lenguaje para electrodomesticos, sin exito. La idea era crear un lenguaje independiente del hardware ( pc o telefono ), sistema operativo ( Windows, Unix, Mac ), que corriera en los mas diversos CPUs.
Pagina 2

Curso JAVA

Ing. Fernando Gil

Caracteristicas
* Simple
- Sintaxis facil de aprender. No usa apuntadores. - Programadores no requieren manejar la memoria como en C++

* Orientado a Objetos
- Soporta abstraccion, encapsulacion, herencia, polimorfismo. - Los programas deben estar escritos dentro de clases.

* Compilado e Interpretado
- El programa fuente se compila a ByteCodes. - Los bytecodes se interpretan en la maquina de destino.

* Portable
- Los programas corren en maquinas diferentes con S.O. diferente. - JVM es el interprete de bytecodes. - Escribirlo solo una vez, ejecutarlo donde sea.

* Distribuido
- Aplicaciones que se pueden distribuir entre varias pcs en la red. - JAVA disenado para el ambiente de Internet.
Pagina 3

Curso JAVA

Ing. Fernando Gil

Tipos de Aplicaciones
Character User Interface ( CUI )
- Programas de consola. Para ejecutarse en maquinas locales.

Graphical User Interface ( GUI )


- Usadas en entornos Windows. Botones, cajas de texto, etc.

Applets
- Pequenos programas ejecutables que corren en una pagina Web.

Servlets y JSPs
- Programas que extienden la funcionalidad de Servidores Web.

Midlets
- Programas para ejecutarse en dispositivos electrodomesticos y moviles.

Paquetes
- Colecciones de clases para ser reusadas en nuevas aplicaciones.

Pagina 4

Curso JAVA

Ing. Fernando Gil

Arquitectura de Java
Componentes:
* Lenguaje de Programacion Java ver mas
* Archivo compilado de Java ( .class )
Programa Java ( .java ) Compilador Java Bytecodes ( .class ) Interprete Java Codigo Maquina

* Java Virtual Machine ( JVM )

ver mas

* Interfaz de Programacion de Aplicaciones Java ( API )

Pagina 5

Curso JAVA

Ing. Fernando Gil

Portabilidad en Multiples Plataformas


Codigo Fuente Java ( .java )

Compilador Java ( javac.exe )

Archivo de ByteCodes ( .class )

JVM
Windows

JVM
UNIX

JVM
Macintosh

Codigo Maquina Para Windows

Codigo Maquina Para UNIX

Codigo Maquina Para Macintosh

Pagina 6

Curso JAVA

Ing. Fernando Gil

Java API
Java API
= Java Application Programming Interface

- Es una coleccin de componentes de software que proveen capacidades, tales como GUI, red, acceso a base de datos, etc.
- Las clases de la API de java estan agrupadas en PAQUETES.

Programa Java ( .java ) Java API ( JVM ) Hardware Plataforma Java

Pagina 7

Curso JAVA

Ing. Fernando Gil

Ediciones de JAVA
J2SE Java 2 Standard Edition
= JDK ( J2SE Development Kit ) - Incluye: Compilador Java Java Runtime Enviroment ( JRE ) Librerias para crear aplicaciones CUI, GUI, standalone y soporte red. - Denominacion de Versiones: Java 4.2 = Java 1.4.2 Java 5 = Java 1.5.0

J2EE Java 2 Enterprise Edition


- Incluye: SDK ( Software Development Kit ), librerias para crear aplicaciones de internet. Servidor de Aplicaciones J2EE. Opcionalmente el JDK.

J2ME Java 2 Micro Edition


- Librerias para desarrollar aplicaciones para dispositivos moviles.

Pagina 8

Curso JAVA

Ing. Fernando Gil

Java Runtime Environment


JRE
Java Runtime Environment - Incluye: JVM - Java Virtual Machine : es el interprete de bytecodes. - Debe estar instalado en la computadora donde se ejecutaran los programas java. - No es independiente de la plataforma. - Cada plataforma necesita tener su propia version de JVM para correr una aplicacin java. - Si el S.O. de la computadora cambia, solo se debe instalar la JVM adecuada sin modificar el programa fuente. - Denominacion de Versiones: JRE 4.2 = Java Runtime Environment 1.4.2 JRE 5 = Java Runtime Environment 1.5.0

Pagina 9

Curso JAVA

Ing. Fernando Gil

Instalacion de JAVA
Descarga del software JAVA j2se j2ee Instalacion del JDK

PATH y CLASSPATH
PATH CLASSPATH C:\Archivos de programa\Java\jdk1.5.0_04\bin; C:\Archivos de programa\Java\jdk1.5.0_04\lib;

Pagina 10

Curso JAVA

Ing. Fernando Gil

Hola Mundo
La aplicacin mnima La apliacin mnima consta de una clase que define la funcin esttica main. public class PrimeroApp { public static void main ( String[] args) { } } Donde class es la palabra clave que se emplea para definir una clase cuyo nombre es PrimeroApp. Dentro de la clase se define una funcin denominada main, que no devuelve nada void y que es esttica (static). Como en el lenguaje C/C++ a esta funcin se le pueden pasar argumentos en el array de objetos del tipo String. La definicin de una clase est entre dos llaves de apertura { y cierre }. El cuerpo o definicin de la funcin main est asimismo, entre las llaves de apertura y cierre, aqu es donde situaremos nuestro cdigo para que la apliacin tenga alguna funcionalidad.

Pagina 11

Curso JAVA

Ing. Fernando Gil

Sintaxis

Pagina 12

Curso JAVA

Ing. Fernando Gil

Elementos del lenguaje


Identificadores ( nombres de variables ):
1. Comenzar con una letra, el carcter subrayado ( _ ) o el carcter dollar ( $ ). 2. Puede incluir, pero no comenzar por un nmero 3. No puede incluir el carcter espacio en blanco 4. Distingue entre letras maysculas y minsculas 5. No se pueden utilizar las plabras reservadas como identificadores
Tipo de identificador nombre de una clase nombre de funcin nombre de variable nombre de constante Convencin Comienza por letra mayscula comienza con letra minscula comienza por letra minscula En letras maysculas Ejemplo String, Rectangulo, CinematicaApplet calcularArea, getValue, setColor area, color, appletSize PI, MAX_ANCHO

Pagina 13

Curso JAVA

Ing. Fernando Gil

Elementos del lenguaje


Comentarios:

De una sola linea:


// Este es un comentario de una sola linea // Esta es otra linea de comentario De multiples lineas: /*-------------------------------|| (C) Angel Franco Garca || fecha: Marzo 1999 || programa: PrimeroApp.java ||---------------------------------*/

Pagina 14

Curso JAVA

Ing. Fernando Gil

Elementos del lenguaje


La sintxis de un lenguaje define los elementos de dicho lenguaje y cmo se combinan para formar un programa. Los elementos tpicos de cualquier lenguaje son los siguientes:

Identificadores ( nombres de variables )


Tipos de datos Palabras reservadas Sentencias Bloques de Codigo Comentarios Expresiones Operadores

Pagina 15

Curso JAVA

Ing. Fernando Gil

Elementos del lenguaje


Tipos de dato primitivo :
Tipo boolean char Descripcion Tiene dos valores true o false. Caracteres Unicode de 16 bits Los caracteres alfa-numricos son los mismos que los ASCII con el bit alto puesto a 0. El intervalo de valores va desde 0 hasta 65535 (valores de 16-bits sin signo). Tamao 8 bits. El intervalo de valores va desde -27 hasta 27 -1 (-128 a 127) Tamao 16 bits. El intervalo de valores va desde -215 hasta 215-1 (-32768 a 32767) Tamao 32 bits. El intervalo de valores va desde -231 hasta 231-1 (-2147483648 a 2147483647) Tamao 64 bits. El intervalo de valores va desde -263 hasta 263-1 (-9223372036854775808 a 9223372036854775807) Tamao 32 bits. Nmeros en coma flotante de simple precisin. Estndar IEEE 754-1985 (de 1.40239846e45f a 3.40282347e+38f) Tamao 64 bits. Nmeros en coma flotante de doble precisin. Estndar IEEE 754-1985. (de 4.94065645841246544e324d a 1.7976931348623157e+308d.)
Curso JAVA
Ing. Fernando Gil

byte short int long float double

Pagina 16

Elementos del lenguaje


Palabras reservadas :
abstract case const* else float if int null protected satatic throw void boolean cast* continue extends for implements interface operator* public super transient volatile break catch default false future* import long outer* rest* switch true while byte char do final generic* inner* native package return synchronized try byvalue* class double finally goto* instanceof new private short this var*

Pagina 17

Curso JAVA

Ing. Fernando Gil

Elementos del lenguaje


Caracteres :
Un carcter est siempre rodeado de comillas simples como 'A', '9', '', etc. Secuencia de escape \r \t \n \\ Carcter retorno de carro tabulador horizontal nueva lnea barra invertida

Bloques de Codigo :
Expresiones:

Grupo de sentencias que se comportan como una unidad . Un bloque de cdigo est limitado por las llaves de apertura { y cierre } Es todo aquello que se puede poner a la derecha del operador asignacin =.

x = 123; y = (x+100)/4; area = circulo.calcularArea(2.5); Rectangulo r = new Rectangulo(10, 10, 200, 300);

Pagina 18

Curso JAVA

Ing. Fernando Gil

Elementos del Lenguaje


Variables :
Una variable es un nombre que se asocia con una porcin de la memoria de la computadora, en la que se guarda el valor asignado a dicha variable.

Tipos de variables: Instancia Clase Locales


Varible de Instancia: Tambien llamadas datos miembro, se usan para guardar los atributos de un objeto particular. Varible de Clase: Tambien llamadas datos miembro estticos son similares a las variables de instancia, con la excepcin de que los valores que guardan son los mismos para todos los objetos de una determinada clase.

Varibles Locales: se declaran en el momento en el que son necesarias. Es una buena costumbre inicializar las variables en el momento en el que son declaradas.
int x=0; String nombre="Angel"; Pagina 19

Curso JAVA

Ing. Fernando Gil

Elementos del Lenguaje


Constantes :
Se declaran como final, se ha de inicializar y cualquier intento de modificarla en el curso de la ejecucin del programa da lugar a un error en tiempo de compilacion.
final double final int PI = 3.141592653589793; MAX_DATOS = 150;

Operadores Aritmeticos :
Operador + * / % Suma Resta Producto Cociente Modulo Nombre 3+ 4 34 3*4 20 / 7 20 % 7 Ejemplo

Pagina 20

Curso JAVA

Ing. Fernando Gil

Elementos del Lenguaje


Operadores Relacionales :
Operador < > == != <= >= Nombre menor que mayor que igual a no igual a menor que o igual a mayor que o igual a Ejemplo Significado

a<b a>b a==b a!=b a<=5 a>=b

a es menor que b a es mayor que b a es igual a b a no es igual a b a es menor que o igual a b a es menor que o igual a b

Operadores Logicos :
&& || ! AND (el resultado es verdadero si ambas expresiones son verdaderas) OR (el resultado es verdadero si alguna expresin es verdadera) NOT (el resultado invierte la condicin de la expresin)

Pagina 21

Curso JAVA

Ing. Fernando Gil

Fundamentos de O. O.

Pagina 22

Curso JAVA

Ing. Fernando Gil

Clases y Objetos
* Clases ( categorias de objetos ) : Personas, animales, maquinas, etc. El mundo real esta formado por

* Objetos ( de cierta clase ) : Gaby, Enrique son clases de personas,


Una computadora y un torno son clases de maquinas, etc.

Una clase es como un molde o plantilla del que se pueden crear objetos concretos. Un objeto o ejemplar concreto. ( Objeto = instancia de una clase, tambien Objeto = clase instanciada ). Clase Persona Atributos: - Nombre - Edad - Sexo Comportamiento: - dormir - caminar - respirar Molde de una persona Objeto Persona Atributos: - Nombre: Juan Lopez - Edad : 30 - Sexo : M Comportamiento: - dormir - caminar - respirar

Pagina 23

Curso JAVA

Ing. Fernando Gil

Modificadores de Acceso
El acceso a los miembros de una clase puede estr controlado para otras clases. Para usar una clase, solamente necesitamos saber que funciones miembro se pueden llamar y a qu datos podemos acceder, no necesitamos saber como est hecha la clase, como son sus detalles internos. Una vez que la clase est depurada y probada, la clase es como una caja negra.
private Las funciones o datos miembro que sean private, se pueden acceder solo desde funciones de la propia clase. Las entidades exteriores al objeto acceden a los datos privados de una manera controlada, a travs de algunas funciones miembro publicas.

public

Las funciones o datos miembro que sean public, pueden accederse sin restriccion desde cualquier clase u objeto.

OCULTAMIENTO DE INFORMACION = ENCAPSULACION objeto


Pagina 24

Curso JAVA

Ing. Fernando Gil

Modificadores de Acceso
Ejemplo: public public { . } String nombre; void caminar ( ) private private { . } int edad; void latir ( )

Cuando no se pone ningn modificador de acceso delante de los miembros, estos seran publicos pero solo seran accesibles por clases dentro del mismo paquete (package).

Paquete de clases

Una clase public class clase1 { int dato1; double dato2; int suma ( ) { }

Cualquiera de estas clases puede acceder a los datos y funciones miembro de los objetos de clase1.

}
Pagina 25

Curso JAVA

Ing. Fernando Gil

Modificadores de Acceso
La siguiente tabla resume el acceso para cada uno de los distintos especificadores de acceso:
Especificador Clase Subclase Paquete Mundo

private

protected

public

Pagina 26

Curso JAVA

Ing. Fernando Gil

Miembros Estaticos
Los miembros estticos son aquellos a los que se antepone el modificador static. Los datos miembro estticos guardan el mismo valor en todos los objetos de dicha clase.
public class Persona { public static int mayoriaEdad = 18; . . }

Se accede a un miembro estatico con: nombreClase.miembroEstatico Ej. Persona.mayoriaEdad

mayoriaEdad =18

Todos los objetos de la clase Persona comparten una unica y misma variable mayoriaEdad.

Pagina 27

Curso JAVA

Ing. Fernando Gil

Mas de Clases y Objetos


los constructores
Constructores: Un objeto de una clase se crea llamando a una funcin especial denominada constructor de la clase. El constructor se llama de forma automtica cuando se crea un objeto, para situarlo en memoria e inicializar los miembros dato declarados en la clase. El constructor tiene el mismo nombre que la clase. Lo especfico del constructor es que no tiene tipo de retorno. Constructor de default. No tiene argumentos. Si no se define explicitamente en la clase de cualquier forma Java le crea uno.

class Rectangulo{ int x; int y; int ancho; int alto; public Rectangulo() { x=0; y=0; ancho=0; alto=0; } }
Pagina 28

Curso JAVA

Ing. Fernando Gil

Mas de Clases y Objetos


los constructores
Clase con varios constructores: Una clase puede tener mas de un constructor. Todos se llaman igual que la clase solo se diferencian por el tipo o numero de los argumentos. class Rectangulo{ // atributos de la clase Rectangulo public Rectangulo() { x=0; y=0; }

ancho=0;

alto=0;

public Rectangulo (int x1, int y1, int w, int h) { x=x1; y=y1; ancho=w; alto=h; } public Rectangulo (int w, int h) { x=0; y=0; } }

ancho=w; alto=h;

Pagina 29

Curso JAVA

Ing. Fernando Gil

Mas de Clases y Objetos


creacion de objetos
Los Objetos: Para crear un objeto de una clase se usa la palabra reservada new.

Rectangulo rect1=new Rectangulo(10, 20, 40, 80);


new reserva espacio en memoria para los miembros dato y devuelve una referencia que se guarda en la variable rect1 del tipo Rectangulo que denominamos ahora objeto. Dicha sentencia, crea un objeto denominado rect1 de la clase Rectangulo llamando al segundo constructor en el listado. El rectngulo estar situado en el punto de coordenadas x=10, y=20; tendr una anchura de ancho=40 y una altura de alto=80. Rectangulo rect2=new Rectangulo(40, 80); Crea un objeto denominado rect2 de la clase Rectangulo llamando al tercer constructor, dicho rectngulo estar situado en el punto de coordenadas x=0, y=0; y tendr una anchura de ancho=40 y una altura de alto=80. Rectangulo rect3=new Rectangulo(); Crea un objeto denominado rect3 de la clase Rectangulo llamando al primer constructor, dicho rectngulo estar situado en el punto de coordenadas x=0, y=0; y tendr una anchura de ancho=0 y una altura de alto=0.
Pagina 30

Curso JAVA

Ing. Fernando Gil

Mas de Clases y Objetos


La vida de un objeto
Vida de un objeto: En Java no es necesario liberar la memoria reservada para los objetos.

El recolector de basura (garbage collector) se encarga de hacerlo por nosotros.


public class UnaClase { public static void main(String[] args) { Image granImagen=creaImagen(); mostrar(graImagen); while(condicion){ calcular(); } } public class UnaClase { public static void main(String[] args) { Image granImagen=creaImagen(); mostrar(graImagen); granImagen = null; while(condicion){ calcular(); } }

A partir de la sentencia marcada en letra negrita el recolector de basura se encargar de liberar la memoria ocupada por dicha imagen. As pues, se asignar el valor null a las referencias a objetos temporales que ocupen mucha memoria tan pronto como no sean necesarios.

Pagina 31

Curso JAVA

Ing. Fernando Gil

Mas de Clases y Objetos


La vida de un objeto
Vida de un objeto: Creamos dos objetos de la clase rectngulo, del mismo modo que en el apartado anterior

Rectangulo rect1=new Rectangulo(10, 20, 40, 80); Rectangulo rect3=new Rectangulo();


rect3=rect1; En rect3 se guarda la referencia al objeto rect1. La referencia al objeto rect3 se pierde. El recolector se encarga de liberar el espacio en memoria ocupado por el objeto rect3. La destruccin de un objeto es una tarea (thread) de baja prioridad que lleva a cabo la Mquina Virtual Java (JVM). Por tanto, nunca podemos saber cuando se va a destruir un objeto.

Pagina 32

Curso JAVA

Ing. Fernando Gil

Pase de Argumentos
En el lenguaje C++ hay tres formas de pasar datos a una funcin: por valor, por direccin y por referencia. En el lenguaje Java, se pueden pasar solamente argumentos Por Valor. .- tratandose de tipos de datos basicos Por Referencia .- tratndose de objetos

Pagina 33

Curso JAVA

Ing. Fernando Gil

Pase de Argumentos
PASE POR VALOR.
void funcion(int x) { x=5; System.out.println("dentro de la funcin: a="+x); }

Sea la variable a que toma inicialmente el valor de 3. Cul ser el valor de a despus de la llamada a la funcin funcion?
int a=3; funcion (a); System.out.println("despus de la llamada: a="+a);

Durante el curso de la llamada a la funcin funcion, existe la variable a y su copia x, pero son dos variables distintas, aunque inicialmente guarden el mismo valor.

Pagina 34

Curso JAVA

Ing. Fernando Gil

Pase de Argumentos
PASE POR REFERENCIA.
public class Entero { public int valor; public Entero(int valor) { this.valor=valor; } }

El valor devuelto por new al cear un objeto es una referencia a un objeto en memoria, que hemos denominado objeto. Creamos un objeto aInt de la clase Entero para guardar el nmero tres.
Entero aInt=new Entero(3); funcion(aInt);

El valor devuelto por new lo guardamos en aInt, y se lo pasamos a la funcin denominada funcion.
void funcion(Entero xInt) { xInt.valor=5; }
Pagina 35

Curso JAVA

Ing. Fernando Gil

Herencia
Trmino prestado de la Biologa donde afirmamos que un nio tiene la cara de su padre, que ha heredado ciertas facetas fsicas o del comportamiento de sus progenitores.

Consiste en la creacin de nuevas clases a partir de otras ya existentes.


Las nuevas clases heredan los atributos y comportamiento de la clase padre.

Persona

Clase padre o superclase

Estudiante

Clase derivada o subclase


Persona.java

La nueva clase Estudiante hereda los atributos y metodos de la clase Persona ( nombre, edad, sexo, caminar, dormir, etc ).
Estudiante.java

public class Persona { String nombre; int edad; public void caminar ( ) }

public class Estudiante extends Persona { // datos y funciones especificos para un estudiante public String matricula; public void estudiar ( ) { } }

Pagina 36

Curso JAVA

Ing. Fernando Gil

Tipos de Herencia
SIMPLE
Superclase Superclase1

MULTIPLE
Superclase2 Superclase3

Subclase

Subclase

JAVA SOLO SOPORTA HERENCIA SIMPLE

Pagina 37

Curso JAVA

Ing. Fernando Gil

Arreglos
Un array es un medio de guardar un conjunto de objetos de la misma clase. Se accede a cada elemento individual del array mediante un nmero entero denominado ndice. 0 es el ndice del primer elemento y n-1 es el ndice del ltimo elemento, siendo n, la dimensin del array. Declaracion y creacion de arreglos:
int [] numeros; numeros = new int [ 4 ]; // Para crear un array de 4 nmero enteros o bien int [] numeros = new int [ 4 ]; // La declaracin y la creacin del array en una misma lnea.

Los arrays se pueden declarar, crear e inicializar en una misma lnea, del siguiente modo
int [] numeros = {2, -4, 15, -25}; String [] nombres = {"Juan", "Jos", "Miguel", "Antonio"};

Pagina 38

Curso JAVA

Ing. Fernando Gil

Arreglos ( continuacion )
Inicializar los elementos del array:
numeros[0]=2; numeros[1]=-4; numeros[2]=15; numeros[3]=-25;

o bien inicializar los elementos como resultado de una operacion:


for ( int i=0; i < 4; i++) { numeros [ i ] = i * i + 4; } for ( int i=0; i < numeros.length () ; i++ ) { numeros [ i ] = i * i + 4; }

Arreglos multidimensionales:
int multiDim [] = new int [3][ ]; // Crear solo la primera dimension para una matriz de 3 x 4 // Luego crear las restantes dimensiones separadamente multiDim [ 0 ] = new int [4]; multiDim [ 1 ] = new int [4]; multiDim [ 2 ] = new int [4]; O bien double [] [] matriz = { {1,2,3,4}, {5,6}, {7,8,9,10,11,12}, {13} };

Ejemplo MatrizUnidadApp.java
Pagina 39

Curso JAVA

Ing. Fernando Gil

Paquetes
Un package es una agrupacin de clases. Existen una serie de packages incluidos en el lenguaje (ver jerarqua de clases que aparece en el API de Java). Adems el usuario puede crear sus propios packages. Lo habitual es juntar en packages las clases que estn relacionadas. Todas las clases que formen parte de un package deben estar en el mismo directorio. .

Paquete personasapp

Persona.class Estudiante.class Deportista.class

Pagina 40

Curso JAVA

Ing. Fernando Gil

Paquetes
Es un conjunto de clases que estan almacenadas en una carpeta ( directorio ).

La carpeta tiene el mismo nombre que el paquete. Sirven para organizar las clases por su funcionalidad. Java organiza las clases de la API en paquetes, los cuales vienen en archivos .JAR

Una pequea lista de los paquetes incluidos en Java:


Paquete JAVA java.lang java.util java.io Descripcion Provee clases tales como Object, System y Class. Clases que soportan grupos de objetos, conversion de Strings y demas. Define clases para manejar flujos de caracteres de una fuente a un destino.

java.awt
java.net java.applet

Clases que implementan interfaces graficas de usuario: botones, etiquetas, etc.


Clases que soportan programacion para red. Provee la clase Applet con metodos para desplegar imgenes, reproducir archivos de audio, etc.

Pagina 41

Curso JAVA

Ing. Fernando Gil

Paquete java.lang
Provee clases que son fundamentales para la programacion en Java

Se importa automaticamente: se pueden usar sus clases directamente. Algunas clases del paquete java.lang :
Clase Object System Math Integer String Character Descripcion Todas las clases de java.lang son subclases de Object. Provee la interfaz estndar de entrada, salida y errores en dispositivos. Contiene los objetos in, out y err respectivamente. Provee constantes numericas y metodos para calculos estadisticos, trigonometricos o logaritmicos. Provee metodos para convertir un objeto int a un objeto String Soporta operaciones con Strings y caracteres Provee metodos para determinar el tipo de carcter y convertir de minuscula a mayuscula y viceversa.

Pagina 42

Curso JAVA

Ing. Fernando Gil

La clase java.lang.String
Los strings u objetos de la clase String se pueden crear explcitamente o implcitamente. System.out.println ("El primer programa"); // Java crea un objeto de la clase String automticamente. String str = new String ( "El primer programa ); // crear un string explcitamente
o tambien asi

String str = "El primer programa"; Para crear un string nulo ( aqul que no contiene caracteres ): String str = ""; o bien String str = new String (); Sin embargo: String str; est declarando una variable de objeto str de la clase String, pero an no se ha creado ningn objeto de esta clase.

Ejemplo StringApp.java
Ejemplo EqualsApp.java

Pagina 43

Curso JAVA

Ing. Fernando Gil

Metodos de la clase String


public int length () public Boolean equals ( Object obj ) public String substring ( int beginIndex ) public String substring ( int beginIndex, int endIndex ) public String concat ( String str ) public String toUpperCase () public String toLowerCase () public String trim () public char charAt ( int index ) public int indexOf ( String str ) public static int valueOf ( int val ) public static int valueOf ( float val ) Devuelve la longitud del objeto String Compara el objeto String actual contra otro objeto String, Devuelve true o false. Obtiene una subcadena de un String

Concatena el String especificado al final del objeto String Convierte todos los caracteres del String a mayusculas Convierte todos los caracteres del String a minusculas Remueve los espacios en blanco al inicio y al final del objeto String Devuelve el carcter en la posicion especificada por index Devuelve la posicin dentro del String donde se encontr el substring str. Devuelve val en su representacin como String ( conversion de Numrico a String )

Pagina 44

Curso JAVA

Ing. Fernando Gil

La Clase Math
Provee metodos estaticos para operaciones matematicas de punto flotante como sin ( ), cos ( ); Metodo
abs ()

Descripcion
Devuelve el valor absoluto de su argumento.
public static double abs ( double x ) public static float abs ( float x )

etc etc

max ()

Devuelve el valor mayor de los 2 valores pasados como argumentos.


public static float max ( float x, float y ) public static int max ( int x, int y )

min ()

Devuelve el valor menor de los 2 valores pasados como argumentos


public static float min ( float x, float y ) public static int min ( int x, int y )

random ()

Devuelve un valor positivo double generado aleatoriamente, igual o mayor a 0.0 y menor de 1.0
public static double random ()

sin (), cos (), tan () sqrt ()

Acepta un angulo en radianes y devuelve el seno, coseno o tangente del angulo.


public static double sin ( double x )

Devuelve la raiz cuadrada de su argumento.


public static double sqrt ( double x )

Pagina 45

Curso JAVA

Ing. Fernando Gil

Clases envolventes
Permiten crear objetos que representan a los tipos de datos basicos: int, float, double, etc.

Distintas clases envolventes como Boolean, Character, Integer, Short, Long, Double y Float. Metodos typeValue (): floatValue (), doubleValue (), intValue (), longValue ()
Integer i = new Integer ( 12 ); float f = i.floatValue ();

Metodo parseType () : Convierte de String a Numerico. parseInt (), parseDouble (), parseByte(), parseFloat (), etc.
String str = new String ( 1234 ); int entero = Integer.parseInt ( str );

Metodo toString () : Convierte de Numerico a String


Integer ival = new Integer ( 32 ); String str = ival.toString ();

Pagina 46

Curso JAVA

Ing. Fernando Gil

Paquete java.util
Provee diferentes clases e interfaces de utileria que soportan operaciones tales como fecha / calendario, manipulacion de Strings, procesamiento basico de eventos, grupos o colecciones de objetos, etc.

La Clase java.util.Vector
Esta clase implementa un arreglo dinamico de objetos. El tamao del arreglo crece conforme se agregan elementos a l y se reduce conforme se eliminan.

Constructores:
Vector () Vector ( int size ) Vector ( int size, int inc )

Algunos metodos:
Metodo addElement ( Object b ) removeElementAt ( int x ) removeAllElements () elementAt ( int x )
Pagina 47

Descripcion Agrega el objeto b al final del Vector. Elimina el objeto ubicado en la localidad x del vector. Elimina todos los objetos de vector y queda con tamao 0. Devuelve el objeto ubicado en la localidad x del vector. Curso JAVA
Ing. Fernando Gil

Paquete java.util
La Clase java.util.Scanner
Permite analizar tokens de tipos de dato primitivos recibidos desde un flujo de caracteres de entrada, tal como el teclado. Puede usarse para leer cadenas, enteros, reales desde teclado.

Constructores:
Scanner ( InputStream fuente )

Algunos metodos:
Metodo next () Descripcion Busca y regresa el siguiente token completo como un String.

nextInt ()
nextFloat () nextLine ()

Analiza y devuelve el siguiente token de la entrada como un int.


Analiza y devuelve el siguiente token de la entrada como un float Avanza el scanner hasta la siguiente linea, devolviendo la linea saltada.

Ejemplo:
Scanner sc = new Scanner ( System.in ); int i = sc.nextInt ();

Pagina 48

Curso JAVA

Ing. Fernando Gil

Interfaces
Es una coleccin de declaraciones de mtodos (sin implementar) y tambin puede incluir constantes. Su papel es el de describir algunas de las caractersticas de una clase. Por ejemplo, el hecho de que una persona sea un futbolista no define su personalidad completa, pero hace que tenga ciertas caractersticas que las distinguen de otras. Una clase solamente se puede derivar de una clase base, pero puede implementar varios interfaces.
Persona Deportista: juega futbol, beis, etc.
public interface Deportista { public void jugarFutbol ( ); public void jugarBeisbol ( ); }

Estudiante

public class Estudiante extends Persona implements Deportista, Galan { // metodos a implementar de la interface Deportista public void jugarFutbol ( ) { . } public void jugarBeisbol ( ) { } // metodos a implementar de la interface Galan public void regalarFlores ( ) { } public void llevarGallo ( ) { . } }

Galan: regala flores, lleva gallo, etc.


public interface Galan { public void regalarFlores ( ); public void llevarGallo ( ); }

Pagina 49

Curso JAVA

Ing. Fernando Gil

Polimorfismo
( muchas formas ) Un objeto puede realizar una operacion de diversas formas. Ej. Una persona conduce su auto de manera distinta si va acompanado de su novio(a) a si fuese con su esposa e hijos.

El polimorfismo aplica unicamente sobre los metodos de una clase.


La forma mas basica de polimorfismo es llamada SOBRECARGA DE METODOS. La sobrecarga de metodos consiste en crear dentro de una clase multiples metodos con el mismo nombre pero con distintos argumentos ( ya sea en numero o en tipo de dato ).
Estudiante
estudiar ( Libro ) estudiar ( Apuntes )

public class Estudiante extends Persona { // funcion estudiar () sobrecargada public void estudiar ( Libro lib ) { } public void estudiar ( Apuntes ap ) { } }

Pagina 50

Curso JAVA

Ing. Fernando Gil

Interfaces y Polimorfismo
Un interface es simplemente una lista de mtodos no implementados. En el lenguaje Java solamente existe la herencia simple, es decir una clase solo puede extenderse de una clase padre, pero las clases pueden implementar multiples interfaces. La diferencia con una clase abstracta es que esta ultima puede incluir mtodos implementados y no implementados (abstractos), miembros dato constantes y otros no constantes. El problema del polimorfismo al usar relaciones de herencia:
Animal <<abstract>> habla ()

public abstract class Animal { public abstract void habla(); }


class Perro extends Animal { public void habla ( ) { System.out.println("Guau!"); } } class Gato extends Animal { public void habla () { System.out.println ("Miau!"); } }

public class ParlanchinesApp { public static void main ( String[] args ) { Gato gato=new Gato(); hazleHablar ( gato ); }
static void hazleHablar ( Animal sujeto ) { sujeto.habla(); }

Perro

Gato

...pero un reloj cucu tambien habla ( hace cu c ) pero no es un Animal.


Ing. Fernando Gil

Pagina 51

Curso JAVA

Interfaces y Polimorfismo
Solucin mediante interfaces: Asi como se pueden crear objetos usando la clase padre Animal, se pueden crear objetos usando una interface siempre que la implemente.
Animal <<abstract>> habla () Parlanchin <<interface>> habla () public interface Parlanchin { public abstract void habla(); } Perro Gato RelojCucu

habla () public class RelojCucu implements Parlanchin { public void habla() { System.out.println ( cu cu ); } }

public abstract class Animal implements Parlanchin { public abstract void habla(); } class Perro extends Animal { public void habla ( ) { System.out.println ( Guau guau ); } } class Gato extends Animal { public void habla () { System.out.println ( Miau miau ); } } Pagina 52

public class ParlanchinesApp { public static void main ( String[] args ) { Gato gato=new Gato(); hazleHablar ( gato ); RelojCucu cucu = new RelojCucu (); hazleHablar ( cucu ); } static void hazleHablar ( Parlanchin sujeto ) { sujeto.habla(); }

Curso JAVA

Ing. Fernando Gil

Excepciones
En Java las situaciones que pueden provocar un fallo en el programa se denominan excepciones. Las excepciones en Java son objetos de clases derivadas de la clase base Exception. Ejemplo: Cuando se sobrepasa la dimensin de un array: ArrayIndexOutOfBounds Cuando se hace uso de una referencia a un objeto que no ha sido creado: NullPointerException como en el siguiente ejemplo:
public class ExcepcionApp1 { static String str; public static void main ( String[] args ) { System.out.println(str); // Se lanza la excepcion NullPointerException str.length(); // ya que str no es aun un objeto. } }

Si intentamos leer un carcter del teclado


System.in.read();

Al compilar nos aparece un mensaje de error:

unreported exception: java.io.IOException; must be caught or declared to be thrown

try { System.in.read(); } catch ( IOException ex ) { // codigo para manejar la excepcion }

Pagina 53

Curso JAVA

Ing. Fernando Gil

Excepciones ( cont. )
Jerarquia de clases para excepciones
Exception ClassNotFoundException IllegalAccesException InterruptedException RuntimeException IllegalArgumentException IndexOutOfBoundsException NullPointerException IOException NumberFormatException

Pagina 54

Curso JAVA

Ing. Fernando Gil

Excepciones ( cont. )
Podemos extraer el mensaje de la excepcion mediante la funcin miembro getMessage:
try { //... } catch ( NumberFormatException ex ) { System.out.println ( ex.getMessage ( ) ); }

Hay veces en las que se desea estar seguro de que un bloque de cdigo se ejecute se produzcan o no excepciones.
try { //Este cdigo puede generar una excepcin } catch ( Exception ex ) { //Este cdigo se ejecuta cuando se produce una excepcin } finally { //Este cdigo se ejecuta se produzca o no una excepcin }

Ejemplo ExcepcionesApp.java
Pagina 55

Curso JAVA

Ing. Fernando Gil

Entrada / Salida
LA CLASE FILE
Proporciona informacin acerca de los archivos, de sus atributos, de los directorios, etc. Constructores : File ( String path ) File ( String path, String name ) File ( File dir, String name )
File fichero = new File ( "ArchivoApp1.java "); if ( fichero.exists () ) { System.out.println ( "Nombre del archivo + fichero.getName ( ) ); System.out.println ( "Camino + fichero.getPath ( ) ); System.out.println ( "Camino absoluto + fichero.getAbsolutePath ( ) ); System.out.println ( "Se puede escribir + fichero.canRead () ); System.out.println ( "Se puede leer + fichero.canWrite ( ) ); System.out.println ( "Tamao + fichero.length () ); }

Ejemplo ArchivoApp1.java
Pagina 56

Curso JAVA

Ing. Fernando Gil

Entrada / Salida : STREAMS


En una compu. los datos fluyen hacia dentro procedentes de una entrada y hacia fuera dirigido a una salida. Estos flujos se les da el nombre de STREAMS: Input Stream ( Entrada ) Output Stream ( Salida ) En Java los flujos de datos se describen mediante clases segn sea el tipo de dato que fluya: caracter 16-bit ( 2 bytes ) UNICODE binario 8 bit ( 1 byte ) STREAMS DE E/S PARA CARACTERES STREAMS DE E/S PARA BINARIOS

Pagina 57

Curso JAVA

Ing. Fernando Gil

Character I / O Streams
CLASE FileReader :
Usada para leer caracteres desde un archivo. Esta clase deriva todos sus metodos de su clase base Reader e InputStreamReader. Constructores: FileReader ( String fileName ) // fileName - nombre completo con ruta del archivo a leer FileReader ( File fileObj ) // fileObj - Objeto File desde el que se leera el contenido

Ejemplo:

File file = new File ( personasApp.java ); FileReader f = new FileReader ( file ); int ch; while ( ( ch = f.read ( ) ) != -1 ) // lee el contenido del archivo hasta el final { System.out.println ( (char) ch ); }

Pagina 58

Curso JAVA

Ing. Fernando Gil

Character I / O Streams
CLASE FileWriter :
Usada para escribir datos caracter hacia un archivo. Esta clase deriva todos sus metodos de su clase base Writer y OutputStreamWriter. Constructores: FileWriter ( String fileName ) // fileName - nombre completo con ruta del archivo a escribir FileWriter ( File fileObj ) // fileObj - Objeto File hacia el que se escribira FileWriter ( String fileName, boolean appendData ) // appendData indica si los datos a escribir // se agregaran al archivo o no. Ejemplo:

String str = Clases para flujo de caracteres en Java; FileWriter fout = new FileWriter ( stream.txt ); fout.write ( str, 0, str.length () ); // Escribe el texto completo de str en stream.txt fout.close ();

Pagina 59

Curso JAVA

Ing. Fernando Gil

S-ar putea să vă placă și