Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Lenguaje JAVA
Tema 1:
INTRODUCCIN
estar
ubicadas
en
distintas
Interpretado y Compilado:
Utiliza un lenguaje intermedio (bytecode), para la
mquina abstracta JVM.
El bytecode puede interpretarse o compilarse.
Robusto:
Fuertemente tipado.
Sin construcciones peligrosas (punteros).
Manejo de excepciones.
Seguro:
Verifica el cdigo en tiempo de ejecucin.
Cargador de clases.
GENEALOGA DE JAVA
JAVA es similar en sintaxis a C++ y en semntica a
SmallTalk.
IMPLEMENTACIONES DE LA JVM
La JAVA Virtual Machine (JVM) es la clave en la
independencia de plataforma. Ella puede estar
implementada como:
Una aplicacin de software stand alone
independiente. Por ejemplo: JRE (JAVA Runtime
Environment).
Parte integral de un navegador web (browser). Por
ejemplo: HotJava.
Una componente integral del sistema operativo. Por
ejemplo: JavaOS.
Un
ncleo
de
microprocesador
o
chip
microcontrolador, para productos electrnicos de
consumo: tarjetas inteligentes, telfonos celulares,
agendas electrnicas, etc. Por ejemplo: picoJava.
INSTALACIN DE JAVA
El archivo necesario para instalar JAVA es:
compilarse
desde
c:\Archivos de Programa\Java\jdk1.6.0_03\bin>
el
Programa.class
PLATAFORMA JAVA
La plataforma para la ejecucin de un programa en
JAVA est formada por la Mquina Virtual Java (JVM) y
las APIs de JAVA.
Las API (Application Programming Interface) son un
conjunto de bibliotecas de clases estndar, que estn
organizadas en paquetes, formando un gran rbol de
herencia.
LIBERACIN DE MEMORIA
Debe liberarse la memoria reservada dinmicamente
que no se vaya a utilizar ms.
En otros lenguajes, esta liberacin debe realizarla el
propio programador.
La JVM dispone de un hilo (thread) que rastrea las
operaciones de memoria, el Garbage Collector
(Recolector de Basura) el cual:
Verifica y libera la memoria que no se necesita.
Se ejecuta automticamente
Puede variar segn la implementacin de la JVM.
Tema 2:
ELEMENTOS BSICOS
DEL LENGUAJE
SENSIBLE A MAYSCULAS/MINSCULAS
Se distingue entre maysculas y minsculas.
Los identificadores Pepito, pepito y PEPITO son
diferentes.
Todas las palabras reservadas del lenguaje van en
minsculas.
SOPORTA COMENTARIOS
Existen tres formas de introducir comentarios:
Comentario de una lnea:
// Comentario de una lnea
Comentario en una o ms lneas:
/* Comentario de
ms de una lnea */
Comentario de documentacin (se usa con javadoc):
/** Mtodo XYZ:
Realiza la labor X sobre los datos Y
devolviendo Z */
> javadoc Archivo.java Archivo.html
RESULTADO DE JAVADOC
IDENTIFICADORES
Son nombres de clases, variables o mtodos.
No tienen una longitud mxima.
El primer carcter del identificador debe ser: A Z, a
z, _, $.
JAVA permite espacios en blanco entre elementos del
cdigo.
El resto debe ser: A Z, a z, _, $, 0 9.
No se permiten vocales acentuadas ni la letra ee (, ).
No se permite utilizar palabras reservadas como
identificadores.
PALABRAS RESERVADAS
abstract default
goto1
null2
synchronized
boolean
do
if
package
this
break
double
implements
private
throw
byte
else
import
protected
throws
case
extends
instanceof
public
transient
catch
false2
int
return
true2
char
final
interface
short
try
class
finally
long
static
void
const
float
native
super
volatile
new
switch
while
continue for
VARIABLES Y CONSTANTES
Variables: Zona de memoria cuyos valores van a
cambiar durante la ejecucin del programa.
Declaracin: <tipo> <identificador>;
<tipo> <identificador> <identificador>;
Por ejemplo: int x, y, z;
Constantes: Zona de memoria cuyos valores no
cambian.
Declaracin:
final <tipo> <identificador> = <valor>;
Por ejemplo: final double PI = 3.1416;
ASIGNACIN DE VARIABLES
Se utiliza el operador de asignacin =:
<variable> = <expresin>;
La parte izquierda siempre debe ser una variable.
La parte derecha puede ser un literal, una variable, una
funcin o una combinacin de todos.
Se puede asignar un valor a una variable en el momento
de declararla.
Por ejemplo: int s = 0;
TIPOS DE DATOS
El lenguaje JAVA define dos tipos de datos:
Tipos primitivos
Tipos referencia
Los tipos primitivos son ocho, agrupados en cuatro
categoras:
Lgico: boolean
Carcter: char
Enteros: byte, short, int, long
Reales: float, double
Los tipos referencia son punteros a objetos.
int c = 1;
if (c)
if (c != 0)
{ . . . }
Error de Compilacin
{ . . . }
Correcto
deben
ir
entre
comillas
simples
Contiene
Valor
por
Defecto
Tamao
Valor Mnimo
Valor Mximo
Boolean
true false
false
8 bits
---
---
Char
Carcter
Unicode
\u0000
16 bits
\u0000
\uFFFF
Byte
8 bits
-128
127
16 bits
-32768
32767
Short
Int
32 bits
-2147483648
2147483647
Long
64 bits
-9223372036854775808
9223372036854775807
Float
0.0
32 bits
3.40282347E+38
1.40239846E-45
double
0.0
64 bits
1.79769313486231570E+308
4.94065645841246544E-324
64 bits
???
pc
Fecha reunion;
reunion
???
???
32 bits
32 bits
CONVERSIN DE TIPOS
La conversin de tipos (casting) se debe realizar entre
tipos de la misma naturaleza: numricos o referencia.
Al convertir un tipo a un tamao ms pequeo, se
puede perder la informacin de los bits de mayor peso.
La sintaxis es: (<tipo>) <expresin>
byte num8bits = (byte) 63;
int num32bits = 63;
num8bits = (byte) num32bits;
short x, y, z;
z = x + y; Error, el operador + devuelve int
z = (short) (x + y); Correcto
OPERADORES (1)
Operadores unarios: + ,
Operadores aritmticos: +, , *, /, % (resto de la
divisin entera)
Operadores de asignacin: =, +=, *=, /=, %=
<var>+=<expresin> <var>=<var>+<expresin>
Operadores incrementales: ++,
Precediendo a la variable: ++<var> , --<var>
Siguiendo a la variable: <var>++ , <var>- {i=1; j=i++;} {i=1;j=i;i=i+1;} i=2, j=1
{i=1; j=++i;} {i=1;i=i+1;j=i;} i=2, j=2
OPERADORES (2)
Operadores relacionales: == (igual), != (distinto), >, <,
>=, <=
Operadores lgicos: && (AND), || (OR), ! (NOT), &
(AND), | (OR)
&& y || realizan evaluacin perezosa:
op1 && op2 si op1 es false, no se evala op2
op1 || op2 si op1 es true, no se evala op2
& y | siempre evalan los dos operadores
Operadores instanceof:
<objeto> instanceof <clase>
determina si un objeto pertenece a una clase.
OPERADORES (3)
Operador
condicional:
Permite
bifurcaciones
condicionales sencillas.
<exprBooleana> ? <valor1> : <valor2>
Operadores a nivel de bits: >>, <<, >>> , &, |,
^ , ~
op1 >> n Desplaza los bits de op1 (con signo) a la
derecha n posiciones.
op1 >>> n Desplaza los bits de op1 (sin signo) a la
derecha n posiciones.
op1 & op2
Operador AND a nivel de bits
op1 | op2
Operador OR a nivel de bits
op1 ^ op2
Operador XOR a nivel de bits
~op1
Operador complemento (NOT a nivel de
bits)
JERARQUA DE OPERADORES
Todos los operadores binarios se evalan de izquierda
a derecha, excepto los operadores de asignacin.
TIPO
OPERADOR
Operadores sufijos
[] . (argumentos) expr++
Operadores unarios
++expr
--expr
new
Creacin y casting
(tipo)
*
Multiplicativos
<<
Desplazamiento
Igualdad
<
>
~ !
expr
>>
<=
-expr
Aditivos
Relacional
+expr
expr--
>>>
>=
==
instanceof
!=
AND
(bits) &
OR exclusivo
(bits)^
OR inclusivo
(bits) |
AND lgico
&&
OR lgico
||
Condicional
? :
Asignacin
ESTRUCTURAS DE CONTROL
Las sentencias de control del flujo de ejecucin,
permiten tomar decisiones y realizar un proceso
repetidas veces.
Hay dos tipos principales de sentencias de control de
flujo:
Condicionales: if, switch
Iteracin: for, while, do while
Otras sentencias que permiten interrumpir el flujo
normal de ejecucin son break y continue.
LA SENTENCIA IF
Ejecuta un conjunto de sentencias en funcin del valor
de una expresin booleana.
if (<exprBooleana>)
<sentencia>;
if (<exprBooleana>){
<grupoSentencias>;
}
if (<exprBooleana>){
<grupoSentencias1>;
}
else {
<grupoSentencias2>;
}
if (<exprBooleana1>){
<grupoSentencias1>;
}
else if (<exprBooleana2>)
{
<grupoSentencias2>;
}
else {
<grupoSentencias3>;
}
LA SENTENCIA SWITCH
Comparacin de igualdad mltiple con la misma
variable.
switch (<variable>)
{
case valor1: [<grupoSentencias1>;]
[break;]
case valor2: [<grupoSentencias2>;]
[break;]
...
case valorN: [<grupoSentenciasN>;]
[break;]
[default: <grupoSentencias>;]
}
EJEMPLO SWITCH
Opciones de un men:
1) Altas
2) Bajas
3) Modificaciones
4) Salir
switch (opcion){
case 1: altas();
break;
case 2: bajas();
break;
case 3: modificaciones();
break;
case 4:
default: salir();
}
Por ejemplo:
for (i=0, j=100; i < j; i++, j -= 3)
System.out.println (i + , + j);
LA SENTENCIA WHILE
El grupo de sentencias se ejecuta mientras se cumpla
la expresin booleana.
while (<exprBooleana>)
{
<grupoSentencias>;
}
Por ejemplo:
i = 0;
while (i < 10)
{
System.out.println (i= + i);
i += 1;
}
equivale a:
<inicializa>
while (<exprBooleana>)
{
<grupoSentencias>;
<actualiza>;
}
LA SENTENCIA DO WHILE
El grupo de sentencias se ejecuta mientras se cumpla
la expresin booleana.
do
{
<grupoSentencias>;
} while (exprBooleana>);
El grupo de sentencias se ejecuta por lo menos una
vez. Por ejemplo:
i = 0;
do
{
System.out.println (i= + i);
i += 1;
} while (i<10);
terminacin
Por ejemplo:
public static void main(String[] args)
throws java.io.IOException
{
...
}
Valores directamente
System.out.println(Hola Mundo);
double numeroPI = 3.141592654;
System.out.println(numeroPI);
El
mtodo
argumentos:
showMessageDialog
requiere
dos
LA CLASE STRING
String(): Constructor para crear String a partir de
varios tipos.
charAt(int): Devuelve el carcter en la posicin
indicada.
equals(String): Devuelve true si las cadenas son
iguales.
length(): Devuelve el nmero de caracteres.
compareTo(String): Devuelve un entero menor que
cero si el objeto String es menor (en orden
alfabtico) que el string dado, cero si son iguales, y
mayor que cero si el objeto String es mayor que el
string dado.
toUpperCase(): Convierte en maysculas.
LA CLASE MATH
E: Constante del nmero (2.718)
PI: Constante con el valor de (3.1415)
double abs(double x): Valor absoluto de x
double round(double x): Entero ms cercano a x
double sin(double x : Seno de x
double cos(double x): Coseno de x
double sqrt(double x): Raz cuadrada de x
double pow(double x, double y): x elevado a y
double log(double x): Logaritmo neperiano de x
double random(): Nmero aleatorio [0, 1)
CLASES ENVOLVENTES
JAVA no trata a los tipos primitivos como objetos. Los
trata de forma diferente por razones de eficiencia.
Las clases envolventes son un complemento de los
tipos primitivos.
Cada tipo primitivo tiene su correspondiente clase
envolvente en el paquete java.lang:
byte
Byte
int
Integer
float
Float
boolean Boolean
short Short
long Long
double Double
char
Character
LA CLASE INTEGER
int parseInt(String): Convierte una String en
entero con signo.
String toBinaryString(int): Crea una String en
base 2.
String toOctalString (int): Crea una String en
base 8.
String toHexStrig(int): Crea una String en base
16.
MAX_VALUE: Constante con el valor mximo posible.
MIN_VALUE: Constante con el valor mnimo posible.
LA CLASE DOUBLE
int parseDouble(String): Convierte una String en
un real de doble precisin.
boolean isInfinite(): Devuelve true si es infinito.
boolean
nmero.
ARREGLOS
Declaracin de arrays:
<tipo> <variable>[]; <tipo>[] <variable>;
int a[]; equivale a int[] a;
int[] a, b, c;
(a, b y c son arrays) RECOMENDADO
INSTANCIACIN DE ARREGLOS
Creacin de objetos arrays:
<variable> = new <tipo> [<tamao>];
Al crear el objeto, el nmero de elementos (<tamao>)
se guarda en un atributo llamado length.
El primer elemento del array est en la posicin 0, y el
ltimo en la posicin length 1.
int[] a = new int[20];
a[0] = 15;
int i = a[0];
System.out.println(a.length);
System.out.println(i); 15
20
INICIALIZACIN DE ARREGLOS
Cuando se instancia un objeto array, sus elementos
se inicializan al valor por defecto del tipo
correspondiente.
Si se conocen los valores iniciales de cada elemento,
se pueden inicializar con los valores entre llaves y
separados por comas (a la vez que se declara).
Por ejemplo: int[] cuadrados = {0, 1, 4, 9};
equivale a:
int[] cuadrados = new int[4];
cuadrados[0] = 0;
cuadrados[1] = 1;
cuadrados[2] = 4;
cuadrados[3] = 9;
EJEMPLOS DE ARREGLOS
int[] digitos = {1, 2, 3, 4, 5, 6, 7, 8,
9};
String[] dias3 = {Lu, Ma, Mi, Ju};
Recorrido de una lista:
int[] lista = new lista[10];
for (int i = 0; i < lista.length; i++)
{
System.out.println(lista[i]);
}
ARREGLOS MULTIDIMENSIONALES
En JAVA los arreglos son todos de una dimensin.
Un array bidimensional es un array de arrays.
Se necesita un conjunto de corchetes por cada
dimensin. Por ejemplo:
int[] unaD = new int[12];
int[][] dosD = new int[12][31];
int[][][] tresD = new int[10][12][31];
MTODOS
Los mtodos son bloques de cdigo (subprogramas)
definidos dentro de una clase.
Un mtodo tiene acceso a todos los atributos de su
clase.
Pueden ser llamados o invocados desde cualquier
sitio, y un mtodo puede invocar a otros mtodos.
Los mtodos que se invocan a s mismos son
recursivos.
En JAVA no se puede definir un mtodo dentro de
otro.
La ejecucin de todos los programas se inician con el
mtodo main().
declarar
variables
locales
si
son
EJEMPLOS DE MTODOS
double tangente (double alfa)
{
return Math.sin(alfa)/Math.cos(alfa);
}
void imprimirHola()
{
System.out.println(Hola);
}
String darFormato(int d, int m, int a)
{
String s;
s = d + / + m + / + a;
return s;
}
PASO DE ARGUMENTOS
JAVA slo permite pasar argumentos por valor.
El mtodo recibe una copia de los argumentos.
El valor de los argumentos de tipo primitivo no
cambia fuera del mtodo.
El valor de los argumentos de tipo referencia (un
puntero a un objeto) tampoco cambia fuera del
mtodo, pero el contenido del objeto referenciado s
se puede cambiar dentro del mtodo.
Tipo primitivo
CONVERSIN DE TEMPERATURAS
import java.io.*;
class Temperaturas{
public static void main(String[] args)
throws java.io.IOException
{
InputStreamReader isr;
BufferedReader br;
isr = new InputStreamReader(System.in);
br = new BufferedReader(isr);
System.out.print("Ingrese temperatura en C:");
String s = br.readLine();
float c = Float.parseFloat(s);
float f = (9/5)*c + 32;
System.out.println("Fahrenheit: " + f);
}
}
PALNDROMOS
import java.io.*;
class Palindromo{
public static void main(String[] args)
{
String s1 = "NOELAMACOMOCAMALEON";
String s2 = ""; char car; boolean band;
int n = s1.length();
for(int i = 0; i < n; i++){
car = s1.charAt(i);
s2 = s2 + car;
}
if (s1.equals(s2)) band = true;
else band = false;
if (band) System.out.println("Es Palndromo");
else System.out.println("No es un Palndromo");
}
}
EJERCICIOS
1)
2)
3)
4)
1
1
1
1
1
2
1
3
Tema 3:
PROGRAMACIN
ORIENTADA A OBJETOS
MODIFICADORES DE CLASE
Una declaracin de clase puede ir precedida de
modificadores, que otorgan a la clase ciertas
propiedades:
public: Una clase pblica es accesible pblicamente
(desde cualquier lugar).
abstract: Una clase abstracta se considera incompleta
y no se pueden crear instancias de dicha clase. Esto
sucede porque la clase contiene al menos un mtodos
abstracto, que debe ser implementado por una
subclase.
final: Una clase final no admite subclases.
Una declaracin de clase puede estar precedida por
varios modificadores.
CREACIN DE UN OBJETO
Se utiliza la palabra reservada new:
<refObjeto> = new <NombreClase>();
Por ejemplo:
Complejo z;
z = new Complejo();
SOBRECARGA DE MTODOS
A veces se necesitan varios mtodos que hagan la
misma tarea, pero con argumentos de tipos distintos.
JAVA permite utilizar un mismo nombre para diferentes
mtodos, siempre que se pueda identificar cada mtodo.
Un mtodo se identifica por su nombre, el tipo de
retorno, el nmero de argumentos que tiene y el tipo de
cada uno de ellos.
void mostrarInt(int i)
void mostrarLong(long l)
void mostrarFloat(float f)
void mostrar(int i)
void mostrar(long l)
void mostrar(float f)
CONSTRUCTORES (1)
Un constructor es un tipo especial de mtodo que
permite construir un objeto de una clase.
Tienen el mismo nombre que la clase, y no definen un
tipo de retorno. Por ejemplo:
class Complejo{
. . .
public Complejo(int x, int y){
re = x; im = y;
}
. . .
}
Se utilizan junto con la palabra reservada new:
Complejo z = new Complejo(6, 3); z = 6 + 3i
CONSTRUCTORES (2)
Los constructores se pueden sobrecargar y son
opcionales.
Si no se define ningn constructor, JAVA proporciona
uno por defecto. Incorpora el siguiente cdigo a la clase.
class <NombreClase>{
...
public <NombreClase>() {...}
...
}
Si se define un constructor con argumentos, se pierde el
constructor por defecto.
Normalmente, en el constructor se inicializan las
variables miembro.
DESTRUCTORES
En JAVA no hay destructores de objetos como en C+
+.
El Recolector de Basura (garbage collector) es el
encargado de liberar la memoria:
ENCAPSULAMIENTO
El encapsulamiento consiste en el agrupamiento de
los atributos y mtodos en una misma estructura.
Permite la proteccin de la manipulacin externa de
algunas partes de los objetos.
Un objeto suele tener datos y cdigo privados, de
acceso restringido.
Fuerza al usuario a utilizar una interfaz para acceder a
los datos.
Hace que el cdigo sea ms fcil de mantener.
EJEMPLO DE ENCAPSULAMIENTO
class Fecha
{
public int dia;
public int mes;
public int anio;
}
...
Fecha f = new Fecha();
f.dia = 34;
f.mes = 14;
f.anio = 0;
...
class Fecha
{
private int
private int
private int
}
...
Fecha f = new
dia;
mes;
anio;
Fecha();
f.dia = 34;
ERROR
f.mes = 14;
ERROR
f.anio = 0;
...
ERROR
Archivo: PruebaComplejo.java
public class PruebaComplejo
{
Complejo a = new Complejo(1, 1);
Complejo b = new Complejo(2, 3);
float r = a.norma();
System.out.println(Norma de a: + r);
System.out.println(b.parteReal());
Complejo c = a.sumar(b);
c.mostrar();
}
HERENCIA (1)
Jerarqua de clases basada en agrupar atributos y/o
mtodos comunes.
HERENCIA (2)
Supongamos, por ejemplo, que tenemos la clase
Docente y la clase Alumno definidas como sigue:
class Docente
{
String nombre;
int dni;
int numLegajo;
}
class Alumno
{
String nombre;
int dni;
int numLibreta;
}
HERENCIA (3)
Definimos por lo tanto la clase Persona como sigue:
class Persona
{
String nombre;
int dni;
}
Y las clases derivadas, quedan de la siguiente
manera:
class Docente
class Alumno
extends Persona
extends Persona
{
{
int numLegajo;
int numLibreta;
}
}
SOBREESCRITURA DE MTODOS
Tambin denominados mtodos virtuales.
Una subclase puede modificar los mtodos que ha
heredado de la superclase, manteniendo los mismos
nombres, tipo de retorno y lista de argumentos. Por
ejemplo:
class Empleado{
...
int calcularVacaciones(){...}
}
class Jefe extends Empleado{
int numTrabajadores;
int calcularVacaciones(){...}
}
POLIMORFISMO
Polimorfismo significa muchas formas.
Una clase slo tiene una forma, pero una variable que
hace referencia a la superclase de una jerarqua puede
tener muchas formas (una por cada subclase).
PARMETROS POLIMRFICOS
class Mascota {...}
class Perro extends Mascota {...}
class Gato extends Mascota {...}
class Veterinario
{
void vacunar (Mascota m) {...}
}
...
Veterinario medico = new Veterinario();
Perro pichichu = new Perro();
Gato garfield = new Gato();
medico.vacunar(pichichu);
medico.vacunar(garfield);
COLECCIONES HETEROGNEAS
Hasta ahora vimos que un array slo poda contener
elementos del mismo tipo (coleccin homognea).
Utilizando polimorfismo se pueden tener elementos de
distinto tipo en un array (coleccin heterognea).
Se crean utilizando arreglos definidos con el tipo de la
superclase. Por ejemplo:
Mascota[] listaMascotas = new Mascota[5];
listaMascotas[0] = new Mascota();
listaMascotas[1] = new Perro();
listaMascotas[2] = new Gato();
listaMascotas[3] = new Gato();
listaMascotas[4] = new Perro();
MODIFICADOR STATIC
Los miembros de una clase pertenecen a los objetos.
Para acceder a las variables y mtodos de una clase, es
necesario crear primero un objeto.
El modificador static puede aplicarse a variables y a
mtodos para acceder a ellos sin instanciar ningn
objeto.
Los miembros estticos pertenecen a la clase, no a los
objetos (son los denominados atributos y mtodos de
clase).
[<modifAcceso>] [static] <tipo> <identificador>;
<modifAcceso>] [static] <tipo> <nombre> (<args>){
...
}
CLASES ABSTRACTAS
Una clase abstracta es una clase de la que no se
pueden crear objetos.
Representa un concepto que no se puede instanciar.
Se define anteponiendo el modificador abstract a la
definicin de una clase.
abstract class Figura {...}
class Cuadrado extends Figura {...}
class Triangulo extends Figura {...}
class Circulo extends Figura {...}
...
Figura f = new Figura(); ERROR
COMPATIBILIDAD DE OBJETOS
El up casting consiste en realizar el casting (moldeo)
hacia arriba en la jerarqua de clases.
Persona unaPersona;
Alumno unAlumno;
...
unaPersona = unAlumno; CORRECTO
// todos los alumnos son personas
unAlumno = unaPersona; ERROR
// no todas las personas son alumnos
unAlumno = (Alumno) unaPersona;
// down casting
CORRECTO
MTODOS ABSTRACTOS
Un mtodo es abstracto si se declara (dentro de una
clase abstracta), pero no se implementa. Por ejemplo:
abstract class Figura {
...
public abstract float area();
}
Todas las subclases de una clase abstracta, deben
implementar los mtodos abstractos que tengan
definidos.
class Cuadrado extends Figura {
...
public float area() {...}
}
INTERFACES (1)
Una interfaz es un conjunto de declaraciones de
mtodos.
interface <NombreInterfaz> {
<tipo> <nombreMtodo1> (<args>);
<tipo> <nombreMtodo2> (<args>);
}
Una clase que implementa el cdigo de la interfaz, debe
implementar todos sus mtodos, aunque no lleven
cdigo.
class <NombreClase> implements <NombreInterfaz>
{
<tipo> <nombreMtodo1> (<args>) {<cdigo>}
<tipo> <nombreMtodo2> (<args>) {<cdigo>}
}
INTERFACES (2)
interface
<tipo>
<tipo>
...
<tipo>
}
Interfaz {
<mtodo1>();
<mtodo2>();
<mtodoN>();
equivale a:
PAQUETES
EJEMPLO DE PAQUETE
EJEMPLO DE PAQUETE
SENTENCIA IMPORT
EJEMPLO DE IMPORT
import empresa.empleados.*;
public class Jefe extends Empleado {
String departamento;
Empleado[] subordinados;
}
PAQUETES ESTNDAR
Pblico
cdigo.
(public):
Acceso
total
desde
cualquier
Modificador
Misma Clase
Subclases
Mismo
Paquete
Universal
public
protected
private
EXCEPCIONES
PROPAGACIN DE EXCEPCIONES
SENTENCIA FINALLY
try {
// Cdigo que puede provocar excepciones
}
finally {
// Cdigo que se ejecuta siempre al final
}
abrirGrifo();
regarCesped();
}
catch (MangueraRotaException e) {
darAlarma();
llamarPlomero();
}
finally {
cerrarGrifo();
}
EJERCICIOS
1)
2)
Tema 4:
PROGRAMACIN
MULTIPROCESO
PROGRAMACION CONCURRENTE
Programa no
concurrente
Programa
concurrente
Proceso
}
}
Cdigo ejecutable
Datos
Pila
Registros PC
THREADS
Multitarea multihilo
HILOS Y PROCESOS
pero
no
ejecucin
Productor
Repetir x siempre
Produce elem.
Alm..lleno?
Dormir
ALMACEN
Consumidor
Repetir x siempre
Produce elem.
Alm..vacio?
Dormir
Poner elem.
Sacar elem.
Contar elem.
Contar elem.
Hay un elem.?
Desp. Cons.
Hay un lugar?
Desp. Prod
Tema 5:
INTERFACES
GRFICAS
EL PAQUETE SWING
Paquete de JAVA para la generacin de GUIs en
aplicaciones reales de gran tamao. Disponible como
paquete externo en JAVA 1.1 e integrado desde JAVA 1.2.
Escrito totalmente en JAVA. No reemplaza a AWT. Se
apoya sobre AWT y aade JComponents.
Utiliza el modelo de eventos de JAVA 1.1.
Eleccin entre diferentes aspectos (look & feel).
Arquitectura Model View Controller (MVC).
Nuevos componentes (rboles, tablas, frames internos,
iconos, bordes, tooltips, beans, etc.).
La
clase
Component
tiene
una
serie
de
funcionalidades bsica comunes (variables y
mtodos), que son heredados por todas sus subclases.
JFRAME (1)
Frame JFrame (Swing): Es una ventana que no est
contenida en otra ventana. Suele contener otros
componentes.
JFRAME (2)
Cuando se crea un objeto JFrame, se crea un objeto
Container (AWT). El objeto JFrame usa el panel de
contenido
(Container)
para
albergar
los
componentes del frame.
JLABEL
Las etiquetas son tiles en todas las GUIs, ya que
pueden servirnos para mostrar ttulos o escribir
carteles indicadores.
Mtodos principales:
JLabel(String): Constructor de la etiqueta, que pone
el texto en su contenido.
String getText(): Devuelve el texto que posee la
etiqueta.
void setText(String) : Cambia el texto original, por
otro que va como parmetro.
Por ejemplo:
JLabel titulo = new JLabel(TITULO);
JTEXTFIELD
Mtodos principales:
Por ejemplo:
JTextField dato = new JTextField(15);
JBUTTON
Mtodos principales:
void
setEnable(bolean):
desactiva (false) el botn.
Por ejemplo:
JButton boton = new JButton(CALCULAR);
Activa
(true)
JCHECKBOX
Mtodos principales:
JCheckBox(String, boolean): Constructor de un
botn con un texto como etiqueta, y si est o no
seleccionado inicialmente.
Por ejemplo:
JCheckBox a = new JCheckBox(Ftbol, true);
JCheckBox b = new JCheckBox(Tenis, false);
JCheckBox c = new JCheckBox(Rugby, false);
JRADIOBUTTON
Mtodo principal:
JRadioButton(String, boolean) : Constructor de un
botn con un texto como etiqueta y si est o no
seleccionado inicialmente.
Por ejemplo:
JRadioButton mujer, varon;
mujer = new JRadioButton(Mujer, true);
varon = new JRadioButton(Varn, false);
ButtonGroup sexo = new ButtonGroup();
sexo.add(varon); sexo.add(mujer);
JCOMBOBOX
Define una lista desplegable de opciones, de las que
una est seleccionada inicialmente, con el mtodo
setSelectedIndex.
Esta
clase
combina
las
funcionalidades de una lista y de un campo de texto.
Mtodos principales:
JComboBox(): Constructor de una lista desplegable.
int getSelectedIndex(): Devuelve la posicin del
item de la lista de opciones que est seleccionado.
Por ejemplo:
JComboBox sexo = new JComboBox();
sexo.addItem(Mujer);
sexo.addItem(Varn);
sexo.setSelectedIndex(0); Mujer
que
implementa
la
interfaz
FLOWLAYOUT (1)
FlowLayout coloca los componentes de izquierda a
derecha y de arriba hacia abajo:
FLOWLAYOUT (2)
import javax.swing.*;
import java.awt.*;
public class GUI_03 extends JFrame {
Container panel;
public GUI_03() {
super("GUI_03: Ejemplo de FlowLayout");
panel = getContentPane();
panel.setLayout(new FlowLayout());
for(int i = 1; i <= 8; i++)
panel.add(new JButton("Componente " + i));
setSize(200,200); setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
public static void main(String [] args) {
new GUI_03();
}
}
FLOWLAYOUT (3)
BORDERLAYOUT (1)
BorderLayout organiza el contenedor en cinco
zonas: Norte, Sur, Este, Oeste y Centro.
BORDERLAYOUT (2)
import javax.swing.*;
import java.awt.*;
public class GUI_04 extends JFrame {
Container panel;
public GUI_04() {
super("GUI_04: Ejemplo de BorderLayout");
panel = getContentPane();
panel.setLayout(new BorderLayout());
panel.add(new JButton("B1"), BorderLayout.EAST);
panel.add(new JButton("B2"), BorderLayout.SOUTH);
panel.add(new JButton("B3"), BorderLayout.WEST);
panel.add(new JButton("B4"), BorderLayout.NORTH);
panel.add(new JButton("B5"), BorderLayout.CENTER);
setSize(200,200); setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
....
BORDERLAYOUT (3)
GRIDLAYOUT (1)
GridLayout crea una zona de filas x columnas
componentes y stos se van acomodando de izquierda a
derecha y de arriba a abajo. Todas las celdas tienen el
mismo tamao.
setLayout(new GridLayout(filas, columnas))
GRIDLAYOUT (2)
import javax.swing.*;
import java.awt.*;
public class GUI_05 extends JFrame {
Container panel;
public GUI_05() {
super("GUI_05: Ejemplo de GridLayout");
panel = getContentPane();
panel.setLayout(new GridLayout(4, 3));
for (int i = 1; i <= 10; i++)
panel.add(new JButton(B + Integer.toString(i)));
setSize(200,200);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
...
GRIDLAYOUT (3)
Nombre:
Aceptar
Cerrar
3)
ADAPTADORES
Como puede ser molesto tener que implementar
todos los mtodos de una categora, cuando en
realidad solamente se necesitan algunos de ellos,
JAVA ofrece una clase adaptadora por cada categora
que tiene implementados todos los mtodos, sin
ninguna instruccin en ellos.
Por ejemplo:
WindowListener
WindowAdapter
MouseListener
MouseAdapter
KeyListener
KeyAdapater
EJERCICIOS
1)
Calculadora Sencilla
EJERCICIOS
2)
Calculadora de Fracciones