Вы находитесь на странице: 1из 82

Lenguaje de Programacin

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

Con el estudio del curso, logrars:

Conocer el lenguaje de programacin Java, sus fundamentos, sus


estructuras de control de programa, y sus clases.

Conocer los Fundamentos de la Programacin Orientada a Objetos, Las


clases de conversin de tipos de datos y arreglos.

Conocer los Fundamentos de la programacin orientada a Objetos y la


Programacin Visual.

Conocer los Fundamentos de la Programacin Visual en Java y la


conectividad a una Base de Datos.

Java

PRIMERA UNIDAD DIDCTICA


INTRODUCCIN A JAVA

1.1.

INTRODUCCIN A LA TECNOLOGA JAVA


1.1.1. Historia
Java fue desarrollado por james Goslin para un proyecto de televisin
interactiva y sale al mercado aplicndolo para Internet. Java es propiedad de
Sun Microsystems y su lanzamiento coincide con la difusin masiva de Internet.
Se dice que fue ms novedoso e impactante el hecho del nacimiento del
lenguaje dentro de Internet que el mismo Internet y Netscape juntos porque se
poda ejecutar una aplicacin java de un documento HTML (Applet).
1.1.2. Caractersticas
Portable: Se ejecuta sobre cualquier Sistema Operativo y Hardware.
Compilado e Interpretado: Se usa un compilador especial para la
generacin de cdigo ejecutable y un intrprete para su ejecucin.
Seguro: Tiende a cero el hecho de que la aplicacin deje de funcionar
porque quien administra la memoria y los recursos de la aplicacin es el
mismo Java, no permite que el programador acceda a la memoria.
Sencillo: Para aprende el lenguaje se requiere de un moderado esfuerzo
porque la arquitectura del lenguaje y sus libreras son totalmente
organizadas y simples.
Mltiples Tecnologas: Con Java se puede desarrollar aplicaciones
cliente servidor con el interfaz grfico visual del mismo Java, tambin
aplicaciones Web centralizadas en 2, 3, y n capas, aplicaciones Wap y
muchas otras aplicaciones ms.
1.1.3. Funcionamiento
El cdigo fuente puede ser editado en cualquier editor de texto, luego se
compila con el compilador del Jdk de Sun Microsystems y se genera un
archivo de extensin class que es un conjunto de bits llamado bytecodes,
es por esto que se puede ejecutar sobre cualquier plataforma, finalmente
para su ejecucin se necesita de un intrprete llamado Mquina Virtual
que tambin forma parte del Jdk.
La aplicacin utiliza libreras del Jdk que no sern incluidas en el cdigo
fuente, pero que s sern utilizadas al ser ejecutadas.

Java

3
1.1.3.1.

Qu es el JDK?

JDK (Java Development Kit) es un conjunto de APIs y utilitarios que


permiten ejecutar aplicaciones hechas en java, dentro de ste se
encuentran principalmente:
Java Virtual Machine (Java VM), Compilador de java, utilitarios para
RMI, Compresor jar, etc.
Java Applications Programming Interface (Java API)
1.1.4.

Java y sus Tecnologas

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.

FUNDAMENTOS DEL LENGUAJE


1.2.1. Las Variables

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

32-bit IEEE 754


64-bit IEEE 754

Coma flotante de precisin simple


Coma flotante de precisin doble

16-bit Carcter
true o false

Un slo carcter
Un valor booleano (verdadero o falso)

Tipos de datos referenciados


Los tipos referenciados se llaman as porque el valor de una variable de
referencia es una referencia (un puntero) hacia el valor real. En Java
tenemos los arrays, las clases y los interfaces como tipos de datos
referenciados.
1.2.4. Nombres de Variables
Un programa se refiere al valor de una variable por su nombre. Por
convencin, en Java, los nombres de las variables empiezan con una
letra minscula (los nombres de las clases empiezan con una letra
mayscula).
Un nombre de variable Java:

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.

Por convencin, los nombres de variables empiezan con una letra


minscula. Si una variable est compuesta de ms de una palabra,
como 'nombreDato' las palabras se ponen juntas y cada palabra
despus de la primera empieza con una letra mayscula.
1.2.5. Declaracin de variables
//Declara una variable de tipo double llamada sueldoBruto
double sueldoBruto;
//Declara tres variables a, b, c de tipo int
int a, b, c;
//Declara una variable de tipo int llamada edad
int edad;
//Declara una variable de tipo int llamada annio_nacimiento
int annio_nacimiento;
//Declara una variable de tipo char llamada categora
char categoria;
//Declara tres variable de tipo double
double impuesto, precio, descuento;
1.2.6. Sentencias de Asignacin
Una sentencia de asignacin se utiliza para asignar un valor a una
variable. El valor situado a la derecha del signo igual se almacenada en
la variable situada a la izquierda del signo igual.
variable = expresin;
Importante:
La variable que recibe la asignacin pierde su valor actual .
El valor producido por la expresin debe ser del mismo tipo de dato
de la variable que recibe la asignacin.

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

Adems, existen dos operadores de atajos aritmticos, ++ que


incrementa en uno su operando, y -- que decrementa en uno el valor de
su 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

1.2.7.2. Operadores Relacionales


Operador
>
>=
<
<=
==
!=

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

1.2.7.3. Operadores Lgicos


Operador
&&
||

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

1.2.7.5. Precedencia de Operadores en Java


La tabla siguiente muestra la precedencia asignada a los operadores de
Java. Los operadores se han listado por orden de precedencia de mayor
a menor. Los operadores con mayor precedencia se evalan antes que
los operadores con una precedencia relativamente menor. Los
operadores con la misma precedencia se evalan de izquierda a
derecha.
Operadores sufijo
operadores unarios
Creacin o tipo
multiplicadores
suma/resta
desplazamiento
Relacionales
Igualdad
bitwise AND
bitwise exclusive OR
bitwise inclusive OR
AND lgico
OR lgico

