59
Pagina 1 Curso JAVA Ing. Fernando Gil CURSO JAVA

Curso JAVA - 01.pps

Embed Size (px)

Citation preview

Page 1: Curso JAVA - 01.pps

Pagina 1 Curso JAVA Ing. Fernando Gil

CURSO JAVA

Page 2: Curso JAVA - 01.pps

Pagina 2 Curso JAVA Ing. Fernando Gil

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, PDA’s, TV’s, microondas, etc )

Que es JAVA?

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 CPU’s.

Page 3: Curso JAVA - 01.pps

Pagina 3 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.

Page 4: Curso JAVA - 01.pps

Pagina 4 Curso JAVA Ing. Fernando Gil

Tipos de AplicacionesCharacter 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 JSP’s- 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.

Page 5: Curso JAVA - 01.pps

Pagina 5 Curso JAVA Ing. Fernando Gil

Arquitectura de Java

Componentes:

* Lenguaje de Programacion Java ver mas

* Archivo compilado de Java ( .class )

* Java Virtual Machine ( JVM ) ver mas

* Interfaz de Programacion de Aplicaciones Java ( API )

Programa Java( .java )

CompiladorJava

Bytecodes( .class )

InterpreteJava

Codigo Maquina

Page 6: Curso JAVA - 01.pps

Pagina 6 Curso JAVA Ing. Fernando Gil

Portabilidad en Multiples Plataformas

Codigo Fuente Java( .java )

Compilador Java( javac.exe )

Archivo de ByteCodes( .class )

JVM JVM JVM

Windows UNIX Macintosh

Codigo MaquinaPara Windows

Codigo MaquinaPara UNIX

Codigo MaquinaPara Macintosh

Page 7: Curso JAVA - 01.pps

Pagina 7 Curso JAVA Ing. Fernando Gil

Java API

Java API = Java Application Programming Interface

- Es una colección 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

Page 8: Curso JAVA - 01.pps

Pagina 8 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.2Java 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.

Page 9: Curso JAVA - 01.pps

Pagina 9 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 aplicación 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

Page 10: Curso JAVA - 01.pps

Pagina 10 Curso JAVA Ing. Fernando Gil

Instalacion de JAVA

Descarga del software JAVAj2se j2ee

Instalacion del JDK

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

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

Page 11: Curso JAVA - 01.pps

Pagina 11 Curso JAVA Ing. Fernando Gil

Hola Mundo

La aplicación mínimaLa apliación mínima consta de una clase que define la función estática 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 función denominada main, que no devuelve nada void y que es estática (static). Como en el lenguaje C/C++ a esta función se le pueden pasar argumentos en el array de objetos del tipo String.

La definición de una clase está entre dos llaves de apertura { y cierre }. El cuerpo o definición de la función main está asimismo, entre las llaves de apertura y cierre, aquí es donde situaremos nuestro código para que la apliación tenga alguna funcionalidad.

Page 12: Curso JAVA - 01.pps

Pagina 12 Curso JAVA Ing. Fernando Gil

Sintaxis

Page 13: Curso JAVA - 01.pps

Pagina 13 Curso JAVA Ing. Fernando Gil

Elementos del lenguajeIdentificadores ( nombres de variables ):

1. Comenzar con una letra, el carácter subrayado ( _ ) o el carácter dollar ( $ ).  2. Puede incluir, pero no comenzar por un número 3. No puede incluir el carácter espacio en blanco 4.  Distingue entre letras mayúsculas y minúsculas

5. No se pueden utilizar las plabras reservadas como identificadores

Tipo de identificador

Convención Ejemplo

nombre de una clase

Comienza por letra mayúscula

String, Rectangulo, CinematicaApplet

nombre de funcióncomienza con letra minúscula

calcularArea, getValue, setColor

nombre de variable comienza por letra minúscula area, color, appletSize

nombre de constante

En letras mayúsculas PI, MAX_ANCHO

Page 14: Curso JAVA - 01.pps

Pagina 14 Curso JAVA Ing. Fernando Gil

Elementos del lenguajeComentarios:

De una sola linea:

// Este es un comentario de una sola linea

// Esta es otra linea de comentario

De multiples lineas:

/*--------------------------------|| (C) Angel Franco García || fecha: Marzo 1999 || programa: PrimeroApp.java

||---------------------------------*/

Page 15: Curso JAVA - 01.pps

Pagina 15 Curso JAVA Ing. Fernando Gil

Elementos del lenguaje La sintáxis de un lenguaje define los elementos de dicho lenguaje y cómo se combinan para formar un programa. Los elementos típicos de cualquier lenguaje son los siguientes:

