Anexo Java
Anexo Java
Anexo Java
JAVA
Como lenguaje de programacin para computadores, Java se introdujo a finales de
1995. La clave fue la incorporacin de un intrprete Java en la versin 2.0 del
programa Netscape Navigator, produciendo una verdadera revolucin en Internet.
El principal objetivo del lenguaje Java es llegar a ser el nexo universal que conecte a
los usuarios con la informacin, est situada en el ordenador local, en un servidor
Web, en una base de datos o en cualquier otro lugar.
Java posee las caractersticas de ser simple, orientado a objetos, distribuido,
interpretado, robusto, seguro, de arquitectura neutra, portable, de altas prestaciones,
multitarea y dinmico.
.
OBJETIVOS
Java
1.1.
Java
3
1.1.3.1.
Qu es el JDK?
Existen muchas tecnologas que Java ofrece, eso significa que se pueden
desarrollar aplicaciones de cualquier tipo en el mundo moderno.
Applets que son miniaplicaciones que se bajan por la red y se ejecutan
dentro del navegador.
Controles visuales Java Swing para disear el GUI con Java y desarrollar
una aplicacin tradicional.
JDBC, Drivers y APIs para acceso a bases de datos escritas en Java y con
amplio soporte para todas las bases de datos del mundo (Informix, Oracle,
Sybase, MSSQLServer, MySql, DB2, etc.).
APIs para trabajar en red y comunicaciones, URLs, TCP and UDP
Sockets.
Servelts y Java Server pages (JSP) para desarrollar aplicaciones Web.
Java Mail para envos de correo electrnico automatizados.
JNI para invocar cdigo nativo (exe, dlls, scripts, rutinas en C) desde Java.
RMI para aplicaciones distribuidas en 2, 3 y n capas.
Componentes JavaBeans y Enterprise Java Beans.
Arsenales de Parsers Java para XML.
JINI connection technology cuya filosofa es Todo en uno sin cables,
drivers ni configuraciones engorrosas entre los dispositivos, esto se ubica
en los llamados services de la red.
APIs para desarrollar aplicaciones WAP.
Application Servers multiplataformas de diferentes fabricantes y
estndares.
1.2.
Java
Las variables son posiciones de memoria simples que almacenan un
dato que puede cambiar en el transcurso de la ejecucin de un
programa. Una declaracin de variable siempre contiene dos
componentes, el tipo de la variable y su nombre.
tipoVariable nombre;
1.2.2. Tipos de Variables
Todas las variables en el lenguaje Java deben tener un tipo de dato. El
tipo de la variable determina los valores que la variable puede contener
y las operaciones que se pueden realizar con ella.
1.2.3. Tipos de datos
Existen dos categoras de datos principales en el lenguaje Java: los
tipos de datos primitivos y los tipos de datos referenciados.
Tipos de Datos primitivos
Son datos simples que requieren de una sola posicin de memoria para
ser almacenados.
Tipo
(Nmeros enteros)
Byte
Short
Int
Long
(Nmeros reales)
Float
Double
(otros tipos)
Char
Bolean
Tamao/Formato
Descripcin
8-bit complemento a 2
16-bit complemento a 2
32-bit complemento a 2
64-bit complemento a 2
Entero de un Byte
Entero corto
Entero
Entero largo
16-bit Carcter
true o false
Un slo carcter
Un valor booleano (verdadero o falso)
Java
1. Debe ser un identificador legal de Java comprendido en una serie
de caracteres Unicode. Unicode es un sistema de codificacin que
soporta texto escrito en distintos lenguajes humanos. Unicode
permite la codificacin de 34.168 caracteres. Esto le permite utilizar
en sus programas Java varios alfabetos como el Japons, el
Griego, el Ruso o el Hebreo. Esto es importante para que los
programadores pueden escribir cdigo en su lenguaje nativo.
2. no puede ser el mismo que una palabra clave o el nombre de un
valor booleano (true or false) no deben tener el mismo nombre que
otras variables cuyas declaraciones aparezcan en el mismo mbito.
3. La regla nmero 3 implica que podra existir el mismo nombre en
otra variable que aparezca en un mbito diferente.
Java
Una variable de tipo double puede almacenar un valor de tipo int
convirtindose automticamente en tipo double.
No se puede asignar un valor de tipo double a una variable de tipo
int.
Ejemplo
//Asigna una constante a una variable
z = 14;
//Asigna el valor de una variable a otra variable
a = b;
//Asigna el valor de una expresin a una variable
area = 3.1416 * radio * radio
1.2.7. Operadores
Los operadores realizan funciones en uno o dos operandos. Los
operadores que requieren un operador se llaman operadores unarios.
Por ejemplo, ++ es un operador unario que incrementa el valor su
operando en uno.
Los operadores que requieren dos operandos se llaman operadores
binarios. El operador = es un operador binario que asigna un valor del
operando derecho al operando izquierdo. Los operadores unarios en
Java pueden utilizar la notacin de prefijo o de sufijo.
La notacin de prefijo significa que el operador aparece antes de su
operando:
operador operando
La notacin de sufijo significa que el operador aparece despus de su
operando:
operando operador
Todos los operadores binarios de Java tienen la misma notacin, es
decir aparecen entre los dos operandos:
op1 operador op2
1.2.7.1. 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 y op2
Divide op1 por op2
Obtiene el resto de dividir
op1 entre op2
Java
Nota: El lenguaje Java extiende la definicin del operador + para incluir
la concatenacin de cadenas.
Los operadores + y - tienen versiones unarias que seleccionan el signo
del operando.
Operador
+
-
Uso
+ op
- op
Descripcin
Indica un valor positivo
Niega el operando
Operador Uso
++
op
++
++
++
op
-op --op
Descripcin
Incrementa op en 1; evala el valor antes
de incrementar
Incrementa op en 1; evala el valor
despus de incrementar
Decrementa op en 1; evala el valor antes
de decrementar
Decrementa op en 1; evala el valor
despus de decrementar
Uso
op1 > op2
op1 >= op2
op1 < op2
op1 <= op2
op1 == op2
op1 != op2
Devuelve true si
op1 es mayor que op2
op1 es mayor o igual que op2
op1 es menor que op2
op1 es menor o igual que op2
op1 y op2 son iguales
op1 y op2 son distintos
Uso
op1 && op2
op1 || op2
! op
Devuelve true si
op1 y op2 son verdaderos
uno de los dos es
verdadero
op es falso
Ejemplo:
Verificando si la nota se encuentra en el intervalo [0, 20]
if (nota >= 0 && nota <= 20){
:
:
}
1.2.7.4. Operadores de Asignacin
Java
Se emplea el operador de asignacin =, para asignar un valor a otro.
Adems del operador de asignacin bsico, Java proporciona varios
operadores de asignacin que permiten realizar operaciones
aritmticas, lgicas o de bits y una operacin de asignacin al mismo
tiempo. Suponga que desea adir un nmero a una variable y asignar el
resultado dentro de la misma variable, como esto:
i = i + 2;
Puedes ordenar esta sentencia utilizando el operador +=.
i += 2;
Las dos lneas de cdigo anteriores son equivalentes.
Tabla de los operadores de asignacin y sus equivalentes.
Operador
+=
-=
*=
/=
%=
&=
|=
^=
<<=
>>=
>>>=
Uso
op1 += op2
op1 -= op2
op1 *= op2
op1 /= op2
op1 %= op2
op1 &= op2
op1 |= op2
op1 ^= op2
op1 <<= op2
op1 >>= op2
op1 >>>= op2
Equivale a
op1 = op1 + op2
op1 = op1 - op2
op1 = op1 * op2
op1 = op1 / op2
op1 = op1 % op2
op1 = op1 & op2
op1 = op1 | op2
op1 = op1 ^ op2
op1 = op1 << op2
op1 = op1 >> op2
op1 = op1 <<< op2
Java
Condicional
Asignacin
?:
= += -= *= /= %= ^= &= |= <<= >>= >>>=
1.2.8.1. La sentencia if
if (condicin)
{
//Instrucciones que se ejecutan solo cuando la condicin es true
}
1.2.8.2. La sentencia ifelse
if (respuesta == OK){
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,
y ejecuta la sentencia case apropiada.
La sentencia break hace que el control salga de la sentencia switch y
contine con la siguiente lnea. La sentencia break es necesaria porque
las sentencias case se siguen ejecutando hacia abajo. Esto es, sin un
break explcito, el flujo de control seguira secuencialmente a travs de
las sentencias case 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 el control proceda
secuencialmente a travs de las sentencias case.
int mes, anio;
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 ( ((anio % 4 == 0) && !(anio % 100 == 0)) || anio % 400 == 0) )
numeroDias = 29;
10
Java
else
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("Este, no es un mes vlido!");
break;
}
1.2.8.5. Sentencia repetitiva while
La sentencia while realiza una accin mientras se cumpla una
determinada condicin.
while (condicin)
{
instrucciones;
}
Ejemplo:
...
while (System.in.read() != -1) {
contador++;
System.out.println("Se ha ledo un el carcter = " + contador);
}
...
1.2.8.6. Sentencia repetitiva for
La sentencia for realiza una accin un nmero determinado de veces
controlado por contador.
for (inicio; condicin; incremento)
{
instrucciones;
}
11
Java
Ejemplo:
Imprimir la siguiente serie de nmeros: 0, 1, 2, 3, 4,..50
for (i = 0; i <= 50; i++)
{
System.out.println(i);
}
1.2.8.7. Sentencia dowhile
La sentencia dowhile se emplea cuando el bucle debe ejecutarse al
menos una vez.
do {
Instrucciones;
} while (condicin);
Ejemplo,
Leer informacin de un archivo, al menos debe leer un carcter.
int c;
InputStream in;
...
do {
c = in.read();
...
} while (c != -1);
Importante:
Contadores
Un contador es una variable que se emplea para contar el nmero de
ocurrencias de un suceso o el nmero de veces que se cumple un determinada
condicin.
Por ejemplo, se necesita un contador para determinar:
El nmero de veces que se hizo clic en un botn
El nmero de notas ingresadas
El nmero de notas aprobatorias
Una instruccin de conteo tiene la siguiente forma: contador++;
Acumuladores
Un acumulador es una variable que se emplea para acumular o totalizar
cantidades de una misma especie.
Por ejemplo, se necesita un acumulador para determinar:
El sueldo total de los empleados de una empresa
12
Java
La edad total de un conjunto de personas
La suma de las notas de un alumno
Una instruccin de conteo tiene la siguiente forma: acumulador += cantidad;
Comentarios
//
/*
Comentarios en bloque
*/
/**
13
Java
funcionalidades (Acciones) asociadas, como pueden ser comer, caminar,
dormir, etc.
1.3.2 Conceptos Bsicos
Clase
Es la agrupacin de objetos que comparten una misma naturaleza en un
nivel ms abstracto. Es decir es la abstraccin de un objeto.
Una CLASE es un proyecto, o prototipo, que define las variables y los
mtodos comunes a un cierto tipo de objetos.
Objeto
Es un elemento al
cual se le puede distinguir caractersticas
intrnsecas. Los objetos son ejemplares de una clase cualquiera.
Cuando creamos un ejemplar tenemos que especificar la clase a partir
de la cual se crear.
Un objeto contiene en s mismo la informacin y los mtodos o
funciones necesarios para manipular esa informacin.
Instancia
Es la creacin de un nuevo objeto a partir de una clase padre.
Estado
Es el conjunto de valores o datos que posee un objeto dentro de sus
propiedades.
El estado es lo que lo hace diferente a un objeto de otro.
De acuerdo a su estado se deriva la forma de comportamiento
de un objeto.
Nota: Para instanciar un objeto se requiere de la construccin
de un estado.
Ejemplo
Una fraccin, es decir, esa estructura matemtica que tiene un
numerador y un denominador sera un objeto el cual tiene dos
propiedades: El numerador y El denominador.
Y sus mtodos seran: simplificarse, sumarse, con otra fraccin o
nmero, restarse con otra fraccin, etc.
1.3.3. Las Clases en Java
Java es netamente un Lenguaje Orientado a Objetos, por lo tanto, lo
primero que debe crear para construir una aplicacin es una clase. Los
nombres de las clases en Java deben empezar con una Letra
mayscula y deben situarse dentro de un paquete.
Recuerde que una clase es la agrupacin de objetos que comparten
una misma naturaleza en un nivel ms abstracto. Es decir es la
abstraccin de un objeto.
1.3.3.1. Las propiedades de una clase
Las propiedades son las caractersticas inherentes de un objeto,
siempre estas nos devuelven un tipo de dato.
14
Java
Ejemplo: A la clase Persona se le puede distinguir las propiedades:
Apellidos, Edad, Sexo, etc.
Tambin se le conoce como variables de Objeto.
Creacin de las Propiedades
public class Persona {
public String apellido;
public int edad;
public boolean sexo;
}
15
// mtodo comer
// mtodo caminar
// mtodo cualestusexo
// retorna el valor de una
Java
apelllido=n;
edad=e;
sexo=false;
}
public persona(String n, int e) {
nombre=n;
edad=e;
}
1.3.3.4. La Instancia de una Clase
Es la creacin de un nuevo objeto a partir de una clase padre.
Nota:
Para instanciar un objeto se requiere de la construccin de un estado.
El instanciamiento de un Objeto debe estar indicado dentro del mtodo
esttico main.
Instanciamiento en Java:
Persona p1=new Persona(Ruiz",30);
Persona p2=new Persona(Vasquez",15);
Persona p3=new Persona(Gmez",15,false);
1.3.3.5. Referencia de un Objeto
Permite asignar al objeto instanciado otros nombres, sin que este objeto
instanciado se duplique al recibir otras referencias. Un objeto puede
tener una, ninguna o muchas referencias. Si se Cambia el valor de una
propiedad de alguna de las referencias del objeto, este cambio afecta a
todas las referencias y al mismo objeto instanciado, porque en s se
trata de un solo objeto y no de varios.
Creacin de una Referencia:
Martha=p2;
16
Java
return sumaDeEdades/numerodePersonas;
}
1.3.3.8. Acceso a los mtodos y variables estticas
Para acceder a una variable esttica no se requiere de un objeto
instanciado para su utilizacin y se invoca desde la clase misma.
Ejemplo:
Persona.numerodePersonas
Lo mismo se cumple para acceder a los mtodos estticos, se invocan
desde la clase misma.
Ejemplo:
Persona.promedio()
1.4.
Math.abs(-5)
Clase de Java
Mtodo esttico
Significado
Devuelve el valor absoluto
Devuelve el arcocoseno
Devuelve el arcoseno
Arcotangente entre PI/2 y PI/2
Arcotangente entre PI y PI
Entero ms cercano en direccin a infinito
Entero ms cercano en direccin a infinito
Entero ms cercano al argumento
Entero ms prximo
Calcula el coseno
Calcula el seno
Calcula la tangente
exp()
log()
max ( , )
min( , )
17
Java
random ()
pow ( , )
sqrt ()
toDegrees ()
toRadians()
18
//Devuelve
//apellidos
la
longitud
de
Mtodo
Esttico
Significado
length()
startsWith
reverse()
la
cadena
Java
ValueOf
IndexOf( , )
Substring( , )
toLowerCase()
toUpperCase()
trim()
charAt( )
19
PRUEBA DE AUTOEVALUACIN I
1. Es propietaria de Java
a) Microsoft
b) Sun
c) Adobe
d) Macromedia
b) Clase
c) Intrprete
d) Compilador
b) Compiler
c) JavaVM
d) Ninguno
c) JDBC
d) Frames
b) Applets
b) Operador
c) Clase
se
d) Acumulador
b) switch
c) for
d) while
b) for
c) if
d) switch
Java
a) pow
b) round
c) sqrt
d) avg
b) valueOf
c) substring
d) charAt
Clave de Respuestas
1. b
2. a
3. c
4. d
5. a
6. b
7. d
8. b
9. d
10. c
2.1.
Wrapper
Integer
Double
Long
Short
Carcter
Bolean
20
Java
2.1.2. Wrappers para convertir datos
//Asumamos para los siguientes ejemplos que a vale 3 y b vale 2
//Ambos son String
String a=3;
String b=2;
Convertir de String a int
int total=Integer.parseInteger(a)+Integer.parseInteger(b);
Convertir de String a double
double total=Double.parseDouble(a)+Double.parseDouble(b);
El mtodo intvalue de un Wrapper nos permite acceder al dato primitivo
inmerso en l.
2.1.3. Casting
Es un mecanismo que usa Java para convertir datos, el Casting solo sirve para
conversin entre datos numricos (enteros, decimales y char).
Sintaxis:
(tipo a convertir) <dato a convertir>;
Ejemplos prcticos con Casting
Convertir de double a int (pierde precisin)
double monto=17.9932;
int montotruncado=(int)monto;
Convertir de int a double (gana precisin)
int nota=16;
double n=(double)nota;
Convertir de char a int
char c=@;
int x=(int)c;
Convertir de int a char
int c=35;
char x=(char)c;
Nota: Los datos de tipo char son tipos numricos para Java, cada char esta
relacionado al valor ASCII equivalente. Ejemplo:
El char @ para Java representa internamente 64
2.1.4. Otros tipos de conversiones
Convertir a String:
21
Java
Esta forma de conversin lo podemos lograr a travs del mtodo
valueOf de la Clase String
Ejemplo:
int valor=12;
String valorCad=String.valueOf(valor);
Nota: El mtodo valueOf funciona para convertir datos int, double, float,
long, y char.
2.2.
Clase Date
Clase GregorianCalendar
Nota: Para utilizar estas clases previamente las debe importar, colocando en la
parte superior de la clase, la siguiente lnea:
import java.util.Date;
2.2.1. La Clase Date
Existen tres formas de instanciar fechas a partir de la Clase Date:
// Obtiene la fecha actual
Date f=new Date();
//Obtiene la fecha que corresponda a la cantidad de milisegundos
//transcurridos desde el 01/01/1970
Date f1=new Date(86400000);
//Obtiene una fecha que corresponda al ao 2004, Mes Octubre, da 12,
//con 15 Horas, 10 minutos y 25 segundos.
Date f2=new Date(104,9,12,13,05);
Un objeto instanciado de esta clase representa un instante de tiempo dado con
precisin de milisegundos. La informacin sobre fecha y hora se almacena en
un entero long de 64 bits, que contiene los milisegundos transcurridos desde
las 00:00:00 del 1 de enero de 1970 GMT (Greenwich mean tim).
2.2.2. Mtodos de la Clase Date
Mtodo
after()
before()
getTime()
Propsito
Devuelve verdadero si la fecha del argumento se
encuentra despus de la fecha implcita Falso en caso
contrario.
Devuelve verdadero si la fecha del argumento se
encuentra antes de la fecha implcita. Falso en caso
contrario.
Obtiene los milisegundos transcurridos desde el
01/01/1970.
22
Java
setTime()
Establece los
01/01/1970.
milisegundos
transcurridos
desde
equals()
compareTo()
el
23
Java
Las variables ERA, YEAR, MONTH, HOUR, MINUTE, SECOND,
MILLISECOND tienen tambin un significado evidente.
Las variables ZONE_OFFSET y DST_OFFSET indican la zona horaria
y el desfase en milisegundos respecto a la zona GMT.
2.2.6. Diferencia entre dos fechas
public static void main(String arg[]) {
Date d=new Date();
Date fn=new Date(104,9,8);
long difm=d.getTime()-fn.getTime();
long difd= (difm /86400000L);
System.out.println("Dias transcurridos:"+difd);
}
24
Java
String s = sdf2.format(d);
System.out.println(s);
}
2.3.
ARREGLOS EN JAVA
Los arreglos (Arrays) en Java son estructuras de datos formados por un
conjunto de elementos de datos primitivos o de objetos de una clase. En Java
todos los arreglos son objetos se proceden de la clase Object. Cada elemento
del arreglo posee un nmero de ndice, con el que es posible referirnos a un
valor especfico de la estructura, el primer elemento del array tendr la posicin
0.
Todos los elementos que conforman un arreglo deben ser del mismo tipo de
dato o perteneciente a una misma clase. Para obtener la longitud del arreglo
debemos invocar a la variable miembro implcita: length()
25
Java
2.4.
EJERCICIOS PRCTICOS
//Programa que calcula la suma de las cifras de un #
import javax.swing.*;
public class SumaCifras {
public static void main(String[] args) {
//Definiendo variables
String c;long suma=0;
//Obteniendo # como texto
c=JOptionPane.showInputDialog(null,"Ingrese Nmero de 3 cifras","",1);
//Convirtiendo el nmero en entero
int n=Integer.parseInt(c);
//Descomponiendo el # en centenas, decenas y unidades
long cen=n/100;
long res=n%100;
long dec=res/10;
long uni=res%10;
//Calculando la suma de las cifras
suma=cen+dec+uni;
//Imprimiendo la suma de las cifras
System.out.println("La suma sus cifras es: "+suma);
}
}
26
Java
public class NumeroReves {
public static void main(String[] args) {
//Definiendo variable para el nmero
String c;
//Ingresando numero como texto
c=JOptionPane.showInputDialog(null,"Ingrese nmero","",1);
//Creando un nuevo objeto de tipo StringBuffer
StringBuffer c1=new StringBuffer(c);
//Aplicando el mtodo reverse para invertir el nmero
StringBuffer c2=c1.reverse();
//Imprimiendo el nmero invertido
System.out.println("El nmero al revs es "+c2);
}
}
//Simula el lanzamiento de 3 dados
public class LanzaDados {
public static void main(String[] args) {
//Declarando variables
int i=1,c=0;
//Definiendo bucle para generar tiros
while(i<=100) {
//Generando los #s
long d1=Math.round(Math.random()*5+1);
long d2=Math.round(Math.random()*5+1);
long d3=Math.round(Math.random()*5+1);
//Incrementa en 1 el contador
c++;
//Imprimiendo los tiros de los dados
System.out.print(d1+"\t"+d2+"\t"+d3);
System.out.println("");
//Incrementa 1 al contador
i++;
//Si los tres dados tinen 6 se termina el programa
if (d1==6 && d2==6 && d3==6){i=101;}
}
System.out.print("Fue necesario tirar "+c+" veces");
}
}
27
Java
//Variable para el while
int c=0;
//Imprimiendo la cabecera
System.out.println("t"+"\t"+"h");
System.out.println("----------------------");
//Generando la altura versus tiempo
while (c<=20){
//frmula para calcular la altura
h=50+200*t+5*t*t;
System.out.print(t+"\t"+h+"\n");
c+=2; //incrementa el contador en 2
t+=2; //incrementa el tiempo en 2
}
}
}
//Calcula el factorial de un nmero
import javax.swing.*;
public class Factorial{
public static void main(String[] args){
//Declara variable
String c;
//Obtiene el nmero como caracter
c=JOptionPane.showInputDialog(null,"Ingrese nmero","",1);
//Convirtiendo el caracter a entero
int n=Integer.parseInt(c);
int i=1,f=1;
//Bucle para calcular el factorial del nmero
while (i<=n){
f*=i;
i++;
}
System.out.println("El factorial de "+n+" es "+f);
}
}
28
Java
double n=Math.round(Math.random()*20);
//Imprime la nota
System.out.print(n+"\t");
//Genera el histograma
for (int j=1;j<=n;j++){
System.out.print("*");
}
//Imprime linea en blanco
System.out.println("");
i++;//Incrementa 1 al control de notas
}
}
}
PRUEBA DE AUTOEVALUACIN II
1. Clase que permite convertir datos
a) Wrapper
b) Clase
c) Mtodo
d) Instancia
b) Integer
c) Casting
d) Double
b) double
c) float
d) valueOf
b) Utilitarios
c) Java
d) Ninguno
b) Das
c) Meses
d) Enteros
b) Entero
c) Decimal
d) Nulo
b) getTime
c) Time
d) Date
b) Calendar
c) Month
d) Ninguno
29
Java
a) 0
b) Null
c) 1
d) Ninguno
b) Class
c) Object
d) Ninguno
CLAVE DE RESPUESTA
1. a
5. b
8. d
2. c
6. a
9. a
3. d
7. a
10. c
4. a
HERENCIA
La herencia permite que se pueda definir nuevas clases basadas en clases
existentes, lo cual facilita re-utilizar cdigo previamente desarrollado. Si una
clase deriva de otra (extends), hereda todos sus atributos y mtodos.
La clase derivada puede aadir nuevas variables y mtodos y/o redefinir las
variables y mtodos heredados. En cierta forma es como si la sub-clase (la
clase derivada) contuviera un objeto de la super-clase; en realidad lo
ampla con nuevas variables y mtodos.
Java permite mltiples niveles de herencia. No obstante, no permite que una
clase derive de varias (no es posible la herencia mltiple).
Se pueden crear tantas clases derivadas de una misma clase como se quiera.
Creamos una nueva clase a partir de la Clase Padre. La Clase Hijo hereda
mtodos y Atributos de la Clase Padre. Adicionalmente Podemos aadir otros
mtodos o atributos a la clase Hijo.
Padre
La Clase Hijo
Extiende de la Clase
Padre
Hijo
30
Java
ENCAPSULAMIENTO
Para entender el concepto de Encapsulamiento, Analicemos lo siguiente:
En la vida cotidiana, el acceso a la informacin est limitado por niveles de
accesos, por ejemplo:
31
Java
Paquete n
32
C
A
La Clase C
extiende de B
D
B
A
Nivel
Clases
public
private
protected
package
3.3.
B
B
B
B
La clase que
lo define
A
A
Est en el
paquete
C
Es la clase hija
Est en el
paquete de la
clase hija
Java
public interface Reproducible {
// Aqu deben indicarse los mtodos abstractos
// con los que se trabajarn
}
3.3.4. Mtodos Abstractos
Son utilizados dentro de una interfaz, solo muestran la funcionalidad del
objeto, pero no incluyen la lgica del procedimiento (no hacen nada por
ellos mismos).
Ejemplo:
public void play();
33
Reproducible
(Mtodos Abstractos)
Interfaz
Mtodos
Implementados
MP3
3.4.
EJERCICIOS PRCTICOS
AVI
Java
//Clase Almacen
package Practica3;
public class Almacen {
public String nroid;
public String responsable;
public String region;
/** Creates a new instance of Almacen */
public Almacen() {
}
}
34
//Clase Perecibles
package Practica3;
public class Perecibles extends Almacen {
public String poliza;
public String subencargado;
public String operador;
/** Creates a new instance of Perecibles */
public Perecibles() {
}
public static void main(String[] args) {
// TODO code application logic here
}
}
//Clase NoPerecibles
package Practica3;
public class NoPerecibles extends Almacen {
public String subencargado;
/** Creates a new instance of NoPerecibles */
public NoPerecibles() {
}
}
//Clase Refrigerados
package Practica3;
public class Refrigerados extends Perecibles {
/** Creates a new instance of Refrigerados */
public Refrigerados() {
}
}
//Clase Termicos
package Practica3;
public class Termicos extends Perecibles {
/** Creates a new instance of Termicos */
public Termicos() {
Java
}
public static void main(String arg[]) {
Termicos at1=new Termicos();
// Comprobamos que el objeto instanciado a heredado las
//propiedades de sus clases padres
at1.nroid="AT0001";
at1.responsable="Federico Mayta";
at1.region="Lima";
at1.poliza="012345";
at1.subencargado="Martin Crdova";
at1.operador="Felix Sinche";
System.out.println("El almacen at1 tiene como responsable a: "+
at1.responsable);
}
}
//Clase Aclimatados
package Practica3;
public class Aclimatados extends Perecibles {
/** Creates a new instance of Aclimatados */
public Aclimatados() {
}
}
//Clase A1
package Practica3;
public class A1 extends NoPerecibles {
/** Creates a new instance of A1 */
public A1() {
}
public static void main(String[] args) {
// TODO code application logic here
A1 almacenA11=new A1();
almacenA11.nroid="AA10001";
almacenA11.responsable="Gonzalo Lomas";
almacenA11.region="Tacna";
//almacenA11.poliza="44210";
almacenA11.subencargado="Carlos Torres";
//almacenA11.operador="Luis Garcia";
//Ojo: NO APLICA - Si lo
//descomenta arroja error
System.out.println("El almacen almacenA11 tiene como responsable a: "+
almacenA11.responsable);
System.out.println("El almacen almacenA11 NO CUENTA con POLIZA y
OPERADOR");
}
}
35
Java
//Clase A2
package Practica3;
public class A2 extends NoPerecibles {
/** Creates a new instance of A2 */
public A2() {
}
public static void main(String[] args) {
// TODO code application logic here
}
}
//Clase A3
package Practica3;
public class A3 extends NoPerecibles {
36
b) clase
c) extends
d) Ninguno
b) Encapsulamiento c) Herencia
d) Mtodo
b) Objetc
c) Public
d) Extends
b) sub-clase
c) super-clase d) encapsulamiento
b) public
c) private
d) package
b) propiedad
c) interface
d) herencia
b) protegidos
c) paquete
d) abstractos
b) Clase
c) Mtodo
d) Instancia
Java
a) implements
b) extends
c) protected
d) package
b) propiedad
c) interfaz
d) instancia
Clave de Respuestas
1. a
2. c
3. d
4. c
5. d
6. c
7. d
8. a
9. a
10. c
37
Java
El primero contendr el cdigo fuente del formulario, controles y
eventos. El segundo contiene el diseo del formulario.
4.1.2. Layout (Estrategia de Diseo)
Los JFrame nos ofrecen la posibilidad de trabajar en base a un
determinado tipo Layout para establecer una mejor ubicacin y
distribucin de los distintos controles localizados sobre el formulario o
panel.
Un JFrame sin Layout permite la insercin de controles de un modo muy
parecido a como lo permiten otros lenguajes de programacin visual.
4.1.3. Tipos de Layouts
38
Java
4.1.5. Captura y Lectura de datos desde un JTextField
Todos los datos que se capturan desde un JTextField son datos de tipo
String y se capturan con el Mtodo getText().
Ejemplo:
String Apellidos=Jtxtape.getText();
Para escribir texto dentro de un JTextField, se utilizar el mtodo
setText(dato).
Ejemplo:
Jtxtnombre.setText(Juanita Lpez);
39
Java
Creacin de un cuadro de dilogo para ingresar datos
c=JOptionPane.showInputDialog(null,"Ingrese un nmero","",1);
4.2.3. JDesktopPane
Un objeto de la clase JDesktopPane es un componente que permite
crear aplicaciones MDI similares a aplicaciones tradicionales creados
con oros lenguajes de programacin visual. Un formulario MDI contiene
un JMenuBar por defecto.
Creacin de un formulario MDI
MANEJO DE EXCEPCIONES
4.3.1. Excepciones
Las excepciones son la manera que ofrece Java de manejar los errores
en tiempo de ejecucin. Muchos lenguajes imperativos, cuando tenan
un error de esta clase lo que hacan era detener la ejecucin del
programa. Las excepciones nos permiten escribir cdigo que nos
permita manejar ese error y continuar (si lo estimamos conveniente) con
la ejecucin del programa.
El error en ejecucin ms clsico en Java es el de desbordamiento. Es
decir, el intento de acceso a una posicin de un vector que no existe.
Ejemplo:
public class Desbordamiento {
static String mensajes[] = {"Primero", "Segundo", "Tercero" };
public static void main(String[] args) {
for (int i=0; i<=3; i++)
System.out.println(mensajes[i]);
System.out.println("Ha finalizado la ejecucin");
}
}
Este programa tendr un problema cuando intente acceder a
mensajes[3], pues no existe dicho valor. Al ejecutarlo nos mostrar lo
siguiente:
Primero
Segundo
Tercero
Exception in thread "main"
java.lang.ArrayIndexOutOfBoundsException
at Desbordamiento.main(Desbordamiento.java, Compiled Code)
40
Java
Nos da un error de ejecucin (en esta terminologa se dira que se lanz
una excepcin) al intentar acceder a dicho valor inexistente. Vemos que,
por ahora, el comportamiento de nuestro cdigo es el mismo que en los
lenguajes imperativos. Cuando encuentra el error, se para la ejecucin.
Ahora veremos cmo evitar esto.
4.3.2. try...catch...finally
Es una estructura que nos permitir capturar excepciones, es decir,
reaccionar a un error de ejecucin.
De este modo podremos imprimir mensajes de error "a la medida" y
continuar con la ejecucin del programa si consideramos que el error no
es demasiado grave.
Ejemplo:
Modificamos el programa anterior asegurndonos de capturar las
excepciones:
public class Excepciones {
static String mensajes[] = {"Primero", "Segundo", "Tercero" };
public static void main(String[] args) {
try {
for (int i=0; i<=3; i++)
System.out.println(mensajes[i]);
}
catch ( ArrayIndexOutOfBoundsException e ) {
System.out.println("Error de desborde");
}
finally {
System.out.println("Ha finalizado la ejecucin");
}
}
}
Dentro del bloque que sigue a try colocamos el cdigo a ejecutar. Es
como si dijramos que vamos a intentar ejecutar dicho cdigo a ver qu
pasa. Despus de try deberemos colocar al menos un bloque catch o un
bloque finally, pudiendo tener ambos e incluso ms de un bloque catch.
En el bloque finally ponemos el cdigo que se ejecutar siempre, tanto
si se lanza la excepcin o no. Su utilidad no es mucha, ya que si se
permite continuar con la ejecucin del programa basta con poner el
cdigo despus del bloque try...catch. En nuestro ejemplo podramos
haber puesto lo siguiente:
try {
for (int i=0; i<=3; i++)
System.out.println(mensajes[i]);
}
catch ( ArrayIndexOutOfBoundsException e ) {
System.out.println("Error de desborde");
}
System.out.println("Ha finalizado la ejecucin");
41
Java
Y habra funcionado exactamente igual.
4.3.3. Clase Exception
Cuando se lanza una excepcin, en nuestro mundo orientado objetos lo
que se hace es lanzar una instancia de Exception o de una clase
derivada de l. Normalmente las clases derivadas no aaden mucha
funcionalidad (muchas veces ninguno en absoluto), pero al ser distintas
nos permiten distinguir entre los distintos tipos de excepciones.
En el programa anterior, por ejemplo, en el bloque catch capturbamos
una excepcin del tipo ArrayIndexOutOfBoundsException, ignorando
cualquier otro tipo de excepcin.
4.3.4. Constructores y Mtodos de la Clase Exception
Exception e = new Exception() Crea una excepcin si ningn
mensaje especfico.
Exception e = new Exception ( String ) Crea una excepcin con
un mensaje que detalla el tipo de excepcin.
String e.getMessage() Devuelve el mensaje detallado si existe o
null en caso contrario.
void e.printStackTrace() Escribe por la salida de error estndar
una traza que nos permitir localizar donde se gener el error. Es
muy til para depurar, pero no es conveniente que lo usuarios
finales vean estas cosas.
4.3.5. Capturar excepciones
Ahora entendemos cmo funcionan los catch. Entre parntesis, cual
parmetro se pone la declaracin de una excepcin, es decir, el nombre
de una clase derivada de Exception (o la misma Exception) seguido por
el nombre de la variable. Si se lanza una excepcin que es la que
deseamos capturar o una derivada de la misma se ejecutar el cdigo
que contiene el bloque.
Ejemplo:
catch (Exception e) {
...
}
Se ejecutar siempre que se produzca una excepcin del tipo que sea,
ya que todas las excepciones se derivan de Exception. No es
recomendable utilizar algo as ya que estamos capturando cualquier tipo
de excepciones sin saber si eso afectar a la ejecucin del programa o
no.
Se pueden colocar varios bloques catch. En ese caso, se comprobar
en orden si la excepcin lanzada es la que deseamos capturar y si no
pasa a comprobar la siguiente. Eso s, slo se ejecuta un bloque catch.
En cuanto captura la excepcin deja de comprobar los dems bloques.
Por eso, lo siguiente:
catch (Exception e) {
42
Java
...
}
catch (DerivadaDeException e) {
...
}
Dara error, ya que el segundo bloque no podra ejecutarse nunca.
4.4.
Base de
Datos
MS
ACCESS
ODBC
Aplicacin
JAVA
JDBC
Solo en el caso de Ms-Access se requiere adicionalmente del API
ODBC para establecer conexin con una aplicacin Java.
4.4.4. Conexin con una Base de Datos de SQL-Server
Base de
Datos
SQL
SERVER
JDBC
Aplicacin
JAVA
43
Java
4.4.5. Interfaces del JDBC
PRUEBA DE AUTOEVALUACIN IV
1. Son componentes que permiten crear interfaces grficas de usuario
a) awt
b) swing
c) label
d) a y b
b) JForm
c) JFrame
d) Ninguno
b) Layout
c) JTextBox
d) JLabel
b) FlowLayout
c) NullLayout d) GridLayout
b) JLabel
c) JButton
d) JFrame
b) JTextBox
c) JButton
d) Ninguno
b) readText
c) TextField
d) Ninguno
b) getText
c) setText
d) nullText
44
Java
a) Statement
b) ResulSet
c) Connection d) Ninguno
b) Statement
c) Connection d) Ninguno
Clave de Respuestas
1. d
2. c
3. b
4. c
5. a
6. d
7. a
8. c
9. c
10. a
45
PRUEBA DE AUTOEVALUACIN
1. Es propietaria de Java
a) Microsoft
b) Sun
c) Adobe
d) Macromedia
d) avg
d) Ninguno
d) Ninguno
se
Java
a) Class
b) Objetc
c) Public
d) Extends
13. Las clases accesibles solo para otras clases se declaran como
a) protected
b) public
c) private
d) package
14. Son mtodos utilizados dentro de una interface
a) pblicos
b) protegidos
c) paquete
d) abstractos
d) package
16. Objeto de una clase que representa a una ventana con bordes
a) JTextField
b) JForm
c) JFrame
d) Ninguno
BIBLIOGRAFA
SOLUCIONARIO DE AUTOEVALUACIN
Clave de Respuestas
46
Java
1. b
2. c
3. a
4. d
5. d
6. c
7. a
8. a
9. d
10. c
11. a
12. d
13. d
14. d
15. a
16. c
17. c
18. d
19. c
20. a
47
ANEXO 1
NETBEANS
NetBeans es un Entorno Integrado de Desarrollo (IDE, del ingls Integrated
Development Environment) utilizado para el desarrollo de aplicaciones Java. NetBeans
proporciona al usuario una amplia gama de funcionalidades: administracin de
proyectos, plantillas de programas, edicin de cdigo fuente, etc.
Requerimientos mnimos de hardware
Para la instalacin de Netbeans en su equipo debe considerar los siguientes
requerimientos mnimos que debe tener el equipo.
PC PII o posterior
Sistema Operativo Win98, WinXP
Memoria 128MB
Instalacin de NetBeans
1. Copie el archivo j2sdk-1_4_2_04-nb-3_6-bin-windows del CD al disco C: del
equipo.
2. Haga doble clic en el icono del archivo para iniciar la instalacin, luego pulse en
el botn Next para iniciar la instalacin.
Java
48
3. Elija la opcin Accept para aceptar la licencia de instalacin y los trminos del
mismo, luego pulse el botn Next.
Java
49
Iniciar NetBeans
1. Para iniciar el trabajo dentro del entorno de NetBeans, haga doble clic en
acceso directo del escritorio.
Java
50
Java
51
Java
Cmo crear una aplicacin Java
Una aplicacin Java es una Clase que puede ser ejecutada en cualquier plataforma.
Crearemos una aplicacin de Bienvenida como ejemplo. Para ello haga lo siguiente:
1. Pulse botn derecho en C:\TELESUP (Directorio Local)
2. Elija New
3. Haga clic en Java Main Class
52
Java
53
IMPORTANTE:
Repita los pasos del procedimiento anterior para crear las clases que se
muestran a continuacin (Cmo crear una aplicacin Java).
Ejecute la aplicacin para visualizar los resultados en el panel de salida
(Output).
No olvide que antes de realizar cualquier aplicacin Java debe mostrar una
carpeta como directorio local, no para cada aplicacin sino para todas las
aplicaciones que desee realizar.
Cuando termine la sesin, cierre todo y enve la carpeta que mont como
directorio local a su disquete.
Desarrollo de Aplicaciones con Sentencias de Control
Java
Estructura secuencial
Clase: SumaCifras
//Programa que calcula la suma de las cifras de un #
54
Pulse F6 para ejecutar la aplicacin. Luego ver un cuadro de dilogo donde debe
ingresar un nmero de 3 cifras.
Estructura ifelse
Java
Clase: NumeroPrimo
//Programa que determina si un nmero es primo o no
55
Pulse F6 para ejecutar la aplicacin. Luego ver un cuadro de dilogo donde debe
ingresar un nmero para determinar si es primo o no.
Estructura while
Java
Clase: NumeroPrimo
//Programa que determina si un nmero es primo o no
56
Pulse F6 para ejecutar la aplicacin. Luego ver un cuadro de dilogo donde debe
ingresar un nmero para calcular el factorial del nmero.
Java
Estructura while
Clase: NotasConHistograma
//Programa que genera notas aleatorias con histograma y uso de la clase Math,
//mtodos round y random.
57
Estructura while
Java
Clase: LanzaDados
//Simula el lanzamiento de 3 dados empleando la clase Math y los mtodos round y
//random.
58
Java
Clase String
Clase: Comparacin
//Compara si dos objetos son iguales y si tienen el mismo valor
59
Java
Clase Gregorian Calendar
Clase: DateAdd
//Agrega das a una fecha y visualiza la nueva fecha
60
Java
Clase SimpleDateFormat (Pag. 31)
Clase: SimpledateForm
//Imprime una fecha en formato simple definido por el usuario
//empleando la clase SimpleDateFormat
61
Java
Arreglos en Java (Pag. 31)
Clase: Tridimensional
//Aplicacin que permite almacenar notas de tres cursos para tres alumnos
//empleando un arreglo tridimensional.
62
Java
63
Java
64
Java
1. Pulse botn derecho en cualquier componente
2. Elija la opcin Show Component Names
65
Estableciendo el estilo de diseo
Para realizar un diseo libre del formulario active la opcin NullLayout, para ello haga
lo siguiente:
1. Pulse botn derecho en el formulario
2. Elija la opcin Set Layout
3. Haga clic en Null Layout
Java
66
Propiedad
text
text
text
text
text
text
text
text
text
Valor
Nmero1
Nmero2
Resultado
(Borrar)
(Borrar)
(Borrar)
Suma
Resta
Multiplica
Java
JButton4
JFrame
text
title
Divide
Matemtica Bsica
67
Renombrar Componentes
El nombre de los componentes se define para efectos de utilizarlos en el cdigo de la
aplicacin. Para renombrar componentes haga lo siguiente:
1. Pulse botn derecho en el componente
2. Elija la opcin Rename
3. Escriba el nombre del componente
Defina los siguientes nombres de los componentes. Estos nombres sern utilizados en
el cdigo de la aplicacin.
Componente
Nombre
Java
JTextField1
JTextField2
JTextField3
JButton1
JButton2
JButton3
JButton4
Txt1
Txt2
Txt3
BtnSuma
BtnResta
BtnMultiplica
BtnDivide
Cuando haya terminado de definir los nombres y los textos de los componentes, el
formulario debe tener el siguiente aspecto.
68
Java
69
Pulse F6 para ejecutar la aplicacin, luego ingrese los datos y pulse en los botones
para realizar los clculos correspondientes.
Componente
JLabel1
Propiedad
text
Valor
Nombre
Java
JLabel2
JTextField1
JTextField2
JButton1
JButton2
JButton1
JFrame
text
text
text
text
text
text
title
Email
(Borrar)
(Borrar)
Agregar
Borrar lista
Suma
Contactos
Nombre
Txt1
Txt2
BtnAgregar
BtnBorrar
70
Java
6. Codifique la aplicacin. Haga doble clic en los botones y escriba el cdigo
Java de la aplicacin.
71
Pulse F6 para ejecutar la aplicacin, luego ingrese los datos y pulse en el botn
Agregar para agregar los datos en las Listas. Pulse en el botn Borrar Listas, para
quitar los elementos de las listas.
Java
72
Java
73
Tabla Secundaria
Asistencias
Empleados
Tipo de Relacin
Uno a Uno
Uno a Varios
Java
Cdigo del botn Conectar BD
74
Java
Cdigo del botn Anterior
Formulario Empleados
75
Java
Cdigo del botn Desconectar BD
Formulario Categoras
76
Java
Cdigo del botn Conectar BD
77
Java
Cdigo del botn Siguiente
78
Cdigo del botn Anterior
Botn Agregar
Botn Guardar
Java
Botn Modificar
79
Botn Buscar
Botn Eliminar
Java
80
Java
Mtodos para limpiar las cajas de texto y mostrar datos
81
El Formulario Principal
Es el formulario MDI que permite gestionar la BD MultiDatos
Java
82