[] . (params) expr++ expr-++expr --expr +expr -expr ~ !


new (type)expr
* / %
+ << >> >>>
< > <= >= instanceof
== !=
&
^
|
&&
||

Java
Condicional
Asignacin

?:
= += -= *= /= %= ^= &= |= <<= >>= >>>=

1.2.8. Sentencias de Control de flujo en Java


Las sentencias de control de flujo determinan el orden en que se ejecutarn las
otras sentencias dentro del programa. El lenguaje Java soporta varias
sentencias de control de flujo.

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

//Cdigo para la accin respuesta = OK true}


} else {

//Cdigo para la accin respuesta no igual a OK false


}
1.2.8.3. La sentencia ifelse if
int puntuacion;
String nota;
if (puntuacion >= 90) {
nota = "Sobresaliente";
} else if (puntuacion >= 80) {
nota = "Notable";
} else if (puntuacion >= 70) {
nota = "Bien";
} else if (puntuacion >= 60) {
nota = "Suficiente";
} else {
nota = "Insuficiente";
}
1.2.8.4. La sentencia switch
La sentencia switch se utiliza para realizar sentencias condicionalmente
basadas en alguna expresin. Por ejemplo, queremos mostrar el
nombre de un mes basndose en su nmero entero equivalente.

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
//

Para establecer comentarios de una sola lnea o comentarios a la


derecha

/*

Comentarios en bloque
*/

/**

Comentarios para documentacin


**/

1.2.9. Estructura general de un programa en Java


import javax.swing.*;
public class Demostracion{
//Declaracin global
String nombre;
//Mtodo principal
public static void main(String[] args){
//Asignando un valor a la variable nombre
nombre=Javier Rosales;
//Mostrando en pantalla un mensaje de bienvenida
System.out.println(Bienvenido a Java + nombre);
}
}
1.3.

PROGRAMACIN ORIENTADA A OBJETOS EN JAVA


El desarrollo de la OOP empieza a destacar durante la dcada de lo 80
tomando en cuenta la programacin estructurada, a la que engloba y dotando
al programador de nuevos elementos para el anlisis y desarrollo de software.
La programacin Orientada a objetos (POO) es una forma especial de
programar, ms cercana a como expresaramos las cosas en la vida real que
otros tipos de programacin.
En resumen, la programacin estructurada presta atencin al conjunto de
acciones que manipulan el flujo de datos (desde la situacin inicial a la final),
mientras que la programacin orientada a objetos presta atencin a la
interrelacin que existe entre los datos y las acciones a realizar con ellos.
1.3.1 Cmo se piensa en Objetos?
Pensar en trminos de objetos es muy parecido a cmo lo haramos en la
vida real. Por ejemplo vamos a pensar en una persona para tratar de
modelizarlo en un esquema de POO. Diramos que la persona es el
elemento principal que tiene una serie de caractersticas, como podran
ser el nombre, la edad, el sexo, etc. Adems tiene una serie de

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

1.3.3.2. Los Mtodos de una clase


Tiene que ver con las acciones o responsabilidades que realiza el
objeto. Los objetos disponen de una serie de funcionalidades (Acciones)
asociadas.
Ejemplo: El objeto Persona tiene los siguientes mtodos: comer,
caminar, dormir, etc.
Creacin de Mtodos
public void comer()
{
// como come
}

// mtodo comer

public void caminar()


{
// como camina
}
public boolean cualestusexo()
{
return sexo;
propiedad
}

// mtodo caminar

// mtodo cualestusexo
// retorna el valor de una

1.3.3.3. Los Estados de una Clase


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.
Creacin de Los Estados
public persona(String a, int e, boolean s)
{

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;

// El objeto Martha recibe la referencia de p2

1.3.3.6. Variables Estticas


Son aquellas variables cuyo mbito pertenecen a toda la clase, es decir
sus valores siempre van a ser los mismos para todos los objetos
instanciados.
Declaracin de una variable esttica:
public static int sumaDeEdades;
public static int numerodePersonas;
1.3.3.7. Mtodos Estticos
Son aquellas acciones o funciones que pertenecen exclusivamente a la
clase y no a un objeto instanciado en particular.
Creacin de un mtodo esttico
public static double promedio()
{

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.

CLASES BASE: CLASE MATH Y CLASE STRING


1.4.1. La Clase Math
Es una de las clases principales de Java ubicada en el paquete java.lang. Esta
clase contiene una serie de mtodos estticos que nos ofrecen algunas
funciones matemticas importantes, a las que podemos acceder desde
cualquier otra clase de la siguiente manera:

Math.abs(-5)
Clase de Java

Mtodo esttico

1.4.2. Mtodos estticos de la Clase Math


Mtodo Esttico
abs()
acos()
asin()
atan ()
atan2(,)
ceil ()
floor ()
round ()
rint ()
cos()
Sin()
tan()

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

Calcula la funcin exponencial

log()

Calcula el logaritmo natural (base e)

max ( , )

Obtiene el mximo de dos argumentos

min( , )

Obtiene el mnimo de dos argumentos

17

Java
random ()

Nmero aleatorio entre 0.0 a 1.0

pow ( , )

Devuelve el primer argumento elevado al


segundo

sqrt ()

Devuelve la raz cuadrada

toDegrees ()

Pasa de radianes a grados

toRadians()

Pasa de grados a radianes

18

1.4.3. La Clase String


La Clase String es tambin una de las clases principales de Java,
ubicada en el paquete java.lang. Esta clase contiene una serie de
mtodos estticos orientados al manejo de las cadenas de caracteres.
Recordemos que en Java una cadena de caracteres (String) no es un
dato primitivo, sino mas bien corresponde a una clase, por lo tanto
podemos decir que todas las cadenas son objetos instanciados de la
clase String.
Creacin de cadenas de texto:
Primera Forma:
String Apellidos;
Apellidos=Vargas Martinez;
Segunda Forma:
String Apellidos;
Apellidos=new String(Vargas Martinez);
Cmo acceder a un mtodo esttico de la clase String?
Para acceder a un mtodo esttico de la clase String, debemos hacerlo
desde uno de los objetos instanciados.
Ejemplo:
int n=Apellidos.length()
1.4.4.

//Devuelve
//apellidos

la

longitud

de

Mtodos estticos de la Clase String

Mtodo
Esttico

Significado

length()

Devuelve la longitud de una cadena

startsWith

Devuelve verdadero si la cadena empieza con

reverse()

Devuelve la cadena en sentido inverso

la

cadena

Java
ValueOf

Devuelve la representacin como String

IndexOf( , )

Devuelve la posicin de un carcter dentro de una


cadena
Extrae una determinada cantidad de caracteres de una
cadena

Substring( , )
toLowerCase()

Convierte una cadena a maysculas

toUpperCase()

Convierte una cadena a minsculas

trim()

Elimina espacios en blancos antes y despus de la


cadena
Devuelve el carcter asociado a una posicin.

charAt( )

19

PRUEBA DE AUTOEVALUACIN I
1. Es propietaria de Java
a) Microsoft

b) Sun