Identificadores ( nombres de variables )

Tipos de datos

Palabras reservadas

Sentencias

Bloques de Codigo

Comentarios

Expresiones

Operadores

Page 16: Curso JAVA - 01.pps

Pagina 16 Curso JAVA Ing. Fernando Gil

Elementos del lenguajeTipos de dato primitivo :

Tipo Descripcion

boolean Tiene dos valores true o false.

charCaracteres Unicode de 16 bits  Los caracteres alfa-numéricos 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).

byte Tamaño 8 bits.  El intervalo de valores va desde -27 hasta 27 -1 (-128 a 127)

short Tamaño 16 bits.  El intervalo de valores va desde -215 hasta 215-1 (-32768 a 32767)

int Tamaño 32 bits.  El intervalo de valores va desde -231 hasta 231-1 (-2147483648 a 2147483647)

long Tamaño 64 bits. El intervalo de valores va desde -263 hasta  263-1 (-9223372036854775808 a 9223372036854775807)

float Tamaño 32 bits. Números en coma flotante de simple precisión. Estándar IEEE 754-1985  (de 1.40239846e–45f a 3.40282347e+38f)

double Tamaño 64 bits. Números en coma flotante de doble precisión. Estándar IEEE 754-1985. (de 4.94065645841246544e–324d  a 1.7976931348623157e+308d.)

Page 17: Curso JAVA - 01.pps

Pagina 17 Curso JAVA Ing. Fernando Gil

Elementos del lenguajePalabras reservadas :

abstract boolean break byte byvalue*

case cast* catch char class

const* continue default do double

else extends false final finally

float for future* generic* goto*

if implements import inner* instanceof

int interface long native new

null operator* outer* package private

protected public rest* return short

satatic super switch synchronized this

throw transient true try var*

void volatile while    

Page 18: Curso JAVA - 01.pps

Pagina 18 Curso JAVA Ing. Fernando Gil

Elementos del lenguajeCaracteres : Un carácter está siempre rodeado de comillas simples como 'A', '9', 'ñ', etc.

Carácter Secuencia de escaperetorno de carro \rtabulador horizontal \tnueva línea \nbarra invertida \\

Bloques de Codigo : Grupo de sentencias que se comportan como una unidad . Un bloque de código está limitado por las llaves de apertura { y cierre }

Expresiones: Es todo aquello que se puede poner a la derecha del operador asignación =.

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

Page 19: Curso JAVA - 01.pps

Pagina 19 Curso JAVA Ing. Fernando Gil

Elementos del LenguajeVariables : Una variable es un nombre que se asocia con una porción 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 estáticos son similares a las variables de instancia, con la excepción 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";

Page 20: Curso JAVA - 01.pps

Pagina 20 Curso JAVA Ing. Fernando Gil

Elementos del LenguajeConstantes : Se declaran como final, se ha de inicializar y cualquier intento de modificarla en el curso de la ejecución del programa da lugar a un error en tiempo de compilacion.    final double PI = 3.141592653589793;

final int MAX_DATOS = 150;

Operadores Aritmeticos :

Operador Nombre Ejemplo

+ Suma 3+ 4

- Resta 3 – 4

* Producto 3 * 4

/ Cociente 20 / 7

% Modulo 20 % 7

Page 21: Curso JAVA - 01.pps

Pagina 21 Curso JAVA Ing. Fernando Gil

Elementos del LenguajeOperadores Relacionales :

Operador Nombre Ejemplo Significado

< menor que a<b a es menor que b

> mayor que a>b a es mayor que b

== igual a a==b a es igual a b

!= no igual a a!=b a no es igual a b

<= menor que o igual a a<=5 a es menor que o igual a b

>= mayor que o igual a 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 expresión es verdadera) ! NOT (el resultado invierte la condición de la expresión)

Page 22: Curso JAVA - 01.pps

Pagina 22 Curso JAVA Ing. Fernando Gil

Fundamentos de O. O.

Page 23: Curso JAVA - 01.pps

Pagina 23 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 ).

Molde de una persona

Clase PersonaAtributos: - Nombre - Edad - Sexo

Comportamiento: - dormir - caminar - respirar

Objeto PersonaAtributos: - Nombre: Juan Lopez - Edad : 30 - Sexo : M

Comportamiento: - dormir - caminar - respirar

Page 24: Curso JAVA - 01.pps

Pagina 24 Curso JAVA Ing. Fernando Gil

Modificadores de AccesoEl acceso a los miembros de una clase puede estár 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.

public

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

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 través de algunas funciones miembro publicas.

objeto

