Separata de Java - 01
Separata de Java - 01
Separata de Java - 01
www.telesup.edu.pe
2
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
www.telesup.edu.pe
3
PRIMERA UNIDAD DIDCTICA
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.
INTRODUCCIN A JAVA
Java
www.telesup.edu.pe
4
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
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.
Java
www.telesup.edu.pe
5
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 Tamao/Formato Descripcin
(Nmeros enteros)
Byte 8-bit complemento a 2 Entero de un Byte
Short 16-bit complemento a 2 Entero corto
Int 32-bit complemento a 2 Entero
Long 64-bit complemento a 2 Entero largo
(Nmeros reales)
Float 32-bit IEEE 754 Coma flotante de precisin simple
Double 64-bit IEEE 754 Coma flotante de precisin doble
(otros tipos)
Char 16-bit Carcter Un slo carcter
Bolean true o false 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:
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
www.telesup.edu.pe
6
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.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
}
Java
www.telesup.edu.pe
7
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.
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;
Java
www.telesup.edu.pe
8
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;
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)
Java
www.telesup.edu.pe
9
{
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;
}
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);
Java
www.telesup.edu.pe
10
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
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.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.
Una variable de tipo double puede almacenar un valor de
tipo int convirtindose automticamente en tipo double.
Java
www.telesup.edu.pe
11
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 Descripcin
+ op1 + op2 Suma op1 y op2
- op1 - op2 Resta op2 de op1
* op1 * op2 Multiplica op1 y op2
/ op1 / op2 Divide op1 por op2
% op1 % op2 Obtiene el resto de dividir
op1 entre op2
Nota: El lenguaje Java extiende la definicin del operador + para
incluir la concatenacin de cadenas.
Java
www.telesup.edu.pe
12
Los operadores + y - tienen versiones unarias que seleccionan el signo
del operando.
Operador Uso Descripcin
+ + op Indica un valor positivo
- - op 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 Descripcin
++ op
++
Incrementa op en 1; evala el valor antes
de incrementar
++ ++
op
Incrementa op en 1; evala el valor
despus de incrementar
-- op -
-
Decrementa op en 1; evala el valor antes
de decrementar
-- --
op
Decrementa op en 1; evala el valor
despus de decrementar
1.2.7.2. Operadores Relacionales
Operador Uso Devuelve true si
> op1 > op2 op1 es mayor que op2
>= op1 >= op2 op1 es mayor o igual que op2
< op1 < op2 op1 es menor que op2
<= op1 <= op2 op1 es menor o igual que op2
== op1 == op2 op1 y op2 son iguales
!= op1 != op2 op1 y op2 son distintos
1.2.7.3. Operadores Lgicos
Operador Uso Devuelve true si
&& op1 && op2 op1 y op2 son verdaderos
|| op1 || op2 uno de los dos es
verdadero
! ! op 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
www.telesup.edu.pe
13
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 Equivale a
+= op1 += op2 op1 = op1 + op2
-= op1 -= op2 op1 = op1 - op2
*= op1 *= op2 op1 = op1 * op2
/= op1 /= op2 op1 = op1 / op2
%= op1 %= op2 op1 = op1 % op2
&= op1 &= op2 op1 = op1 & op2
|= op1 |= op2 op1 = op1 | op2
^= op1 ^= op2 op1 = op1 ^ op2
<<= op1 <<= op2 op1 = op1 << op2
>>= op1 >>= op2 op1 = op1 >> op2
>>>= op1 >>>= op2 op1 = op1 <<< op2
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 [] . (params) expr++ expr--
operadores unarios ++expr --expr +expr -expr ~ !
Creacin o tipo new (type)expr
multiplicadores * / %
suma/resta + -
desplazamiento << >> >>>
Relacionales < > <= >= instanceof
Igualdad == !=
bitwise AND &
bitwise exclusive OR ^
Java
www.telesup.edu.pe
14
bitwise inclusive OR |
AND lgico &&
OR lgico ||
Condicional ? :
Asignacin = += -= *= /= %= ^= &= |= <<= >>= >>>=
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
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.
Java
www.telesup.edu.pe
15
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.
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;
Java
www.telesup.edu.pe
16
public boolean sexo;
}
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() // mtodo comer
{
// como come
}
public void caminar() // mtodo caminar
{
// como camina
}
public boolean cualestusexo() // mtodo cualestusexo
{
return sexo; // retorna el valor de una
propiedad
}
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)
{
apelllido=n;
edad=e;
sexo=false;
}
public persona(String n, int e) {
nombre=n;
edad=e;
}
Java
www.telesup.edu.pe
17
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()
{
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
Java
www.telesup.edu.pe
18
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:
1.4.2. Mtodos estticos de la Clase Math
Mtodo Esttico Significado
abs() Devuelve el valor absoluto
acos() Devuelve el arcocoseno
asin() Devuelve el arcoseno
atan () Arcotangente entre PI/2 y PI/2
atan2(,) Arcotangente entre PI y PI
ceil () Entero ms cercano en direccin a infinito
floor () Entero ms cercano en direccin a infinito
round () Entero ms cercano al argumento
rint () Entero ms prximo
cos() Calcula el coseno
Sin() Calcula el seno
tan() 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
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
Math.abs(-5)
Clase de Java Mtodo esttico
Java
www.telesup.edu.pe
19
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() //Devuelve la longitud de la cadena
//apellidos
1.4.4. 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
ValueOf Devuelve la representacin como String
IndexOf( , ) Devuelve la posicin de un carcter dentro de una
cadena
Substring( , ) Extrae una determinada cantidad de caracteres de una
cadena
Java
www.telesup.edu.pe
20
toLowerCase() Convierte una cadena a maysculas
toUpperCase() Convierte una cadena a minsculas
trim() Elimina espacios en blancos antes y despus de la
cadena
charAt( ) Devuelve el carcter asociado a una posicin.
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
4. No es una tecnologa de Java
a) Servlets b) Applets c) JDBC d) Frames
5. La variable que determina el nmero de notas ingresadas se
denomina
a) Contador b) Operador c) Clase 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 d) switch
9. No es un mtodo de la clase Math
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
Java
www.telesup.edu.pe
21
SEGUNDA UNIDAD DIDCTICA
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 Wrapper
int. Integer
Double Double
Long Long
short Short
char Carcter
bolean 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();
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;
Clave de Respuestas
1. b 5. a 8. b
2. a 6. b 9. d
3. c 7. d 10. c
4. d
FUNDAMENTOS DE JAVA Y LA POO
Java
www.telesup.edu.pe
22
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:
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);
Java
www.telesup.edu.pe
23
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 Propsito
after()
Devuelve verdadero si la fecha del argumento se
encuentra despus de la fecha implcita Falso en caso
contrario.
before()
Devuelve verdadero si la fecha del argumento se
encuentra antes de la fecha implcita. Falso en caso
contrario.
getTime()
Obtiene los milisegundos transcurridos desde el
01/01/1970.
setTime()
Establece los milisegundos transcurridos desde el
01/01/1970.
Java
www.telesup.edu.pe
24
equals()
compareTo()
Tienen las mismas funciones que en la Clase String
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.
Las variables ERA, YEAR, MONTH, HOUR, MINUTE,
SECOND, MILLISECOND tienen tambin un significado
evidente.
Java
www.telesup.edu.pe
25
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
String s = sdf2.format(d);
System.out.println(s);
Java
www.telesup.edu.pe
26
}
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.
Java
www.telesup.edu.pe
27
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.*;
public class NumeroReves {
Java
www.telesup.edu.pe
28
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;
Java
www.telesup.edu.pe
29
//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
double n=Math.round(Math.random()*20);
Java
www.telesup.edu.pe
30
//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
a) 0 b) Null c) 1 d) Ninguno
Java
www.telesup.edu.pe
31
10. Los arrays se extienden de la clase
a) Array b) Class c) Object d) Ninguno
TERCERA UNIDAD DIDCTICA
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.
J ava 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
Hijo
La Clase Hijo
Extiende de la Clase
Padre
CLAVE DE RESPUESTA
1. a 5. b 8. d
2. c 6. a 9. a
3. d 7. a 10. c
4. a
FUNDAMENTOS DEL LENGUAJE JAVA Y
LA PROGRAMACION VISUAL
Java
www.telesup.edu.pe
32
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 J ava 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 J ava. 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).
Java
www.telesup.edu.pe
33
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.
En base al grfico anterior, los niveles de encapsulamiento seran de la
siguiente forma:
Nivel Clases
public B A C D
private B
protected B A C
package B A
La clase que
lo define
Est en el
paquete
Es la clase hija Est en el
paquete de la
clase hija
3.3. 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
B
A
C
A
D
B
A
Paquete m
Paquete n
La Clase C
extiende de B
Clase en la que se define el
nivel de encapsulamiento
Java
www.telesup.edu.pe
34
A continuacin estamos creando una interfaz de nombre Reproducible.
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();
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
Interfaz
Mtodos
Implementados
Reproducible
(Mtodos Abstractos)
MP3 AVI
Java
www.telesup.edu.pe
35
3.4. EJERCICIOS PRCTICOS
//Clase Almacen
package Practica3;
public class Almacen {
public String nroid;
public String responsable;
public String region;
/** Creates a new instance of Almacen */
public Almacen() {
}
}
//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 */
Java
www.telesup.edu.pe
36
public Termicos() {
}
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");
}
}
Java
www.telesup.edu.pe
37
//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 {
/** 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 d) Instancia
Java
www.telesup.edu.pe
38
9. Con qu palabra se hereda una interfaz
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
CUARTA UNIDAD DIDCTICA
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]
Clave de Respuestas
1. a 5. d 8. a
2. c 6. c 9. a
3. d 7. d 10. c
4. c
PROGRAMACIN VISUAL EN JAVA Y
JDBC
Java
www.telesup.edu.pe
39
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.
Java
www.telesup.edu.pe
40
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.
Java
www.telesup.edu.pe
41
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)
Java
www.telesup.edu.pe
42
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");
Java
www.telesup.edu.pe
43
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) {
Java
www.telesup.edu.pe
44
...
}
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
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
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.
Base de
Datos
MS
ACCESS
ODBC Aplicacin
JAVA
JDBC
Base de
Datos
SQL
SERVER
JDBC Aplicacin
JAVA
Java
www.telesup.edu.pe
45
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 d) nullText
9. Interfaz que gestiona la conexin con la BD
Java
www.telesup.edu.pe
46
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
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 se
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
Clave de Respuestas
1. d 5. a 8. c
2. c 6. d 9. c
3. b 7. a 10. a
4. c
PRUEBA DE AUTOEVALUACIN
Java
www.telesup.edu.pe
47
12. Para indicar que una clase se deriva de otra se emplea la palabra
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
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
Clave de Respuestas
BIBLIOGRAFA
SOLUCIONARIO DE AUTOEVALUACIN
Java
www.telesup.edu.pe
48
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
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
www.telesup.edu.pe
49
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
www.telesup.edu.pe
50
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
www.telesup.edu.pe
51
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. Cree la carpeta TELESUP en el disco C:
2. En el panel izquierdo del entorno, pulse botn derecho en Filesystems.
3. Elija la opcin Mount.
4. Haga clic en Local Directory.
5. En el disco C: Seleccione la carpeta TELESUP con doble clic.
Java
www.telesup.edu.pe
52
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
www.telesup.edu.pe
53
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
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
www.telesup.edu.pe
54
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
www.telesup.edu.pe
55
Estructura secuencial
Clase: SumaCifras
//Programa que calcula la suma de las cifras de un #
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
www.telesup.edu.pe
56
Clase: NumeroPrimo
//Programa que determina si un nmero es primo o no
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
www.telesup.edu.pe
57
Clase: NumeroPrimo
//Programa que determina si un nmero es primo o no
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
www.telesup.edu.pe
58
Estructura while
Clase: NotasConHistograma
//Programa que genera notas aleatorias con histograma y uso de la clase Math,
//mtodos round y random.
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
www.telesup.edu.pe
59
Clase: LanzaDados
//Simula el lanzamiento de 3 dados empleando la clase Math y los mtodos round y
//random.
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
www.telesup.edu.pe
60
Clase String
Clase: Comparacin
//Compara si dos objetos son iguales y si tienen el mismo valor
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
www.telesup.edu.pe
61
Clase Gregorian Calendar
Clase: DateAdd
//Agrega das a una fecha y visualiza la nueva fecha
Pulse F6 para ejecutar la aplicacin. La ventana de salida de NetBeans mostrar la
nueva fecha.
Java
www.telesup.edu.pe
62
Clase SimpleDateFormat (Pag. 31)
Clase: SimpledateForm
//Imprime una fecha en formato simple definido por el usuario
//empleando la clase SimpleDateFormat
Pulse F6 para ejecutar la aplicacin. La ventana de salida de NetBeans mostrar las
fechas con los formatos definidos con SimpleDateFormat.
Java
www.telesup.edu.pe
63
Arreglos en Java (Pag. 31)
Clase: Tridimensional
//Aplicacin que permite almacenar notas de tres cursos para tres alumnos
//empleando un arreglo tridimensional.
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
www.telesup.edu.pe
64
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
Java
www.telesup.edu.pe
65
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
www.telesup.edu.pe
66
1. Pulse botn derecho en cualquier componente
2. Elija la opcin Show Component Names
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
www.telesup.edu.pe
67
4 JButton. Para ejecutar las operaciones.
El formulario debe mostrar el siguiente aspecto:
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 Propiedad Valor
JLabel1 text Nmero1
JLabel2 text Nmero2
JLabel3 text Resultado
JTextField1 text (Borrar)
JTextField2 text (Borrar)
JTextField3 text (Borrar)
JButton1 text Suma
JButton2 text Resta
JButton3 text Multiplica
Java
www.telesup.edu.pe
68
JButton4 text Divide
JFrame title 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.
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
www.telesup.edu.pe
69
JTextField1 Txt1
JTextField2 Txt2
JTextField3 Txt3
JButton1 BtnSuma
JButton2 BtnResta
JButton3 BtnMultiplica
JButton4 BtnDivide
Cuando haya terminado de definir los nombres y los textos de los componentes, el
formulario debe tener el siguiente aspecto.
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
www.telesup.edu.pe
70
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 Propiedad Valor
JLabel1 text Nombre
Java
www.telesup.edu.pe
71
JLabel2 text Email
JTextField1 text (Borrar)
JTextField2 text (Borrar)
JButton1 text Agregar
JButton2 text Borrar lista
JButton1 text Suma
JFrame title Contactos
3. Defina los siguientes nombres de los componentes. Estos nombres sern
utilizados en el cdigo de la aplicacin.
Componente Nombre
JTextField1 Txt1
JTextField2 Txt2
JButton1 BtnAgregar
JButton2 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.
Java
www.telesup.edu.pe
72
6. Codifique la aplicacin. Haga doble clic en los botones y escriba el cdigo
Java de la aplicacin.
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
www.telesup.edu.pe
73
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
www.telesup.edu.pe
74
Diagrama de Relaciones de la BD.
Las tablas de la BD MultiDatos estn relacionadas de la siguiente manera:
Tabla Principal Tabla Secundaria Tipo de Relacin
Empleados Asistencias Uno a Uno
Categorias Empleados Uno a Varios
2. Disear los formularios de la aplicacin y escribir el cdigo correspondiente en
cada uno de stos.
Formulario Asistencias
Java
www.telesup.edu.pe
75
Cdigo del botn Conectar BD
Cdigo del botn Cargar Datos
Cdigo del botn Desconectar BD
Cdigo del botn Finalizar
Cdigo del botn Siguiente
Java
www.telesup.edu.pe
76
Cdigo del botn Anterior
Formulario Empleados
Cdigo del botn Conectar BD
Cdigo del botn Cargar Datos
Java
www.telesup.edu.pe
77
Cdigo del botn Desconectar BD
Cdigo del botn Finalizar
Cdigo del botn Siguiente
Cdigo del botn Anterior
Formulario Categoras
Java
www.telesup.edu.pe
78
Cdigo del botn Conectar BD
Cdigo del botn Cargar Datos
Cdigo del botn Desconectar BD
Cdigo del botn Finalizar
Java
www.telesup.edu.pe
79
Cdigo del botn Siguiente
Cdigo del botn Anterior
Cdigo de los botones de Actualizacin
Botn Agregar
Botn Guardar
Java
www.telesup.edu.pe
80
Botn Modificar
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
www.telesup.edu.pe
81
Java
www.telesup.edu.pe
82
Mtodos para limpiar las cajas de texto y mostrar datos
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
www.telesup.edu.pe
83