c) Adobe

d) Macromedia

2. Los archivos compilados que generan ceros y unos, se denominan


a) ByteCodes

b) Clase

c) Intrprete

d) Compilador

3. El interprete que ejecuta la aplicacin Java se denomina


a) Class

b) Compiler

c) JavaVM

d) Ninguno

c) JDBC

d) Frames

4. No es una tecnologa de Java


a) Servlets

b) Applets

5. La variable que determina el nmero de notas ingresadas


denomina
a) Contador

b) Operador

c) Clase

se

d) Acumulador

6. short, byte, int son tipos de datos:


a) Bsicos

b) Primitivos c) Numricos d) Referenciales

7. Realiza una accin mientras se cumpla una determinada condicin


a) if

b) switch

c) for

d) while

8. Realiza acciones un nmero determinado de veces controlado por


contador
a) while

b) for

c) if

9. No es un mtodo de la clase Math

d) switch

Java
a) pow

b) round

c) sqrt

d) avg

10. Extrae una determinada cantidad de caracteres de una cadena


a) length

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

SEGUNDA UNIDAD DIDCTICA


FUNDAMENTOS DE JAVA Y LA POO

2.1.

CONVERSIN DE TIPOS DE DATOS (Wrappers y Casting)


Los Wrappers o envolturas son clases diseadas para ser un complemento de
los tipos primitivos. En Java podemos envolver o proteger nuestros datos
primitivos a travs de estas clases, con la finalidad de convertir datos o para
transferir datos a travs de una red
2.1.1. Existe una clase Wrapper para cada uno de los tipos primitivos:
Dato Primitivo
int.
Double
Long
short
char
bolean

Wrapper
Integer
Double
Long
Short
Carcter
Bolean

Ejemplos prcticos con Wrappers


//Se crea la variable nmero, de tipo int (es un dato primitivo)
int numero=15;
//valor es un objeto instanciado de la clase o wrapper Integer y
//recibe un dato primitivo 15
Integer valor=new Integer(15);
// El mtodo intvalue de un Wrapper nos permite acceder al dato
//primitivo inmerso en l.
int num=valor.intvalue();

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.

LAS FECHAS EN JAVA


A diferencia de otros lenguajes de programacin, Java trata a las fechas como
objetos instanciados de cualquiera de las siguientes clases:

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

Tienen las mismas funciones que en la Clase String

el

2.2.3. Clases Calendar y GregorianCalendar


La clase Calendar asocia una fecha a un Sistema de Calendario
especfico, con este fin, Java nos provee la sub-clase:
GregorianCalendar la cual est basada en el Calendario Gregoriano
que se usa actualmente en la mayora de pases.
Dispone de mtodos para convertir objetos de la clase Date en enteros
que representan fechas y horas concretas.
Nota: Para utilizar estas clases previamente las debe importar, colocando en la
parte superior de la clase, las siguientes lneas:
import java.util.Calendar;
import java.util.GregorianCalendar;
2.2.4. La Clase GregorianCalendar
public static void main(String arg[ ]) {
Date d = new Date();
GregorianCalendar gc = new GregorianCalendar();
gc.setTime(d);
System.out.println("Year: "+gc.get(Calendar.YEAR));
System.out.println("Month: "+gc.get(Calendar.MONTH));
System.out.println("Hora: "+gc.get(Calendar.HOUR));
}

2.2.5. Mtodos y Constantes de la Clase Calendar


La variable int AM_PM puede tomar dos valores: las constantes
enteras AM y PM.
La variable int DAY_OF_WEEK puede tomar los valores int SUNDAY,
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY y
SATURDAY.
La variable int MONTH puede tomar los valores int JANUARY,
FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST,
SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER. Para hacer los
programas ms legibles es preferible utilizar estas constantes
simblicas que los correspondientes nmeros del 0 al 11.
La variable miembro HOUR se utiliza en los mtodos get() y set() para
indicar la hora de la maana o de la tarde (en relojes de 12 horas, de 0
a 11).
La variable HOUR_OF_DAYsirve para indicar la hora del da en
relojes de 24 horas (de 0 a 23).
Las
variables
DAY_OF_WEEK,
DAY_OF_WEEK_IN_MONTH,
DAY_OF_MONTH
(o
bien
DATE),
DAY_OF_YEAR,
WEEK_OF_MONTH, WEEK_OF_YEAR tienen un significado
evidente.

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

2.2.7. Incrementar una cantidad de tiempo a una fecha