OCULTAMIENTO DE INFORMACION =

ENCAPSULACION

Page 25: Curso JAVA - 01.pps

Pagina 25 Curso JAVA Ing. Fernando Gil

Modificadores de AccesoEjemplo: public String nombre; private int edad;

public void caminar ( ) private void latir ( ){ …. { ….} }

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

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

Paquete de clases

Una clase

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

Page 26: Curso JAVA - 01.pps

Pagina 26 Curso JAVA Ing. Fernando Gil

Modificadores de AccesoLa siguiente tabla resume el acceso para cada uno de los distintos especificadores de acceso:

Especificador Clase Subclase Paquete Mundo

private a - - -

protected a a a -

public a a a a

- a a a -

 

Page 27: Curso JAVA - 01.pps

Pagina 27 Curso JAVA Ing. Fernando Gil

Miembros EstaticosLos miembros estáticos son aquellos a los que se antepone el modificador static.

Los datos miembro estáticos 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

Todos los objetos de la clase Personacomparten una unica y misma variablemayoriaEdad.

mayoriaEdad =18

Page 28: Curso JAVA - 01.pps

Pagina 28 Curso JAVA Ing. Fernando Gil

Mas de Clases y Objetoslos constructores

Constructores:

Un objeto de una clase se crea llamando a una función especial denominada constructor de la clase. El constructor se llama de forma automática 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 específico 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;

}}

Page 29: Curso JAVA - 01.pps

Pagina 29 Curso JAVA Ing. Fernando Gil

Mas de Clases y Objetoslos 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 Rectangulopublic 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;

} }

Page 30: Curso JAVA - 01.pps

Pagina 30 Curso JAVA Ing. Fernando Gil

Mas de Clases y Objetoscreacion 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 rectángulo 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 rectángulo 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 rectángulo estará situado en el punto de coordenadas x=0, y=0; y tendrá una anchura de ancho=0 y una altura de alto=0.

Page 31: Curso JAVA - 01.pps

Pagina 31 Curso JAVA Ing. Fernando Gil

Mas de Clases y ObjetosLa 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.

Page 32: Curso JAVA - 01.pps

Pagina 32 Curso JAVA Ing. Fernando Gil

Mas de Clases y ObjetosLa vida de un objeto

Vida de un objeto:

Creamos dos objetos de la clase rectángulo, 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 destrucción de un objeto es una tarea (thread) de baja prioridad que lleva a cabo la Máquina Virtual Java (JVM). Por tanto, nunca podemos saber cuando se va a destruir un objeto.

Page 33: Curso JAVA - 01.pps

Pagina 33 Curso JAVA Ing. Fernando Gil

Pase de Argumentos En el lenguaje C++ hay tres formas de pasar datos a una función: por valor, por dirección y por referencia.

En el lenguaje Java, se pueden pasar solamente argumentos

Por Valor. .- tratandose de tipos de datos basicos

Por Referencia .- tratándose de objetos

Page 34: Curso JAVA - 01.pps

Pagina 34 Curso JAVA Ing. Fernando Gil

Pase de Argumentos PASE POR VALOR.

void funcion(int x) { x=5; System.out.println("dentro de la función: a="+x); }  

Sea la variable a que toma inicialmente el valor de 3. ¿Cuál será el valor de a después de la llamada a la función funcion?

int a=3; funcion (a); System.out.println("después de la llamada: a="+a);

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

Page 35: Curso JAVA - 01.pps

Pagina 35 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 número tres.

Entero aInt=new Entero(3); funcion(aInt);  

El valor devuelto por new lo guardamos en aInt, y se lo pasamos a la función denominada funcion.

  void funcion(Entero xInt) {xInt.valor=5;

}

Page 36: Curso JAVA - 01.pps

Pagina 36 Curso JAVA Ing. Fernando Gil

Herencia Término prestado de la Biología donde afirmamos que un niño tiene la cara de su padre, que ha heredado ciertas facetas físicas o del comportamiento de sus progenitores.

Consiste en la creación de nuevas clases a partir de otras ya existentes.

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

Persona

Estudiante

Clase padre o superclase

Clase derivada o subclase

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

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 ( ) { } }

Persona.java Estudiante.java

Page 37: Curso JAVA - 01.pps

Pagina 37 Curso JAVA Ing. Fernando Gil

Tipos de Herencia

Superclase

Subclase

SIMPLESuperclase2

Subclase

MULTIPLE

Superclase1 Superclase3

JAVA SOLO SOPORTA HERENCIA SIMPLE

Page 38: Curso JAVA - 01.pps

Pagina 38 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 número entero denominado índice.

