Documente Academic
Documente Profesional
Documente Cultură
Pagina 1
Curso JAVA
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
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
Tipos de Aplicaciones
Character User Interface ( CUI )
- Programas de consola. Para ejecutarse en maquinas locales.
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
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
ver mas
Pagina 5
Curso JAVA
JVM
Windows
JVM
UNIX
JVM
Macintosh
Pagina 6
Curso JAVA
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.
Pagina 7
Curso JAVA
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
Pagina 8
Curso JAVA
Pagina 9
Curso JAVA
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
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
Sintaxis
Pagina 12
Curso JAVA
Pagina 13
Curso JAVA
Pagina 14
Curso JAVA
Pagina 15
Curso JAVA
Pagina 16
Pagina 17
Curso JAVA
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
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
Operadores Aritmeticos :
Operador + * / % Suma Resta Producto Cociente Modulo Nombre 3+ 4 34 3*4 20 / 7 20 % 7 Ejemplo
Pagina 20
Curso JAVA
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
Fundamentos de O. O.
Pagina 22
Curso JAVA
Clases y Objetos
* Clases ( categorias de objetos ) : Personas, animales, maquinas, etc. El mundo real esta formado por
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
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.
Curso JAVA
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
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
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; . . }
mayoriaEdad =18
Todos los objetos de la clase Persona comparten una unica y misma variable mayoriaEdad.
Pagina 27
Curso JAVA
class Rectangulo{ int x; int y; int ancho; int alto; public Rectangulo() { x=0; y=0; ancho=0; alto=0; } }
Pagina 28
Curso JAVA
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
Curso JAVA
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
Pagina 32
Curso JAVA
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
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
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
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.
Persona
Estudiante
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
Tipos de Herencia
SIMPLE
Superclase Superclase1
MULTIPLE
Superclase2 Superclase3
Subclase
Subclase
Pagina 37
Curso JAVA
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
Arreglos ( continuacion )
Inicializar los elementos del array:
numeros[0]=2; numeros[1]=-4; numeros[2]=15; numeros[3]=-25;
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
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
Pagina 40
Curso JAVA
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
java.awt
java.net java.applet
Pagina 41
Curso JAVA
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
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
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
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 ()
min ()
random ()
Devuelve un valor positivo double generado aleatoriamente, igual o mayor a 0.0 y menor de 1.0
public static double random ()
Pagina 45
Curso JAVA
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 );
Pagina 46
Curso JAVA
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 ()
Ejemplo:
Scanner sc = new Scanner ( System.in ); int i = sc.nextInt ();
Pagina 48
Curso JAVA
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 ( ) { . } }
Pagina 49
Curso JAVA
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.
public class Estudiante extends Persona { // funcion estudiar () sobrecargada public void estudiar ( Libro lib ) { } public void estudiar ( Apuntes ap ) { } }
Pagina 50
Curso JAVA
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 class ParlanchinesApp { public static void main ( String[] args ) { Gato gato=new Gato(); hazleHablar ( gato ); }
static void hazleHablar ( Animal sujeto ) { sujeto.habla(); }
Perro
Gato
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
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. } }
Pagina 53
Curso JAVA
Excepciones ( cont. )
Jerarquia de clases para excepciones
Exception ClassNotFoundException IllegalAccesException InterruptedException RuntimeException IllegalArgumentException IndexOutOfBoundsException NullPointerException IOException NumberFormatException
Pagina 54
Curso JAVA
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
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
Pagina 57
Curso JAVA
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
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