public static void main(String arg[ ]) {
GregorianCalendar gc=new GregorianCalendar();
// Obtenemos da y mes de fecha actual
Calendar cal = Calendar.getInstance();
Date date = new Date();
cal.setTime(date);
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH);
int day = cal.get(Calendar.DAY_OF_MONTH);
// Sumamos 20 das al campo da en el Calendar
cal.set(Calendar.DAY_OF_MONTH, day+20);
month = cal.get(Calendar.MONTH);
day = cal.get(Calendar.DAY_OF_MONTH);
year=cal.get(Calendar.YEAR);
System.out.println(day+"/"+(month+1)+"/"+year);
}
2.2.8. Formato de Fechas
Formatear una fecha consiste en personalizar la presentacin de las
fechas. Para este fin contamos con la clase SimpleDateFormat, la cual
debemos importarla desde el paquete java.text.SimpleDateFormat
public static void main(String arg[]) throws ParseException {
SimpleDateFormat sdf1 = new SimpleDateFormat("dd-MM-yyyy
hh:mm:ss");
SimpleDateFormat sdf2 = new SimpleDateFormat("dd-MM-yy");
// De String a Fecha
Date d = sdf1.parse("12-04-1968 11:23:45");
//De Date a String

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

Se accede a los elementos de un array con los corchetes [ ] y un ndice que


vara de 0 a length-1. Los arreglos en Java pueden ser una o muchas
dimensiones.
2.3.1. Uso de Arreglos
Declaracin de un arreglo:
int notas[ ];
String apellidos[ ];
Persona lista[ ];
Otra forma de declaracin:
int[ ] notas;
String[ ] apellidos;
Persona[ ] lista;
Inicializacin de un Arreglo:
notas=new int[5];
apellidos=new String[5];
lista=new Persona[5];
La declaracin y la inicializacin de un arreglo se pueden realizar
en una sola lnea:
int[ ] notas=new int[5];
String[ ] apellidos=new String[5];
Persona[ ] lista=new Persona[5];
Notas
Cuando se definen arreglos con datos primitivos, los elementos de
un array se inicializan al valor por defecto del tipo correspondiente
(cero para valores numricos, el carcter nulo para char, false
para boolean, null para Strings y para referencias).
Los arreglos por ser objetos que extienden de la clase Object,
disponen de los mtodos: equals, compareTo, after, before, etc.

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

//Programa que determina si un nmero es primo o no


import javax.swing.*;
public class NumeroPrimo{
public static void main(String[] args) {
//Definiendo variable para el nmero
String c;
//Ingresando numero como texto
c=JOptionPane.showInputDialog(null,"Ingrese nmero","",1);
//Convirtiendo el numero a entero
int n=Integer.parseInt(c);
//Determinando si el # es primo o no
if (n%1==0 && n%n==0 && n%2!=0){
System.out.println("El # "+n+" es PRIMO");
}else{
System.out.println("El # "+n+" No es PRIMO");
}
}
}
//Programa que determina el revs de un nmero
import javax.swing.*;

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

//Calcula la altura de un proyectil con la formula


//h=50+200t+5t
public class Proyectil{
public static void main(String[] args){
//Definiendo variables iniciales
double h=0,t=0;

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

//Genera notas aleatorias con histograma


public class NotasConHistograma {
public static void main(String[] args) {
//Definiendo variables contador y control de notas
int c=0,i=1;
//Imprimiendo la cabecera
System.out.println("Nota"+"\t"+"Histograma");
System.out.println("======================");
//Bucle para establecer notas
while(i<=50) {
//Generando las notas

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

2. Mecanismo que permite convertir datos numricos


a) Math

b) Integer

c) Casting

d) Double

3. Mtodo que convierte cadenas a nmeros


a) int

b) double

c) float

d) valueOf

4. import java.util.Date permite trabajar con:


a) Fechas

b) Utilitarios

c) Java

d) Ninguno

5. La variable int DAY_OF_WEEK puede tomar los valores de:


a) Semanas

b) Das

c) Meses

d) Enteros

6. La instruccin String Apellidos[ ] declara un arreglo de tipo


a) Cadena

b) Entero

c) Decimal

d) Nulo

7. Mtodo que establece la cantidad de milisegundos transcurridos


a) setTime

b) getTime

c) Time

d) Date

8. Clase que permite dar formato a las fechas


a) Date

b) Calendar

c) Month

d) Ninguno

9. Con qu valor se inicializa el siguiente arreglo: int[ ] notas

29

Java
a) 0

b) Null

c) 1

d) Ninguno

10. Los arrays se extienden de la clase


a) Array

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

TERCERA UNIDAD DIDCTICA


FUNDAMENTOS DEL LENGUAJE JAVA Y
LA PROGRAMACION VISUAL
3.1.

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

3.1.1. Herencia en Java


Para indicar que una clase deriva de otra se utiliza la palabra extends,
seguida del nombre de la clase.
Ejemplo:
public class Alumno extends Persona { ... }
Nota: Aqu se est creando la clase Alumno la cual extienda (hereda)
de la clase Persona. Por tanto la clase Alumno habr heredado las
propiedades y mtodos de la clase Persona.
Importante:
Todas las clases de Java creadas por el programador tienen una
super-clase. Cuando no se indica explcitamente una super-clase con
la palabra extends, la clase deriva de java.lang.Object, que es la clase
raz de toda la jerarqua de clases de Java. Como consecuencia, todas
las clases tienen algunos mtodos que han heredado de Object.
3.2.

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:

Existe informacin confidencial a la cual nicamente nosotros podemos


acceder y no otras personas. Este tipo de informacin tiene un nivel de
seguridad muy alto. (Para Java es acceso prvate)

Existe otro tipo de informacin que solo es de conocimiento de nuestro


entorno familiar y no del resto de personas. Este tipo de informacin
cuenta con un nivel de acceso menos restringido. (Para Java es acceso
package)

Existe otro tipo de informacin que es de conocimiento nicamente de


nuestros familiares y allegados, ms no de otras personas desconocidas.
Este tipo de informacin cuenta con nivel de acceso con menos
restriccin que el caso anterior. (Para Java es acceso protected)

Existe otro tipo de informacin que es de conocimiento pblico, todos