0 es el índice del primer elemento y n-1 es el índice del último elemento, siendo n, la dimensión del array.

Declaracion y creacion de arreglos:

int [ ] numeros; numeros = new int [ 4 ]; // Para crear un array de 4 número enteros

o bien

int [ ] numeros = new int [ 4 ]; // La declaración y la creación del array en una misma línea.

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

Page 39: Curso JAVA - 01.pps

Pagina 39 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; }

Ejemplo MatrizUnidadApp.java

Arreglos multidimensionales:

int multiDim [ ] = new int [3][ ]; // Crear solo la primera dimension para una matriz de 3 x 4

// Luego crear las restantes dimensiones separadamentemultiDim [ 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} };

Page 40: Curso JAVA - 01.pps

Pagina 40 Curso JAVA Ing. Fernando Gil

Paquetes Un package es una agrupación de clases.

Existen una serie de packages incluidos en el lenguaje (ver jerarquía de clases que aparece en el API de Java).

Además el usuario puede crear sus propios packages. Lo habitual es juntar en packages las clases que estén relacionadas.

Todas las clases que formen parte de un package deben estar en el mismo directorio. .

Paquete personitas

Persona.class Estudiante.class Deportista.class

Page 41: Curso JAVA - 01.pps

Pagina 41 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 pequeña lista de los paquetes incluidos en Java:

Paquete JAVA

Descripcion

java.lang

Provee clases tales como Object, System y Class.

Page 42: Curso JAVA - 01.pps

Pagina 42 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 Descripcion

Object Todas las clases de java.lang son subclases de Object.

System Provee la interfaz estándar de entrada, salida y errores en dispositivos. Contiene los objetos in, out y err respectivamente.

Math Provee constantes numericas y metodos para calculos estadisticos, trigonometricos o logaritmicos.

Integer Provee metodos para convertir un objeto int a un objeto String

String Soporta operaciones con Strings y caracteres

Character Provee metodos para determinar el tipo de carácter y convertir de minuscula a mayuscula y viceversa.

Page 43: Curso JAVA - 01.pps

Pagina 43 Curso JAVA Ing. Fernando Gil

La clase java.lang.String Los strings u objetos de la clase String se pueden crear explícitamente o implícitamente.

System.out.println ("El primer programa"); // Java crea un objeto de la clase String automáticamente.

String str = new String ( "El primer programa“ ); // crear un string explícitamente

o tambien asi

String str = "El primer programa";

Para crear un string nulo ( aquél 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 aún no se ha creado ningún objeto de esta clase.

Ejemplo StringApp.java

Ejemplo EqualsApp.java

Page 44: Curso JAVA - 01.pps

Pagina 44 Curso JAVA Ing. Fernando Gil

Metodos de la clase Stringpublic int length () Devuelve la longitud del objeto String

public Boolean equals ( Object obj ) Compara el objeto String actual contra otro objeto String,

Devuelve true o false.

public String substring ( int beginIndex )

public String substring ( int beginIndex, int endIndex )

Obtiene una subcadena de un String

public String concat ( String str ) Concatena el String especificado al final del objeto String

public String toUpperCase () Convierte todos los caracteres del String a mayusculas

public String toLowerCase () Convierte todos los caracteres del String a minusculas

public String trim () Remueve los espacios en blanco al inicio y al final del objeto String

public char charAt ( int index ) Devuelve el carácter en la posicion especificada por index

public int indexOf ( String str ) Devuelve la posición dentro del String donde se encontró el substring str.

public static String valueOf ( int val )

public static String valueOf ( float val )

Devuelve val en su representación como String

( conversion de Numérico -> String )

Page 45: Curso JAVA - 01.pps

Pagina 45 Curso JAVA Ing. Fernando Gil

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

Metodo Descripcion

abs () 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 argumentospublic 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 () Acepta un angulo en radianes y devuelve el seno, coseno o tangente del angulo.public static double sin ( double x )

sqrt () Devuelve la raiz cuadrada de su argumento.public static double sqrt ( double x )

Page 46: Curso JAVA - 01.pps

Pagina 46 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 ();

Page 47: Curso JAVA - 01.pps

Pagina 47 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 tamaño 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 Descripcion

addElement ( Object b ) Agrega el objeto b al final del Vector.

removeElementAt ( int x ) Elimina el objeto ubicado en la localidad x del vector.

removeAllElements () Elimina todos los objetos de vector y queda con tamaño 0.

elementAt ( int x ) Devuelve el objeto ubicado en la localidad x del vector.

Page 48: Curso JAVA - 01.pps

Pagina 48 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 Descripcion

next () Busca y regresa el siguiente token completo como un String.

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

nextFloat () Analiza y devuelve el siguiente token de la entrada como un float

nextLine () Avanza el scanner hasta la siguiente linea, devolviendo la linea saltada.

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

Page 49: Curso JAVA - 01.pps

Pagina 49 Curso JAVA Ing. Fernando Gil

Interfaces Es una colección de declaraciones de métodos (sin implementar)  y también puede incluir constantes.

Su papel es el de describir algunas de las características de una clase. Por ejemplo, el hecho de que una persona sea un futbolista no define su personalidad completa, pero hace que tenga ciertas características que las distinguen de otras.

Una clase solamente se puede derivar de una clase base, pero puede implementar varios interfaces.

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 ( ) { …. }}

Estudiante

Deportista: juega futbol, beis, etc.

Galan: regala flores, lleva gallo, etc.

public interface Deportista{ public void jugarFutbol ( ); public void jugarBeisbol ( ); }

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

Persona

Page 50: Curso JAVA - 01.pps

Pagina 50 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 ( Apuntes )estudiar ( Libro )

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

public void estudiar ( Apuntes ap ) { }}

