Académique Documents
Professionnel Documents
Culture Documents
Fundamentos de Java
Indice
1
TIPOS DE DATOS..................................................................................................................................... 5
2.1
Tipos de datos simples o Primitivos .................................................................................................. 5
Tipos de datos enteros................................................................................................................. .5
Tipos de datos en coma flotante .................................................................................................................. 6
Tipo de datos boolean.................................................................................................................. .6
Tipo de datos carcter ................................................................................................................. .6
2.2
Conversin de tipos de datos primitivos ............................................................................................ 6
2.3
Vectores y Matrices ........................................................................................................................... 7
2.4
Tipo de Dato basado en Clases - Cadenas ........................................................................................ 7
2.5
OPERADORES ...................................................................................................................................7
Operadores aritmticos................................................................................................................ .7
Operadores de comparacin y condicionales.............................................................................................. .8
Operadores de lgica de bits ....................................................................................................................... 8
Operadores de asignacin ........................................................................................................................... 8
2.6
Precedencia de operadores ................................................................................................................ 9
La sentencia if-else.......................................................................................................................... 12
La sentencia switch ........................................................................................................................ 13
Sentencias de Bucle ........................................................................................................................ 15
2/31
Docente : Hugo Mamanchura Lima
Fundamentos de Java
Interfaces ....................................................................................................................................22
6.1
6.2
6.3
3/31
Docente : Hugo Mamanchura Lima
Fundamentos de Java
Un Poco de Historia
o
o
o
o
1999 Java Enterprise Edition Java comienza a ser una plataforma de desarrollo
1998 Java 1.2 (Java 2) Plataforma muy madura, Apoyado por grandes empresas IBM,
profesional.
2005
Orientado a Objetos
Portable
Proposito general
Simple
Arquitectura
4/31
Docente : Hugo Mamanchura Lima
Distribudo
Seguro
Robusto
Arquitectura Neutral
Multiproceso
Dinmico
Interpretado
Fundamentos de Java
todo elemento.
Excepciones
Las constantes son todas las letras mayscula y los espacios entre palabras con subguion
_
Ejemplo
primerosegundo
PrimeroSegundo
Interfaces
Propiedades
PrimeroSegundo
primeroSegundo
Mtodos
primeroSegundo
Variables
primeroSegundo
Constantes
PRIMERO_SEGUNDO
Como nombrarlo
Nombre nico se escribe todo en minsculas
Nombres sustantivos siendo la primera letra de cada
palabra con Mayscula.
Similar a de las Clases
Generalmente Adjetivo, la primera letra con minscula,
las palabras internas empiezan con mayscula
Debe comenzar con un verbo en minscula y la primera
letra de las siguientes palabras (diferentes al verbo) con
mayscula
La primera letra con minscula, las palabras internas
empiezan con mayscula
Deben estar todas con maysculas y las palabras
separadas por el carcter de subrayado _
Comentarios
Los comentarios de documentacin, colocados inmediatamente antes de una declaracin (de
variable o funcin), indican que ese comentario ha de ser colocado en la documentacin que se
Extensin
Archivos Fuente :
Archivos Pre Compilados :
.java
.class
2 TIPOS DE DATOS
2.1 Tipos de datos simples o Primitivos
Tipos de datos enteros
Tipo
byte
short
int
long
5/31
Docente : Hugo Mamanchura Lima
Tamao
1Byte (8 bits)
2 Bytes (16 bits)
4 Bytes (32 bits)
8 Bytes (64 bits)
Fundamentos de Java
Literales enteros
Decimal: sin ninguna notacin especial.
Hexadecimal: Los hexadecimales (base 16) aparecen con un 0x 0X inicial
Octal: Los octales aparecen con un 0 inicial delante de los dgitos.
Por ejemplo, 12 en decimal, 0xC en hexadecimal, y como 014 en octal.
long numeroLargo = 0xC; // Por defecto vale 12
Fundamentos de Java
Tipo Origen
Byte
Short
Char
Int
Long
Flota
Tipo Destino
double, float, long, int, char, short
double, float, long, int
double, float, long, int
double, float, long
double, float
Double
(int):
int vectorNumeros[ ]; // Vector de nmeros
Para ello o se utiliza el operador new:
int vectorNumeros = new int[ 5 ]; // Vector de 5 nmeros
int vectorIni = { 2, 5, 8}; // == int vectorIni[3]=new int[3];
2.5 OPERADORES
Los operadores de Java se pueden dividir en las siguientes cuatro categoras:
Aritmticos.
De comparacin y condicionales.
A nivel de bits y lgicos.
De asignacin.
Operadores aritmticos
Operador Uso
+
op1 + op2
op1 - op2
*
op1 * op2
/
op1 / op2
%
op1 % op2
Descripcin
Suma op1 y op2
Resta op2 de op1
Multiplica op1 por op2
Divide op1 por op2
Calcula el resto de dividir op1 entre op2
Los operadores + y - tienen versiones unarias que realizan las siguientes operaciones:
Operador Uso
Descripcin
Convierte op a entero si es un byte, short o
+
+op
char
-op
Niega aritmticamente op
Se evala al valor anterior al incremento;
++
op++
Incrementa op en 1
Incrementa op en 1; Se evala al valor posterior
++
++op
al incremento
7/31
Docente : Hugo Mamanchura Lima
Fundamentos de Java
--
op--
--
--op
Operadores de asignacin
Operador Uso
Equivalente a
=
op1 = op2
Asigna a op1 el valor de op2
+=
op1 += op2
op1 = op1 + op2
-=
op1 -= op2
op1 = op1 - op2
*=
op1 *= op2
op1 = op1 * op2
/=
op1 /= op2
op1 = op1 / op2
%=
op1 %= op2 op1 = op1 % op2
&=
op1 &= op2
op1 = op1 & op2
8/31
Docente : Hugo Mamanchura Lima
Fundamentos de Java
3.1 Arrays
Esta seccin te ensear todo lo que necesitas para crear y utilizar arrays en tus programas Java.
Como otras variables, antes de poder utilizar un array primero se debe declarar. De nuevo, al igual
que otras variables, la declaracin de un array tiene dos componentes primarios: el tipo del array y
su nombre. Un tipo de array incluye el tipo de dato de los elementos que va contener el array. Por
ejemplo, el tipo de dato para un array que slo va a contener elementos enteros es un array de
enteros. No puede existir un array de tipo de datos genrico en el que el tipo de sus elementos
est indefinido cuando se declara el array. Aqu tienes la declaracin de un array de enteros.
int[] arrayDeEnteros;
La parte int[] de la declaracin indica que arrayDeEnteros es un array de enteros. La declaracin
puede hacer esto utilizando el operador new de Java. (Realmente, los pasos que se deben seguir
para crear un array son similares a los se deben seguir para crear un objeto de una clase:
9/31
Docente : Hugo Mamanchura Lima
Fundamentos de Java
La siguiente sentencia asigna la suficiente memoria para que arrayDeEnteros pueda contener
diez enteros.
int[] arraydeenteros = new int[10];
En general, cuando se crea un array, se utiliza el operador new, ms el tipo de dato de los
elementos del array, ms el nmero de elementos deseados encerrado entre corchetes cuadrados
('[' y ']').
TipodeElemento[] NombredeArray = new TipodeElementos[tamanoArray];
Ahora que se ha asignado memoria para un array ya se pueden asignar valores a los elemetos y
Como se puede ver en el ejemplo anterior, para referirse a un elemento del array, se aade
corchetes cuadrados al nombre del array. Entre los corchetes cuadrados se indica (bien con una
variable o con una expresin) el ndice del elemento al que se quiere acceder. Observa que en
Java, el ndice del array empieza en 0 y termina en la longitud del array menos uno.
Hay otro elemento interesante en el pequeo ejemplo anterior. El bucle for itera sobre cada
elemento de arrayDeEnteros asignndole valores e imprimiendo esos valores. Observa el uso de
Los arrays pueden contener cualquier tipo de dato legal en Java incluyendo los tipos de referencia
como son los objetos u otros array. Por ejemplo, el siguiente ejemplo declara un array que puede
3.2 Strings
Una secuencia de datos del tipo carcter se llama un string (cadena) y en el entorno Java est
10/31
Docente : Hugo Mamanchura Lima
Fundamentos de Java
String[] args;
Este cdigo declara explcitamente un array, llamado args, que contiene objetos del tipo String.
Los corchetes vacios indican que la longitud del array no se conoce en el momento de la
y ").
"Hola mundo!"
El compilador asigna implicitamente espacio para un objeto String cuando encuentra una cadena
literal.
Los objetos String son inmutables - es decir, no se pueden modificar una vez que han sido
creados.
El paquete java.lang proporciona una clase diferente, StringBuffer, que se podr utilizar para crear
Concatenacin de Cadenas
Java permite concatenar cadenas fcilmente utilizando el operador +. El siguiente fragmento de
cdigo concatena tres cadenas para producir su salida.
"La entrada tiene " + contador + " caracteres."
Dos de las cadenas concatenadas son cadenas literales: "La entrada tiene " y " caracteres.". La
tercera cadena - la del medio- es realmente un entero que primero se convierte a cadena y luego
Funciones cadena
Tipo de Dato
Devuelto Sintaxis del metodo y descripcinn
char charAt(int index)
Returns the char value at the specified index.
int
String
boolean
int
compareTo(String anotherString)
Compares two strings lexicographically.
concat(String str)
Concatenates the specified string to the end of this string.
equals(Object anObject)
Compares this string to the specified object.
indexOf(String str)
Returns the index within this string of the first occurrence of the specified
substring.
int
lastIndexOf(String str)
Returns the index within this string of the rightmost occurrence of the
specified substring.
11/31
Docente : Hugo Mamanchura Lima
Fundamentos de Java
int
length()
Returns the length of this string.
String
String
String
split(String regex)
Splits this string around matches of the given regular expression.
String
substring(int beginIndex)
Returns a new string that is a substring of this string.
String
String
toLowerCase()
Converts all of the characters in this String to lower case using the
toUpperCase()
Converts all of the characters in this String to upper case using the
rules of the default locale.
String
trim()
Returns a copy of the string, with leading and trailing whitespace omitted.
dentro del programa. El lenguaje Java soporta varias sentencias de control de flujo, incluyendo.
Sentencias
palabras clave
toma de decisiones
if-else, switch-case
bucles
for, while, do-while
miscelaneas
break, continue, label:, return, exit
Nota: Aunque goto es una palabra reservada, actualmente el lenguaje Java no la soporta.
Podemos utilizar las rupturas etiquetadas en su lugar.
una variable booleana llamada DEBUG. Si DEBUG fuera verdadera true, el programa imprimira la
informacin de depurado, como por ejemplo, el valor de una variable como x. Si DEBUG es false
el programa proceder normalmente. Un segmento de cdigo que implemente esto se podra
parecer a este.
if (DEBUG)
System.out.println("DEBUG: x = " + x);
12/31
Docente : Hugo Mamanchura Lima
Fundamentos de Java
realizar diferentes acciones dependiendo de que el usuario pulse el botn OK o el botn Cancel en
...
// cdigo para la accin Cancel
...
}
nota = "Insuficiente";
}
Una sentencia if puede tener cualquier nmero de sentencias de acompaamiento else if.
Podras haber observado que algunos valores de puntuacion pueden satisfacer ms una de las
expresiones que componen la sentencia if. Por ejemplo, una puntuacin de 76 podra evaluarse
como true para dos expresiones de esta sentencia:puntuacion >= 70 y puntuacion >= 60.
Sin embargo, en el momento de ejecucin, el sistema procesa una sentencia if compuesta como
una sla; una vez que se ha satisfecho una condicin (76 >= 70), se ejecuta la sentencia apropiada
(nota = "Bien";), y el control sale fuera de la sentencia if sin evaluar las condiciones restantes.
nmero entero equivalente. Podras utilizar la sentencia switch de Java para realizar esta tarea.
13/31
Docente: Hugo Mamanchura Lima
Fundamentos de Java
int mes;
...
switch (mes) {
case 1: System.out.println("Enero"); break;
case 2: System.out.println("Febrero"); break;
case 3: System.out.println("Marzo"); break;
case 4: System.out.println("Abril"); break;
case 5: System.out.println("May0"); break;
case 6: System.out.println("Junio"); break;
case 7: System.out.println("Julio"); break;
case 8: System.out.println("Agosto"); break;
case 9: System.out.println("Septiembre"); break;
case 10: System.out.println("Octubre"); break;
case 11: System.out.println("Noviembre"); break;
case 12: System.out.println("Diciembre"); break;
}
La
sentencia
switch
evala
su
expresin,
en
este
caso
el
valor
de
mes,
ejecuta
la
sentencia case apropiada. Decidir cuando utilizar las sentencias if o switch dependen del juicio
personal.Puedes decidir cual tilizar basndose en la buena lectura del cdigo o en otros factores.
Cada sentencia case debe ser nica y el valor proporcionado a cada sentencia case debe ser del mismo tipo
que el tipo de dato devuelto por la expresin proporcionada a la sentencia switch.Otro punto de interes en la
sentencia switch son las sentencias break despus de cada case. La sentencia break hace que
el
control salga de la sentencia switch y contine con la siguiente lnea. La sentencia break es
necesaria
break
porque
explcito, el
las
sentencias
flujo
case
de control
se
seguira
siguen
ejecutando
secuencialmente
hacia
a
travs
abajo. Esto
de
es,
sin
un
siguientes.En el ejemplo anterior, no se quiere que el flujo vaya de una sentencia case a otra, por eso se han
tenido que poner las sentencias break. Sin embargo, hay ciertos escenario en los que querrs que el control
proceda secuencialmente a travs
de
las
sentencias
case.
Como
este
cdigo
que
calcula
nmero de das de un mes de acuerdo con el tmico refrn que dice "Treinta dias tiene Septiembre...".
int mes;
int numeroDias;
...
switch (mes) {
case 1.
case 3.
case 5.
case 7.
case 8.
case 10.
case 12.
numeroDias = 31;
break;
case 4.
case 6.
case 9.
case 11.
numeroDias = 30;
break;
case 2.
if ( ((ano % 4 == 0) && !(ano % 100 == 0)) || ano % 400 == 0) )
numeroDias = 29;
else
14/31
Docente: Hugo Mamanchura Lima
el
Fundamentos de Java
numeroDias = 28;
break;
}
Finalmente, puede utilizar la sentencia default al final de la sentencia switch para manejar los
valores que no se han manejado explcitamente por una de las sentencias case.
int mes;
...
switch (mes) {
case 1: System.out.println("Enero"); break;
case 2: System.out.println("Febrero"); break;
case 3: System.out.println("Marzo"); break;
case 4: System.out.println("Abril"); break;
case 5: System.out.println("Mayo"); break;
case 6: System.out.println("Junio"); break;
case 7: System.out.println("Julio"); break;
case 8: System.out.println("Agosto"); break;
case 9: System.out.println("Septiembre"); break;
case 10: System.out.println("Octubre"); break;
case 11: System.out.println("Noviembre"); break;
case 12: System.out.println("Diciembre"); break;
default: System.out.println("Ee, no es un mes vlido!");
break;
}
imprimir el contador cada vez que se lea un carcter. Podras escribir esto en su lugar.
...
while (System.in.read() != -1) {
contador++;
System.out.println("Se ha leido un el carcter = " + contador);
}
...
Por convencin el corchete abierto '{' se coloca al final de la misma lnea donde se encuentra la
sentencia while y el corchete cerrado '}' empieza una nueva lnea indentada a la lnea en la que se
encuentra el while.
Adems de while Java tiene otros dos constructores de bucles que puedes utilizar en tus
programas.
el bucle for y el bucle do-while.
Primero el bucle for. Puedes utilizar este bucle cuando conozcas los lmites del bucle (su
instruccin de inicializacin, su criterio de terminacin y su instruccin de incremento). Por ejemplo,
el bucle for se utiliza frecuentemente para iterar sobre los elementos de un array, o los caracteres
de una cadena.
// a es un array de cualquier tipo
...
int i;
int length = a.length;
for (i = 0; i < length; i++) {
15/31
Docente: Hugo Mamanchura Lima
Fundamentos de Java
...
// hace algo en el elemento i del array a
...
}
Si sabes cuando estas escribiendo el programa que quieres empezar en el inicio del array, parar al
final y utilizar cada uno de los elementos. Entonces la sentencia for es una buena eleccin. La
carcter.
int c;
InputStream in;
...
do {
c = in.read();
...
} while (c != -1);
16/31
Fundamentos de Java
Declaracin de Propiedades
Cuerpo de la clase.Declaracin de Constructor
Fin de la clase
Cdigo java
class Circulo {
private double x;
private double y;
private double r;
public Circulo(double p1,double p2,double p3){
this.x=p1;
this.y=p2;
this.r=p3;
}
public double calcArea(){
double a;
a=Math.PI*Math.pow(r,2);
return a;
}
public void imprimir(){
System.out.println("coordenada x: "+x);
System.out.println("coordenada y: "+y);
System.out.println("radio.......: "+r);
}
}
Public
Abstract
Final
class NombreClase
extends NombreClasePadre
implements Interfaces
Cuerpo de la clase
}
Cuerpo de la clase
Contiene todo el cdigo que provee el ciclo de vida de un objeto creado a partir de esta clase.
Propiedades que proveen el estado de la clase y sus objetos
Constructores para la inicializacin de los objetos
17/31
Docente: Hugo Mamanchura Lima
Fundamentos de Java
Nivel de acceso
Static
Final
tipo nombre
Nivel de acceso
Permite controlar que otras clases pueden acceder a este elemento, tiene cuatro niveles de
acceso: public, protected, package, y private. El control de acceso para los mtodos es el mismo.
El siguiente cuadro muestra los niveles de acceso
Especificador\nivel de acceso
Clase
Subclase
Paquete
private
Protected
public
No especificado ( package)
Todo
static
Declara que es una propiedad de la clase y no de la instancia u objeto. Tambin se usa a nivel de
mtodos.
final
Indica que el valor no puede cambiar. Por convencin, el nombre de una constante es en
MAYUSCULAS.
18/31
Docente: Hugo Mamanchura Lima
Fundamentos de Java
throws exeptions
Nivel de acceso
tener el mismo nombre. La identidad de un mtodo se basa en la signatura de este el cual se forma
Fundamentos de Java
5.8 Herencia
Como especificamos en la declaracin de la clase la clusula extends declara que la clase
definida es una subclase de otra. A esta clase padre se le denomina superclase. Una clase solo
sobrescribirlos.
Qu Miembros hereda una subclase?
20/31
Docente: Hugo Mamanchura Lima
Fundamentos de
Java
Una subclase hereda todos los miembros de la superclase, los constructores no son miembros y no son
heredados por las subclases.
Una subclase hereda todos los miembros de la superclase declarados como public o protected Los
miembros donde no se especificaron el nivel de acceso solo son heredados por
subclases
dentro del mismo paquete. Una subclase no hereda un miembro de la superclase si la
subclase declara un miembro con el mismo nombre. En el caso de las propiedades
miembro, una variable miembro con el mismo nombre esconde la variable miembro de la
superclase y en caso de los mtodos el mtodo sobrescribe el de la superclase.
La clase Object padre de todas las clases java La clase Object
se encuentra en el inicio de
la jerarqua de herencia de la plataforma Java toda clase en java es directa o indirectamente
subclase de Object.
Esta clase define las caractersticas bsicas de que todo objeto debe tener como:
El mtodo equals Compara dos objetos por igualdad devuelve verdadero si son
iguales .
El mtodo finalize Este mtodo limpia un objeto antes que el recolector de
basura(garbage collector)
El mtodo toString Devuelve la representacin en cadena de la clase.
El mtodo getClass Es un mtodo final
que devuelve
en tiempo de ejecucin de la clase de un objeto.
una
representacin
La variable aNumber en Subbie esconde aNumber en Super. Pero podra acceder a la variable
aNumber de Super desde Subbie con la sentencia super.aNumber.
Super es en el lenguaje Java una palabra clave que permite referenciar a la superclase.
Sobreescritura de mtodos
Cuando una subclase declara un mtodo con la misma signatura de un mtodo ya definido en la
superclase entonces este mtodo sobrescribe la de la superclase. Por ejemplo la clase Object
tiene el mtodo toString que devuelve un dato de tipo String con el nombre del objeto si se
crea una nueva clase y no se especifica su clase padre o superclase entonces hereda
21/31
Docente : Hugo Mamanchura Lima
Fundamentos de Java
Operador this
tpicamente dentro del cuerpo de un mtodo se puede referenciar directamente a una variable
miembro (una propiedad) , sin embargo algunas veces tienes que referenciarlo mediante el
operador this.
Por ejemplo en el mtodo setr se ingresa un argumento con el mismo nombre que la variable
miembro si referenciamos a la variable miembro de forma directa mediante r esto causara una
Operador super
al igual que this referencia la clase actual super referencia a la clase padre.
6 Interfaces
6.1 Que es una Interfaz?
Una interfase define un protocolo de comportamiento que puede ser implementado por cualquier
clase en cualquier lugar de la jerarqua de la clase. La interfaz define un conjunto de mtodos y
pero no los implementa. Una clase que implementa una interfaz acepta implementar todos los
22/31
Docente : Hugo Mamanchura Lima
Fundamentos de Java
interfase la cual puede tener acceso publico y heredar de una lista de interfaces padre y el cuerpo
esta solo declara los mtodos pero no las implementa y adems puede tambin declara
constantes.
Declaracin de la interfaz
Cuerpo de la interfaz
paquetes.
Definicin.- Un Paquete (package) es una coleccin de clases e interfaces para proveer proteccin
23/31
Docente : Hugo Mamanchura Lima
Fundamentos de Java
Veamos por que es importe poner nuestra coleccin de clases dentro de un paquete. Supongamos
que escribimos un grupo de clases para manejar objetos
//Archivo Figura.java
public abstract class Figura {
...
}
//Archivo Circulo.java
public class Circulo extends Figura {
...
}
//Archivo Triangulo.java
public class Triangulo extends Figura {
...
}
//Archivo Rectangulo.java
public class Rectangulo extends Figura {
...
}
graficas.
Los nombres de nuestras clases no estn en conflicto con otras del mismo nombre puesto
//Archivo Circulo.java
package graficos;
public class Circle extends Figura {
...
}
24/31
Docente: Hugo Mamanchura Lima
Fundamentos de Java
Si existen mltiples clases en un solo archive fuente solo uno puede ser publico y este debe tener
el mismo nombre que el archivo fuente (.java). solo clases publicas son acezadas desde fuera del
paquete.
A pesar de que es posible crear clases sin especificar el paquete es altamente recomendable para
ejemplo:
Rectangulo Rect = new Rectangulo ();
Circulo cir = new Circulo();
25/31
Docente: Hugo Mamanchura Lima
Fundamentos de Java
Por defecto todo programa java importa automticamente todas las clases del paquete java.lang
y del paquete por defecto.
Graficos\Rectangulo.java
del paquete tenga su respectiva carpeta al mismo nivel es decir para el paquete
pe.com.mttvcorp.graficos se tendra que crear cuatro directorios la desde pe hasta grficos
Pe
:.com
:.mttvcorp
:.grficos
:Recatangulo.java
Al compilar un cdigo fuente el compilador de java genera un archivo .class deferente para cada
clase definida en el archive fuente en otras palabras si el mismo archivo fuente .java tiene definida las clases Punto
y Figura entonces al compilarse se generan dos archivos Punto.class y Figura.class.
Los archivos .class deben respetar la misma estructura fsica que los archivos fuentes. Es
recomendable separar los archivos fuente de las clases en diferentes lugares fsicos
Ambos el compilador y el interprete (virtual machine) buscan las clases en directorios o archivos
Definicin:
26/31
Docente : Hugo Mamanchura Lima
Fundamentos de Java
El lenguaje Java utiliza excepciones para proporcionar capacidades de manejo de errores. En esta leccin
aprenders qu es una excepcin, cmo lanzar y capturar excepciones, qu hacer con una excepcin una
vez capturada, y cmo hacer un mejor uso de las excepciones heredadas de las
Clases proporcionadas por el entorno de desarrollo de Java.
27/31
Docente : Hugo Mamanchura Lima
Fundamentos de Java
El bloque finally
El bloque finally de Java proporciona un mecanismo que permite a sus mtodos limpiarse a si
mismos sin importar lo que sucede dentro del bloque try. Se utiliza el bloque finally para cerrar
El segmento de cdigo etiquetado sentencias java est compuesto por una o ms sentencias
potencialmente pudieran lanzar una excepcin dentro de su propio bloque try, y proporcionar
manejadores de excepciones separados para cada uno de los bloques try. O podramos poner
todas las sentencias de writeList() dentro de un slo bloque try y asociar varios manejadores con
l. El suguiente listado utiliza un slo bloque try para todo el mtodo porque el cdigo tiende a ser
ms fcil de leer.
PrintStream pstr;
try {
int i;
System.out.println("Entering try statement");
pStr = new PrintStream(
new BufferedOutputStream(
new FileOutputStream("OutFile.txt")));
for (i = 0; i < size; i++)
pStr.println("Value at: " + i + " = " + victor.elementAt(i));
}
Se dice que el bloque try gobierna las sentencias encerradas dentro del l y define el mbito decualquier
manejador de excepcin (establecido por su subsecuente bloque catch) asociado con l. En otras palabras,
si ocurre una excepcin dentro del bloque try, esta excepcin ser manejada por el manejador de
excepcin asociado con esta sentencia try. Una sentencia try debe ir acompaada de al menos un bloque
catch o un bloque finally.
Fundamentos de Java
Como puedes ver, la sentencia catch requiere un slo argumento formal. Este argumento
parece un argumento de una declaracin de mtodo. El tipo del argumento AlgunObjetoThrowable declara el
tipo de excepcin que el manejador puede manejar y debe ser el nombre de una clase heredada de la clase
Throwable definida en el paquete java.lang. (Cuando los programas Java lanzan una excepcin
realmente estn lanzado un objeto, slo pueden lanzarse los objetos derivados de laclase
Throwable. Aprenders cmo lanzar excepciones en la leccin Cmo Lanzar Excepciones?.)
nombreVariable es el nombre por el que el manejador puede referirse a la excepcin capturada. Por ejemplo,
los manejadores de excepciones para el mtodo writeList() (mostrados ms adelante) llaman al
mtodo getMessage() de la excepcin utilizando el nombre de excepcin declarado e.
e.getMessage()
Se puede acceder a las variables y mtodos de las excepciones en la misma forma que accede a los de
cualquier otro objeto. getMessage() es un mtodo proporcionado por la clase Throwable que
imprime informacin adicional sobre el error ocurrido. La clase Throwable tambin implementa dos mtodos
para rellenar e imprimir el contenido de la pila de ejecucin cuando ocurre la excepcin. Las
subclases de Throwable pueden aadir otros mtodos o variables de ejemplar, Para buscar qu
metodos implementar en una excpecin, se puede comprobar la definicin de la clase y las definiciones de las
clases antecesoras.
El bloque catch contiene una serie de sentencias Java legales. Estas sentencias se
ejecutan cuando se llama al manejador de excepcin. El sistema de ejecucin llama al
manejador de excepcin cuando el manejador es el primero en la pila de llamadas cuyo tipo coincide con el
de la excepcin lanzada. El mtodo writeList() de la clase de ejemplo ListOfNumbers utiliza dos manejadores
de excepcin para su sentencia try, con un manejador para cada uno de los tipos de excepciones que
pueden lanzarse dentro del bloque try -- ArrayIndexOutOfBoundsException y IOException.
try {
...
} catch (ArrayIndexOutOfBoundsException e) {
System.err.println("Caught
ArrayIndexOutOfBoundsException:
e.getMessage());
} catch (IOException e) {
System.err.println("Caught IOException: " + e.getMessage());
"
toma
posesin
intenta
localizar
el
manejador
de
excepcin
adecuado.
El
29/31
Docente : Hugo Mamanchura Lima
Fundamentos de Java
esta sentencia.
Caught IOException: OutFile.txt
El sistema de ejecucin sigue un proceso similar
ArrayIndexOutOfBoundsException. Para ms detalles puedes ver.
si
ocurre
una
excepcin
try {
...
}
catch (Exception e) {
System.err.println("Exception caught: " + e.getMessage());
}
30/31
Docente : Hugo Mamanchura Lima
Fundamentos de Java
El sistema de ejecucin siempre ejecuta las sentencias que hay dentro del bloque finally sin
importar lo que suceda dentro del bloque try. Esto es, sin importar la forma de salida del bloque try del mtodo
writeList() debido a los escenarios 1, 2 3 listados arriba, el cdigo que hay dentro del bloque finally ser
ejecutado de todas formas.
Este es el bloque finally para el mtodo writeList(). Limpia y cierra el canal PrintStream.
finally {
if (pStr != null) {
System.out.println("Closing PrintStream");
pStr.close();
} else {
System.out.println("PrintStream not open");
}
}
31/31
Docente : Hugo Mamanchura Lima