podemos acceder a ello. En este caso no existe ningn tipo de
restriccin. (Para Java es acceso public)
3.2.1. Encapsulamiento en Java
Es el mecanismo que permite definir el tipo de nivel de acceso a la
informacin de los objetos, (clases, mtodos y propiedades).
En Java los niveles de encapsulamiento estn dadas de la siguiente
forma:

Las clases pueden ser declaradas como pblicas (public) y como


package (accesibles slo para otras clases del package).

31

Java

Las propiedades y los mtodos pueden ser: public, private,


protected y package. De esta forma se puede controlar el acceso
y evitar un uso inadecuado.
Paquete m
A

Clase en la que se define el


nivel de encapsulamiento
B
A

Paquete n

32
C
A

La Clase C
extiende de B

D
B
A

En base al grfico anterior, los niveles de encapsulamiento seran de la


siguiente forma:

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

INTERFASES - MTODOS ABSTRACTOS


3.3.1. Interfases
En Java una interfaz es un prototipo de clase que define la
funcionalidad de un objeto pero no lo implementa.
3.3.2. Caractersticas de una Interfaz:
Los mtodos de una interfaz deben ser abstractos. No representa a un
objeto sino a un Grupo de Objetos. Por lo tanto no usan constructores,
ni mtodos estticos, ni atributos de Objeto. (Excepto variables
constantes de tipo FINAL)
En este nivel no podemos garantizar como lo hace, pero si sabemos
que hace.
3.3.3. Interfaz en Java
Se debe reemplazar la palabra class por interface.
Ejemplo:
A continuacin estamos creando una interfaz de nombre Reproducible.

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

Este es un mtodo abstracto, no usa llaves (No tiene implementacin).


No tienen definido el Cmo, pero si el Qu
3.3.5. Aplicacin Prctica de una Interfaz
Para darle un uso prctico a la interfaz debemos crear una clase que
herede de dicha interfaz, en la cual se detallar la funcionalidad de los
mtodos declarados en la interfaz.
Cmo realizar dicha herencia?
public class MP3 implements Reproducible {
// Aqu debe implementarse el mtodo play, al cual
// se hizo mencin de manera abstracta en la interfaz
}
Diagrama de una Interfaz

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";

//Ojo: NO APLICA - Si lo //descomenta


arroja error

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

/** Creates a new instance of A3 */


public A3() {
}
}

PRUEBA DE AUTOEVALUACIN III


1. Es una clase derivada que contiene un objeto de la superclase
a) sub-clase

b) clase

c) extends

d) Ninguno

2. Facilita la reutilizacin de cdigo previamente desarrollado


a) Clase

b) Encapsulamiento c) Herencia

d) Mtodo

3. Para indicar que una clase se deriva de otra se emplea la palabra


a) Class

b) Objetc

c) Public

d) Extends

4. Todas las clases creadas por el programador tienen una


a) herencia

b) sub-clase

c) super-clase d) encapsulamiento

5. Las clases accesibles solo para otras clases se declaran como


a) protected

b) public

c) private

d) package

6. Es un prototipo de clase que define la funcionalidad de un objeto


a) mtodo

b) propiedad

c) interface

d) herencia

7. Son mtodos utilizados dentro de una interface


a) pblicos

b) protegidos

c) paquete

d) abstractos

8. Define nuevas clases a partir de clases existentes


a) Herencia

b) Clase

c) Mtodo

9. Con qu palabra se hereda una interfaz

d) Instancia

Java
a) implements

b) extends

c) protected

d) package

10. No representa a un objeto sino a un Grupo de Objetos. Es una


caracterstica de:
a) mtodo

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

CUARTA UNIDAD DIDCTICA


PROGRAMACIN VISUAL EN JAVA Y
JDBC
4.1.

COMPONENTES SWING (Parte1)


Comprenden todos los componentes utilizados para una interfaz grfica de
usuario desde botones, barras de men, dilogos y ventanas hasta cajas de
texto, barras de progreso, paneles con pestaas y listas. Este componente se
encuentra ubicado en el paquete javax.swing
Los componentes Swing se encuentran disponibles a partir de la versin 2.0 de
Java (Java II), en la versin 1.0 solo existan los componentes AWT para
construir interfaces grficas.
Los componentes Swing a diferencia de los componentes AWT no dependen
en absoluto del Sistema Operativo, los controles son dibujados por el mismo
Java, esta ventaja nos da un mayor control sobre su apariencia,
independientemente de lo que nos permita el sistema operativo.
4.1.1. JFrame
Un objeto de la clase JFrame representa a una ventana con bordes,
titulo y botones que permiten cerrar y maximizar la ventana. (En otros
lenguajes es conocido como Formulario)
Creacin de un JFrame:

Click derecho sobre el paquete de trabajo


Escoger: New / JFrame Form
Ingrese el nombre de JFrame, por ejemplo: JFrmVentas

Nota: Aparecer dos fichas: JFrame1 /JFrame1 [Form]

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

BorderLayout: Este layout tiene cinco zonas predeterminadas:


son: Norte (NORTH), Sur (SOUTH), Este (EAST), Oeste (WEST)
y Centro (CENTER). Este tipo de layouts son utilizados
mayormente para los JPanel (Paneles que dividen el formulario
en reas o sectores. BorderLayout permite indicar la ubicacin de
cada uno de estos paneles)
FlowLayout: Los objetos se van colocando en filas en el mismo
orden en que se aadieron al contenedor. Cuando se llena una
fila se pasa a la siguiente. (Los JPanel tienen este tipo de Layout
por Defecto)
GridLayout: Como su propio nombre indica crea un Grid (malla)
y va aadiendo los componentes a las cuadrculas de la malla de
izquierda a derecha y de arriba abajo. Todas las cuadrculas
sern del mismo tamao y crecern o se harn ms pequeas
hasta ocupar toda el rea del contenedor.
GridBagLayout: Es un tipo de layout Grid mejorado, con la
ventaja de permitirnos dividir o unir celdas del Grid, y ubicar
controles en celdas especficas del Grid.
NullLayout: Representa un tipo de diseo sin ningn tipo de
Layout.