Page 51: Curso JAVA - 01.pps

Pagina 51 Curso JAVA Ing. Fernando Gil

Interfaces y Polimorfismo Un interface es simplemente una lista de métodos 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 métodos implementados y no implementados (abstractos), miembros dato constantes y otros no constantes.

El problema del polimorfismo al usar relaciones de herencia:

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!"); }

}

Animal<<abstract>>

habla ()

Perro Gato

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

  static void hazleHablar ( Animal sujeto ) { sujeto.habla(); }}

...pero un reloj cucu tambien “habla” ( hace cu cú ) pero noes un Animal.

Page 52: Curso JAVA - 01.pps

Pagina 52 Curso JAVA Ing. Fernando Gil

Interfaces y PolimorfismoSolución mediante interfaces:Asi como se pueden crear objetos usando la clase padre Animal, se pueden crear objetos usando una interfacesiempre que la implemente.

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” ); }

}

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(); }}

Perro Gato

Animal<<abstract>>

habla ()

Parlanchin<<interface>>

habla ()

RelojCucu

habla ()

public interface Parlanchin{ public abstract void habla();} 

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

Page 53: Curso JAVA - 01.pps

Pagina 53 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 dimensión 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 carácter del tecladoSystem.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}

Page 54: Curso JAVA - 01.pps

Pagina 54 Curso JAVA Ing. Fernando Gil

Excepciones ( cont. )

Jerarquia de clases para excepciones

Exception

ClassNotFoundException

IllegalAccesException

InterruptedException

RuntimeException

IllegalArgumentException

IndexOutOfBoundsException

NullPointerException

NumberFormatException

IOException

Page 55: Curso JAVA - 01.pps

Pagina 55 Curso JAVA Ing. Fernando Gil

Excepciones ( cont. )

Podemos extraer el mensaje de la excepcion mediante la función miembro getMessage:

try { //...

} catch ( NumberFormatException ex ) { System.out.println ( ex.getMessage ( ) );}

Ejemplo ExcepcionesApp.java

Hay veces en las que se desea estar seguro de que un bloque de código se ejecute se produzcan o no excepciones.

try { //Este código puede generar una excepción} catch ( Exception ex ) { //Este código se ejecuta cuando se produce una excepción} finally { //Este código se ejecuta se produzca o no una excepción }

Page 56: Curso JAVA - 01.pps

Pagina 56 Curso JAVA Ing. Fernando Gil

Entrada / SalidaLA CLASE FILE

Proporciona información 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 ( "Tamaño “ + fichero.length () );

}

Ejemplo ArchivoApp1.java

Page 57: Curso JAVA - 01.pps

Pagina 57 Curso JAVA Ing. Fernando Gil

Entrada / Salida : STREAMSEn 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 según sea el tipo de dato que fluya: caracter 16-bit ( 2 bytes ) UNICODEbinario 8 bit ( 1 byte )

STREAMS DE E/S PARA CARACTERES STREAMS DE E/S PARA BINARIOS

Page 58: Curso JAVA - 01.pps

Pagina 58 Curso JAVA Ing. Fernando Gil

Character I / O StreamsCLASE 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 leerFileReader ( 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 );}

Page 59: Curso JAVA - 01.pps

Pagina 59 Curso JAVA Ing. Fernando Gil

Character I / O StreamsCLASE 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 escribirFileWriter ( File fileObj ) // fileObj - Objeto File hacia el que se escribiraFileWriter ( 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.txtfout.close ();