4.1.4. Componentes Swing

JLabel: No es ms que una etiqueta de texto que podemos


colocar al lado de cualquier componente para darle una
indicacin al usuario de cul es la funcin de dicho componente.
JTextField: Est pensado para obtener texto del usuario. El
usuario escribir en l y cuando pulse ENTER podremos disponer
del texto que escribi. nicamente se puede recoger una lnea de
texto. Tiene mtodos para recoger el texto del usuario, poner un
texto en l, recoger solo el texto seleccionado, seleccionar una
parte del texto, insertar texto, cortar texto, pegar texto, etc.
JButton: Este control es un botn de comando el cual responde
con una accin ante un evento click. En Swing este evento es
conocido como ActionPerformanced.
JMenuBar: Es un componente que permite generar los tpicos
mens similares a los que contienen diversas aplicaciones de
escritorio. En estos mens se pueden aadir CheckBoxes y
RadioButtons.

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

4.1.6. Invocar y Cerrar formularios


Invocar a un formulario:
Se crea una instancia del JFrame y luego se invoca el objeto
instanciado con el mtodo show().
Ejemplo:
JFrmVentas frm=new JFrmVentas();
frm.show();
Cerrar un Formulario:
System.exit(0); // Cierra toda la aplicacin
dispose();
// Cierra el formulario actual
4.2.

COMPONENTES SWING (Parte2)


4.2.1. JMenuBar
Un objeto de la clase JMenuBar permite crear una barra de opciones
principales para la interfaz grfica, similar a una aplicacin visual de
escritorio.
Creacin de un JMenuBar:

En la Paleta (Palette), haga Click en JMenuBar.

Haga Click sobre el JFrame


Agregar tems al JMenuBar

Click derecho en el JMenuBar agregado al JFrame.

Elija Add / JMenuItem

En el panel Properties, elija text y escriba el texto para el item del


JMenuBar.
4.2.2. JOptionPane
Un objeto de la clase JOptionPane permite crear cajas de dilogo para
ingreso de datos, cajas de dilogo de mensajes, caja de dilogo de
confirmacin, etc.

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

Click derecho en el directorio particular

Elija New / All Templates

Expanda la carpeta Java GUI Forms

Expanda la carpeta Sample Forms y elija MDI Application

Pulse en el botn Siguiente, escriba el nombre del MDI.

Pulse el botn Finish.


4.3.

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&lt;=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.

JDBC Conexin a una Base de Datos


4.4.1. Definicin de JDBC
Consiste en un conjunto de clases e interfaces escritos en Java que
ofrecen el acceso a bases de datos. Se encuentra ubicado en el
paquete java.sql. Debido a que JDBC est escrito completamente en
Java tambin posee la ventaja de ser independiente de la plataforma

4.4.2. Funciones del JDBC

Establecer una conexin con una base de datos


Enviar sentencias SQL
Manipular los datos
Procesar los resultados de la ejecucin de las sentencias

4.4.3. Conexin con una Base de Datos de MS-Access

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

En este caso, no es necesario crear un API adicional ODBC, por la


ventaja de la arquitectura del SQL-Server, el cual es un Servidor de
Base de Datos.

43

Java
4.4.5. Interfaces del JDBC

Connection: Este objeto se encarga de gestionar la conexin con la


base de datos. Posee mtodos y Propiedades que nos permiten
obtener informacin y configurar la conexin de la Base de Datos.

Statement: Este objeto se encarga de establecer y ejecutar


comandos basados en Lenguaje de Consultas SQL (Select, Insert,
Delete y Update)

Resultset: Este objeto se encarga de manejar y representar al


esquema de datos con el cual se desea trabajar. Un esquema de
datos est representado por un conjunto de registros que cumplen
con un determinado criterio o condicin.

PRUEBA DE AUTOEVALUACIN IV
1. Son componentes que permiten crear interfaces grficas de usuario
a) awt

b) swing

c) label

d) a y b

2. Objeto de una clase que representa a una ventana con bordes


a) JTextField

b) JForm

c) JFrame

d) Ninguno

3. Dan la posibilidad de trabajar en base a un diseo


a) JDesign

b) Layout

c) JTextBox

d) JLabel

4. Permite realizar un diseo libre de la interfaz grfica


a)FullLayout

b) FlowLayout

c) NullLayout d) GridLayout

5. Permite ingresar texto a travs de la interfaz grfica de usuario


a) JTextField

b) JLabel

c) JButton

d) JFrame

6. Se emplea para mostrar mensajes en cualquier lugar del formulario


a) JMenu

b) JTextBox

c) JButton

d) Ninguno

7. Mtodo que permite capturar datos de un JTextField


a)getText

b) readText

c) TextField

d) Ninguno

8. Mtodo que permite establecer texto en controles de texto y etiquetas


a) writeText

b) getText

c) setText

9. Interfaz que gestiona la conexin con la BD

d) nullText

44

Java
a) Statement

b) ResulSet

c) Connection d) Ninguno

10. Maneja y representa el esquema de datos con el cual se desea trabajar


a) ResultSet

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

2. El interprete que ejecuta la aplicacin Java se denomina


a) Class
b) Compiler c) JavaVM
d) Ninguno
3. La variable que determina el nmero de notas ingresadas
denomina
a) Contador
b) Operador c) Clase
d) Acumulador
4. Realiza una accin mientras se cumpla una determinada condicin
a) if
b) switch
c) for
d) while
5. No es un mtodo de la clase Math
a) pow
b) round
c) sqrt

d) avg

6. Mecanismo que permite convertir datos numricos


a) Math
b) Integer
c) Casting
d) Double
7. import java.util.Date permite trabajar con:
a) Fechas
b) Utilitarios c) Java

d) Ninguno

8. La instruccin String Apellidos[ ] declara un arreglo de tipo


a) Cadena
b) Entero
c) Decimal
d) Nulo
9. Clase que permite dar formato a las fechas
a) Date
b) Calendar c) Month
d) Ninguno
10. Los arrays se extienden de la clase
a) Array
b) Class
c) Object

d) Ninguno

11. Es una clase derivada que contiene un objeto de la superclase


a) sub-clase
b) clase
c) extends
d) Ninguno
12. Para indicar que una clase se deriva de otra se emplea la palabra

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

15. Con qu palabra se hereda una interfaz


a) implements
b) extends
c) protected

d) package

16. Objeto de una clase que representa a una ventana con bordes
a) JTextField
b) JForm
c) JFrame
d) Ninguno

17. Permite realizar un diseo libre de la interfaz grfica


a)FullLayout
b) FlowLayout
c) NullLayout d) GridLayout
18. Se emplea para mostrar mensajes en cualquier lugar del formulario
a) JMenu
b) JTextBox
c) JButton
d) Ninguno
19. Mtodo que permite establecer texto en controles de texto y etiquetas
a) writeText
b) getText
c) setText
d) nullText
20. Maneja y representa el esquema de datos con el cual se desea trabajar
a) ResultSet
b) Statement
c) Connection d) Ninguno

BIBLIOGRAFA

UNIVERSIDAD DE NAVARRA. Aprenda Java como si estuviera en primero.


ABURTO CORREA, Eddy Blaider. Programacin en Java 2. Editorial
Megabyte.
RAMIREZ, Luis Eduardo. Aplicando Java 2. Editorial Macro.
JOYANES AGUILAR, Luis. Programacin Orientada a Objetos. Mcgraw-Hill /
Interamericana de Espaa, S.A.
MORENO, Francisco. Introduccin a la POO. Grupo Eidos

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.

4. Pulse el botn Next para completar la instalacin.

Java

49

Iniciar NetBeans
1. Para iniciar el trabajo dentro del entorno de NetBeans, haga doble clic en
acceso directo del escritorio.

2. Pulse el botn No cuando le muestre el siguiente cuadro.

El Entorno Integrado de NetBeans


En el panel izquierdo se visualiza la estructura de directorios del sistema de archivos.
El panel derecho se emplea para el desarrollo de las aplicaciones y la edicin de
cdigo de las clases.

Java

50

Establecer Directorio local


Para desarrollar aplicaciones Java (Clase), lo primero que debe hacer es crear una
carpeta de trabajo en el disco C: y montarlo como directorio local, este directorio local
almacenar todas sus aplicaciones. Para crear su directorio local haga lo siguiente:
1.
2.
3.
4.

Cree la carpeta TELESUP en el disco C:


En el panel izquierdo del entorno, pulse botn derecho en Filesystems.
Elija la opcin Mount.
Haga clic en Local Directory.

5. En el disco C: Seleccione la carpeta TELESUP con doble clic.

Java

51

6. Pulse el botn Finish.


NetBeans mostrar la carpeta TELESUP como directorio local en el cual guardar
sus aplicaciones Java (Clases).

Cmo guardar las aplicaciones Java en el disquette


1. Cierre el entorno de NetBeans
2. Explore el disco C:
3. Pulse botn derecho en la carpeta TELESUP / Enviar a / Disco 3 A:

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

4. Escriba el nombre de la aplicacin (Clase), es nuestro caso: Bienvenida.

5. Pulse el botn Finish.


6. En la plantilla de la clase Bienvenida que muestra NetBeans, escriba el
siguiente cdigo de la aplicacin.

Java

53

7. Pulse F6 o haga clic en el botn Execute


, para ejecutar la aplicacin.
8. En el cuadro de dilogo escriba su nombre y pulse Enter.

9. Java mostrar un mensaje de bienvenida en el panel de salida de Netbeans.

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.

La ventana de salida de NetBeans mostrar el resultado de la suma.

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.

La ventana de salida de NetBeans mostrar el resultado del proceso.

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.

La ventana de salida de NetBeans mostrar el resultado del proceso.

Java
Estructura while
Clase: NotasConHistograma
//Programa que genera notas aleatorias con histograma y uso de la clase Math,
//mtodos round y random.

57

Pulse F6 para ejecutar la aplicacin. La ventana de salida de NetBeans mostrar las


notas de 50 alumnos con su respectivo histograma segn la nota obtenida por el
alumno.

Estructura while

Java
Clase: LanzaDados
//Simula el lanzamiento de 3 dados empleando la clase Math y los mtodos round y
//random.

58

Pulse F6 para ejecutar la aplicacin. La ventana de salida de NetBeans mostrar los


puntajes de los dados y el nmero de veces que se lanzaron los dados.

Java
Clase String
Clase: Comparacin
//Compara si dos objetos son iguales y si tienen el mismo valor

59

Pulse F6 para ejecutar la aplicacin. La ventana de salida de NetBeans mostrar la


comparacin entre las cadenas en canto a si son los mismos objetos y si tienen en
mismo valor.

Java
Clase Gregorian Calendar
Clase: DateAdd
//Agrega das a una fecha y visualiza la nueva fecha

60

Pulse F6 para ejecutar la aplicacin. La ventana de salida de NetBeans mostrar la


nueva fecha.

Java
Clase SimpleDateFormat (Pag. 31)
Clase: SimpledateForm
//Imprime una fecha en formato simple definido por el usuario
//empleando la clase SimpleDateFormat

61

Pulse F6 para ejecutar la aplicacin. La ventana de salida de NetBeans mostrar las


fechas con los formatos definidos con SimpleDateFormat.

Java
Arreglos en Java (Pag. 31)
Clase: Tridimensional
//Aplicacin que permite almacenar notas de tres cursos para tres alumnos
//empleando un arreglo tridimensional.

62

Pulse F6 para ejecutar la aplicacin. La ventana de salida de NetBeans mostrar las


notas ms altas de los tres alumnos contenidos en el arreglo.

Java

Programacin Visual en Java


Uso de Controles Swing
Creacin de formularios
1. Pulse botn derecho en el directorio local
2. Elija la opcin New
3. Haga Clic en JFrame Form

4. Escriba el nombre del formulario (FrmMatematica) y pulse el botn Finish

63

Java

64

El formulario se visualiza al centro de la pantalla, los paneles de componentes swing,


el inspector de objetos y propiedades en el lado derecho de la pantalla.

Mostrar nombres de los componentes


Para mostrar los nombres de los componentes swing de tal modo que pueda
identificarlos con facilidad haga lo siguiente:

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

Agregar componentes en el formulario


1. Pulse el componente que desea agregar al formulario
2. Haga clic en el formulario.
Ejemplo de Aplicacin No. 1
Como ejemplo desarrollaremos un formulario que permita realizar las cuatro
operaciones aritmticas bsicas. Para ello agregue los siguientes controles al
formulario:
3 JLabel, para mostrar mensajes descriptivos.

3 JTextField, Para ingresar datos y mostrar resultados.

Java

4 JButton. Para ejecutar las operaciones.

El formulario debe mostrar el siguiente aspecto:

66

Propiedades de los componentes


Las propiedades son las caractersticas que se asignan a los componentes con la
finalidad de dar una buena presentacin al diseo del formulario. Para asignar
propiedades a los componentes haga lo siguiente:
1. Seleccione el componente.
2. En el panel de propiedades, pulse sobre la propiedad que desea asignar
3. Defina el valor correspondiente para la propiedad.

Define las siguientes propiedades de los componentes


Componente
JLabel1
JLabel2
JLabel3
JTextField1
JTextField2
JTextField3
JButton1
JButton2
JButton3

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

Redimensionar el tamao del formulario


En la seccin Code del panel de propiedades, elija la opcin Generate Resize Code
para mostrar el formulario con el tamao que defini en el diseo.

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

Cmo obtener datos de un JTextField


Para obtener datos de un componente JTextField y asignarle a una variable, se
emplea el mtodo getText().
Cmo establecer datos en un JTextField
Para establecer datos en un componente JTextField, se emplea el mtodo setText().
Cdigo de la aplicacin.
Para codificar la aplicacin, haga doble clic en los botones y escriba el cdigo Java de
la aplicacin.

Java

69

Pulse F6 para ejecutar la aplicacin, luego ingrese los datos y pulse en los botones
para realizar los clculos correspondientes.

Ejemplo de Aplicacin No. 2


Como ejemplo nmero 2 desarrollaremos un formulario que permita introducir datos de
nuestros contactos en componentes List. Para ello, haga lo siguiente:
1. Agregue los siguientes componentes en un nuevo JFrame Form:

2 JLabel, para mostrar mensajes descriptivos.


2 JTextField, Para ingresar datos de los contactos.
2 JButton. Para agregar los datos en componentes List.
2 List de la categora de controles AWT para cargar los datos en las listas.

2. Defina las siguientes propiedades de los componentes

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

3. Defina los siguientes nombres de los componentes. Estos nombres sern


utilizados en el cdigo de la aplicacin.
Componente
JTextField1
JTextField2
JButton1
JButton2

Nombre
Txt1
Txt2
BtnAgregar
BtnBorrar

4. Redimensionar el tamao del formulario para visualizarlo con las dimensiones


establecidas en el diseo del mismo.

5. Cuando haya terminado, el formulario tendr el siguiente aspecto.

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.

Conexin a Bases de Datos


Ejemplo de Aplicacin
MultiDatos es una empresa que requiere de una aplicacin de de BD para hacer que
su sistema de pagos al personal sea mucho ms eficiente, para ello se ha diseado un
modelo de BD de Access con lo cual se atender sus requerimientos.
El sistema funcionar con tres tablas, las cuales han sido diseadas en Access y sus
estructuras son las siguientes. La BD se denomina MULTIDATOS.
1. En el directorio local disee la BD y las tablas.
Tabla: Empleados: Almacena datos de los empleados.

Java

72

Tabla Categoras: Almacena datos de las categoras de empleados en


la empresa.

Tabla Asistencias: Almacena datos de las asistencias, faltas y


tardanzas en el mes de los empleados de la empresa.

Java

73

Diagrama de Relaciones de la BD.


Las tablas de la BD MultiDatos estn relacionadas de la siguiente manera:
Tabla Principal
Empleados
Categorias

Tabla Secundaria
Asistencias
Empleados

Tipo de Relacin
Uno a Uno
Uno a Varios

2. Disear los formularios de la aplicacin y escribir el cdigo correspondiente en


cada uno de stos.
Formulario Asistencias

Java
Cdigo del botn Conectar BD

Cdigo del botn Cargar Datos

Cdigo del botn Desconectar BD

Cdigo del botn Finalizar

Cdigo del botn Siguiente

74

Java
Cdigo del botn Anterior

Formulario Empleados

Cdigo del botn Conectar BD

Cdigo del botn Cargar Datos

75

Java
Cdigo del botn Desconectar BD

Cdigo del botn Finalizar

Cdigo del botn Siguiente

Cdigo del botn Anterior

Formulario Categoras

76

Java
Cdigo del botn Conectar BD

77

Cdigo del botn Cargar Datos

Cdigo del botn Desconectar BD

Cdigo del botn Finalizar

Java
Cdigo del botn Siguiente

78
Cdigo del botn Anterior

Cdigo de los botones de Actualizacin

Botn Agregar

Botn Guardar

Java
Botn Modificar

79

Botn Buscar

Botn Eliminar

Nota: Para crear botones de actualizacin en los dems formularios se emplea el


mismo cdigo con referencia a las tablas correspondientes.
La Clase GestionaBD
Es la clase que gestiona la BD, contiene mtodos para establecer la conexin al BD y
para ejecutar las instrucciones SQL de cada Statement.

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

Cdigo de los MenItem del formulario principal


El Cdigo de los tems del men principal permite invocar a cada formulario de la
aplicacin de BD.

Java

82

Вам также может понравиться