Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Curso JAVA (Desarrollo de Software II) - Documentación Resumen
Curso JAVA (Desarrollo de Software II) - Documentación Resumen
c.
r
L
e
o
a
rs
a
ar
r
ra
ay
ys
s
s
ae
n
óc
nr
ie
a
m
on
s
CURSO DE JAVA
c
(o
n
p
o
re
l
e
(Desarrollo de Software II)
jo
p
e
e
m
Documentación Resumen por Alba Cristal Muñoz :)
r
p
la
d
o
,o
r
cn
re
e
w
a
rs
e
g
u
u
n
i
n
d
u
o
e
v
d
o
e
l
a
r
rt
i
a
yp
o
CONTENIDO
I- TEORÍA
1. La API de JAVA
1.1. Definición
1.2. Estructura
1.3. Las Diez Librerias
1.4. Paquetes y sus Clases
- java.lang
- java.io
- java.awt
- java.util
- java.math
- java.text
- java.beans
- java.net
- java.security
- java.sql
2. Constructores
2.1. Definición
2.2. Formato
2.3. Ejemplos
3. Destructores
3.1. Definición
3.2. Garbage Collector
4. Estructuras de Control
4.1. Introducción
4.2. Sentencias condicionales: if-else y switch
4.2.1. Sentencia if-else
4.2.2. Sentencia switch
4.3. Sentencias de Iteración o Bucles: while, do-while y for
4.3.1. Bucle while
4.3.2. Bucle do-while
4.3.3. Bucle for
4.4. Sentencias de salto: break, continue y return
4.4.1. Sentencia break
4.4.2. Sentencia continue
4.4.3. Sentencia return
5. Sobrecarga de Métodos
5.1. Definición
5.2. Reglas para sobrecarga de métodos
5.3. Ejemplos de métodos sobrecargados
5.4. Invocación de métodos sobrecargados
5.5. Ejemplos
6. Excepciones
6.1. Concepto
6.1.1. Definición
6.1.2. ¿Qué es un Error?
6.1.3. Tratamiento de errores, funcionamiento de la pila de llamadas
6.2. Captura y Tratamiento de Errores
6.2.1. Try-catch
6.2.2. Try-catch-finally
6.2.3. Jerarquía y categorias de excepciones
6.2.4. Excepciones más frecuentes
6.2.5. Declarar, capturar, o propagar
6.2.6. Sentencia throw
6.2.7. Creación de excepciones de usuario
6.2.8. Ejemplos
7. Arreglos
7.1. Definición
7.2. Características
7.3. Declaración e Inicialización de Arreglos
7.5. Valores por Defecto
7.6. Ejemplos
8. Componentes Gráficos Básicos de JAVA
8.1. Qué es el AWT vs SWING
8.2. Componentes y Eventos
8.3. Layout Managers
8.3.1. FlowLayout
8.3.2. GridLayout
8.3.3. Border Layout
8.3.4. CardLayout
8.3.5. GridBagLayout
II- APLICACIÓN
1. Elementos Básicos
1.1. Comentarios
1.2. Palabras Reservadas
1.3. Identificadores
1.4. Tipos de Datos
1.5. Secuencia de Escape
1.6. Variables
1.7. Constantes
1.7.1. Literales
1.7.2. Simbólicas
1.8. Operadores
1.8.1. Operadores Aritméticos
1.8.2. Operadores Relacionales
1.8.3. Operadores Lógicos
1.8.4. Operadores de Asignación
1.8.5. Operadores Condicional '?'
1.9. Sentencias de Asignación
2. Estructura de un Programa
2.1. Sentencia 'import'
2.1 Clase
1.1.1. Atributos
1.1.2. Métodos
1.1.3. Objetos
2.3. Main
3. Entrada y Salida de Datos
3.1. Entrada y salida estándar (teclado y pantalla)
3.2. Métodos system.out.print() y system.out.println()
3.3. Método System.in.read()
3.4. Buffered Reader (lectura de cadenas)
3.5. JoptionPane
3.5.1. Entrada de datos con showInputDialog
3.5.2. Salida de datos con showInputDialog
El API de JAVA es una Interfaz de Programación de Aplicaciones, por sus siglas en inglés,
provista por los creadores del lenguaje Java, y que da a los programadores los medios para
desarrollar aplicaciones Java.
1.2. Estructura
package prueba;
public class HolaMundo
{
public static void main (String [ ] args)
{
System.out.println
Ejemplo: Las clases que quieran utilizar el interface VideoClip utilizarán la palabra
implements y proporcionarán el código necesario para implementar los métodos que se han
definido para el interface.
• Error
• Exception
• RuntimeException
Ejemplo:
at melon.main(melon.java:5)
1.3. Las Díez Librerias: La plataforma Java provee una librería de clases comunes
útiles para ser usadas en su propia aplicación. Esta librería se conoce como "Interfaz de
Programación de Aplicaciones" (API de Java). Sus paquetes representan las tareas más
comúnmente asociadas con programación de propósito general.
- java.io: las clases del paquete son principalmente streams; sin embargo, se
incluye una clase para ficheros de acceso aleatorio. Las clases centrales del
paquete son InputStream y OutputStream las cuales son clases abstractas.
- java.io
import java.io.*;
class Cifras {
static int total=0;
static int x=0;
x= Integer.parseInt(linea);
System.out.println("El numero de cifras es:");
//Imprimimos el número de líneas
System.out.println(numCifras(x));
}
}
- java.awt
import java.awt.*;
public class PanelSolo {
public static void main(String[] args) {
Frame f = new Frame("Ejemplo");
Panel p0 = new Panel();
Panel p1 = new Panel();
Panel p2 = new Panel();
Panel p3 = new Panel();
Panel p4 = new Panel();
f.add(p0,"North");
f.add(p1,"West");
f.add(p2,"South");
f.add(p3,"Center");
f.add(p4,"East");
- java.util
import java.text.NumberFormat;
import java.util.Locale;
NumberFormat nf1 =
NumberFormat.getInstance();
System.out.println(nf1.format(1234.56));
import java.text.NumberFormat;
import java.util.Locale;
NumberFormat nf1 =
NumberFormat.getInstance();
System.out.println(nf1.format(1234.56));
2.1. Definición:
El constructor de una clase es un método estándar para inicializar los objetos de esa clase
Se invoca automáticamente cuando “new” crea un objeto de esa clase. Se caracteriza por:
2.2. Formato:
El constructor posee un par de llaves, dentro de las cuales estará el código que se ejecutará al
ser llamada la función. Dicho código estará formado por instrucciones válidas en el lenguaje,
finalizadas generalmente por punto y coma.
class Dobby {
int x, y;
Dobby() { x=0; y=0; } // el constructor
...
}
Constructor (int a, int b) // lleva el mismo nombre que la clase y esta recibiendo parámetros.
{ x=a;
y=b;
}
int Evaluacion()
{ c=x+y;
return (c);
}
Se pueden colocar varios constructores. Durante la creación de un objeto, se invoca aquel que
calza con los argumentos dados:
class A {
int x, y;
A()
{ x=0; y= 0; }
A(int ix, int iy)
{ x=ix; y=iy; }
}
class B {
public static void main(String[] arg)
{ A a1= new A();
a1.Print(); // 0 0
A a2= new A(1,2);
a2.Print(); // 1 2 }
}
3- DESTRUCTORES
3.1. Definición:
• En los lenguajes declarativos: cada vez que se construye una expresión se reserva
memoria (de una manera inteligente), pero el programador no es consciente de ello.
Cuando se compila el programa, automáticamente se incluye en éste una sub-rutina
correspondiente al recolector de basura. Esta subrutina también es invocada periódicamente
sin la intervención del programador.
El recolector de basura es informado de todas las reservas de memoria que se producen en el
programa. Además, el compilador colabora para que sea posible llevar una cuenta de todas las
referencias que existen a un determinado espacio de memoria reservado.
Cuando se invoca el recolector de basura, recorre la lista de espacios reservados observando el
contador de referencias de cada espacio. Si un contador ha llegado a cero significa que ese
espacio de memoria ya no se usa y, por tanto, puede ser liberado.
4- ESTRUCTURAS DE CONTROL
4.1. Introducción
in.read();
in.read();
in.read();
Este código además de poco elegante sería inviable para una repetición de 3000 lecturas. Por
eso aparecen las estructuras de control, que facilitan que determinadas acciones se realicen
varias veces, mientras que una condición se cumpla, y en definitiva, tomar decisiones de qué
hacer en función de las condiciones que se den en el programa en un momento dado de su
ejecución.
int i=0;
for ( i=0 ; i <= 3 ; i++ )
in.read();
Donde bastaría cambiar el 3 por cualquier otro número para que la lectura se repitiese ese
número de veces. El lenguaje Java soporta las estructuras de control:
SENTENCIA CLAVE
Toma de decisión if-else / switch-case
Bucle for / while / do-while
Misceláneo break / continue / return
if ( condición )
Bloque de código a ejecutar si la condición es cierta
else
Bloque de código a ejecutar si la condición es falsa
La parte del else es opcional, y un bloque de código puede ser simplemente la
sentencia vacía; para representar que en ese caso no se ha de ejecutar nada.
Supongamos que un programa debe realizar diferentes acciones dependiendo de
si el usuario oprime el botón aceptar o el botón cancelar en una ventana de
dialogo. Nuestro programa puede realizar esto usando la sentencia if – else:
if (respuesta == Aceptar) {
// código para realizar la acción Aceptar
System.out.println( "Su peticion esta siendo atendida" );
}
else {
// código para realizar la acción Cancelar
System.out.println( "Cancelando accion" );
}
Ejemplo: supongamos que se desea escribir un programa que clasifique según el contenido
de una variable valor, asigne una letra a una variable clasificacion: A para un valor del
100-91, B de 90-81, C para 80-71 y F si no es ninguno de los anteriores:
int valor;
char clasificacion;
if (valor > 90)
{clasificacion='A';}
else
if (valor > 80)
{clasificacion='B';}
else
if (valor > 70)
{clasificacion='C';}
else
{clasificacion='F';}
switch ( expresionMultivalor ) {
case valor1 : conjuntoDeSentencias; break;
case valor2 : conjuntoDeSentencias; break;
case valor3: conjuntoDeSentencias; break;
default: conjuntoDeSentencias; break;
}
La sentencia switch evalúa la expresiónMultivalor y ejecuta el conjuntoDeSentencias
que aparece junto a la cláusula case cuyo valor corresponda con el de la
expresiónMultivalor.
Cada sentencia case debe ser única y el valor que evalúa debe ser del mismo tipo
que el devuelto por la expresiónMultivalor de la sentencia switch.
Finalmente, se puede usar la sentencia default para manejar los valores que no
son explícitamente contemplados por alguna de las sentencias case. Su uso es
altamente recomendado.
Ejemplo: supongamos un programa con una variable entera meses cuyo valor indica el
mes actual, y se desea imprimir el nombre del mes en que estemos. Se puede utilizar la
sentencia switch para realizar esta operación:
int meses;
switch ( meses ){
case 1: System.out.println( "Enero" ); break;
case 2: System.out.println( "Febrero" ); break;
case 3: System.out.println( "Marzo" ); break;
//Demás meses
// . . .
case 12: System.out.println( "Diciembre" ); break;
default: System.out.println( "Mes no valido" );
break;
}
Por supuesto, se puede implementar esta estructura como una sentencia if else if:
int meses;
if ( meses == 1 ) {
System.out.println( "Enero" );
}
else
if ( meses == 2 ) {
System.out.println( "Febrero" );
}
// Y así para los demás meses
El decidir si usar la sentencia if o switch depende del criterio de cada caso. Se puede decidir
cuál usar basándonos en la legibilidad, aunque se recomienda utilizar switch para sentencias
con más de tres o cuatro posibilidades.
4.3. Sentencias de iteración o bucles: for, do, while
4.3.1. Bucle while: El bucle while es el bucle básico de iteración. Sirve para
realizar una acción sucesivamente mientras se cumpla una determinada
condición. La forma general del bucle while es la siguiente:
while ( expresiónBooleana )
{
sentencias;
};
int i = 1;
while (i <= 100)
{
i = i * 2;
}
do {
sentencias;
} while
( expresiónBooleana );
Ejemplo: cuando se lee información de un archivo, se sabe que siempre se debe leer por lo
menos un carácter.
int c;
do {
c = System.in.read( );
// Sentencias para tratar el carácter c
} while ( c != -1 ); // No se puede leer más (Fin fichero)
4.3.2. Bucle for: Mediante la sentencia for se resume un bucle do-while con
una iniciación previa. Es muy común que en los bucles while y do-while se
inicien las variables de control de número de pasadas por el bucle, de una vez
antes de comenzar los bucles. Por eso el bucle for está tan extendido. La forma
general de la sentencia for es la siguiente:
- La iniciación es una sentencia que se ejecuta una vez antes de entrar en el bucle .
- La terminación es una expresión que determina cuándo se debe terminar el
bucle. Esta expresión se evalúa al final de cada iteración del bucle. Cuando la
expresión se evalúa a falso, el bucle termina.
- El incremento es una expresión que es invocada en cada iteración del bucle. En
realidad puede ser una acción cualquiera, aunque se suele utilizar para
incrementar una variable contador: for ( i = 0 ; i < 10 ; i++ ).
Algunos (o todos) estos componentes pueden omitirse, pero los puntos y coma
siempre deben aparecer (aunque sea sin nada entre sí).
Se debe utilizar el bucle for cuando se conozcan las restricciones del bucle (su
instrucción de iniciación, criterio de terminación e instrucción de incremento).
Ejemplo: los bucles for son utilizados comúnmente para iterar sobre los elementos de una
matriz, o los caracteres de una cadena:
Se puede etiquetar una sentencia poniendo una identificador Java válido seguido
por dos puntos antes de la sentencia: nombreSentencia: sentenciaEtiquetada.
Al interpretar break a, no solo se rompe la ejecución del bucle interior (el de j),
sino que se salta al final del bucle i, obteniéndose: i=1 j=1 j=2 j=3.
Nota: Se desaconseja esta forma de programación, basada en goto, y con saltos
de flujo no controlados.
4.3.1. Sentencia continue: Del mismo modo que en un bucle se puede desear
romper la iteración, también se puede desear continuar con el bucle, pero
dejando pasar una determinada iteración. Se puede usar la
sentencia continue dentro de los bucles para saltar a otra
sentencia, aunque no puede ser llamada fuera de un bucle.
Ejemplo: el siguiente fragmento de código imprime los números del 0 al 9 no divisibles por 3:
Del mismo modo que break, en las sentencias continue se puede indicar una
etiqueta de bloque al que hace referencia. Con ello podemos referirnos a un
bloque superior, si estamos en bucles anidados. Si dicha etiqueta no es indicada,
se presupone que nos referimos al bucle en el que la sentencia continue aparece.
void gotoContinue( ) {
f: for ( int i=1; i <5; i++ ) {
for ( int j=1; j<5; j++ ) {
if ( j>i ) {
System.out.println(" ");
continue f;
}
System.out.print( " " + (i*j) ); } } }
En este código la sentencia continue termina el bucle de j y continua el flujo en la siguiente
iteración de i. Ese método imprimiría:
1
2 4
3 6 9
4 8 12 16
4.3.1. Sentencia return: Puede usar para salir del método en curso y retornar
a la sentencia dentro de la cual se realizó la llamada.
Para devolver un valor, simplemente se debe poner el valor (o una expresión que
calcule el valor) a continuación de la palabra return. El valor devuelto
por return debe coincidir con el tipo declarado como valor de retorno del
método. Cuando un método se declara como void se debe usar la forma
de return sin indicarle ningún valor. Esto se hace para no ejecutar todo el código.
int contador;
boolean condicion;
int devuelveContadorIncrementado(){
return ++contador;
}
void metodoReturn(){
//Sentencias
if ( condicion == true )
return;
//Más sentencias a ejecutar si condición no vale true
}
5- SOBRECARGA DE MÉTODOS
5.1. Definición
Java permite métodos sobrecargados (overloaded), es decir, métodos distintos que poseen el
mismo nombre, y que se diferencian por el número y/o tipo de argumentos que poseen.
- Si los métodos van a tener el mismo nombre, deben tener diferentes parámetros, para
que puedan ser distinguidos.
// Método de clase (Se trata de un método diferente, public Ejemplo2() { monedas = 50;
aunque tenga el mismo nombre, ya que tiene dos }
parámetros) // Los métodos tienen el mismo nombre, pero difieren en
c = Circulo.elMayor(c1, c2); } parámetros
A la hora de llamar a un método sobrecargado, Java sigue una serie de reglas para determinar
el método concreto al que debe llamar:
Si sólo existen métodos con argumentos de un tipo más restringido (por ejemplo, int en vez de
long), el programador debe hacer un cast explícito en la llamada, responsabilizándose de esta
manera, de lo que pueda ocurrir.
5.5. Ejemplos
class Calculos {
int a = 10, b = 20;
public int suma() {
int x;
x = a + b;
return (x); }
// No es posible crear dos métodos sobrecargados, que solo difieran en el valor de retorno.
// Deben tener diferente cantidad o tipo de parámetros.
TIPOS DE ERRORES
- Excepción: Se trata de un conjunto de excepciones que el programa del
usuario debería capturar, es decir, resolver.
- Error: Esta clase representa fallos, generalmente, no controlados que
originan la parada del programa en ejecución.
- Excepciones no capturadas: El propio interprete de java es el encargado de
resolver el problema.
- Excepciones capturadas: El programador debe encargarse de capturar y
resolver el problema, si no lo hace el programa no compilará.
Pila de llamadas (en inglés call stack) es una estructura dinámica de datos LIFO,
(una pila), que almacena la información sobre las subrutinas activas de
un programa de computadora.
La principal razón de su uso, es seguir el curso del punto al cual cada subrutina
activa debe retornar el control cuando termine de ejecutar.
Un método Java puede "esquivar" cualquier excepción lanzada dentro de él, por
lo tanto permite a los métodos que están por encima de él en la pila de llamadas
poder capturarlo.
6.2. Captura y Tratamiento de Errores
try try-block
catch (exception-declaration-1) catch-block-1
catch (exception-declaration-2) catch-block-2
...
try try-block catch catch-block
catch (NumberFormatException e)
{
// Exception handling statements.
}
try
{ int x = Integer.parseInt(argv[0]); }
catch (ArrayIndexOutOfBoundsException e)
{ System.out.println(e); }
catch (NumberFormatException e)
{ System.out.println(e);}
catch (Exception e)
{ System.out.println(e);}
6.2.2. Try-catch-finally: Para los Bloques try/catch existe una variación que
consiste en agregar una sección denominada finally, dicha estructura estaría
compuesta de la siguiente manera:
try {
// Código que pueda generar Errores ("Exception's")
} catch(Tipo1 id1) { // Manejar "Exception's" para la Clase Tipo1 }
catch(Tipo2 id2) { // Manejar "Exception's" para la Clase Tipo2 }
catch(Tipo3 id3) { // Manejar "Exception's" para la Clase Tipo3 }
finally {
// Actividades que siempre ocurren }
La utilización de finally es empleada dentro de un Bloque try/catch para realizar
tareas que deben ser ejecutadas independientemente del comportamiento de
errores.
6.2.5. Sentencia throw: Todos los métodos Java utilizan la sentencia throw
para lanzar una excepción. Esta sentencia requiere un sólo argumento, un objeto
Throwable. En el sistema Java, los objetos lanzables son ejemplares de la clase
Throwable definida en el paquete java.lang.
- Ejemplo: throw algunObjetoThrowable;
Si se intenta lanzar un objeto que no es lanzable, el compilador rehusa la
compilación del programa y muestra un mensaje de error similar a éste:
Exception {
int exito;
int puerto = 80;
exito = open( nombreServidor,puerto );
if( exito == -1 )
throw ServerTimeOutException;
}
6.2.8. Ejemplos:
import java.io.IOException;
// ...
Un arreglo es una colección de objetos numerados del mismo tipo, en donde cada variable o
celda en el arreglo tiene un índice. Las celdas están numeradas del 0 al N-1, donde N es el
número de celdas del arreglo es decir su capacidad. Java implementa los arreglos como
objetos que pueden ser tratados como cualquier otro objeto. Para utilizar un arreglo en Java:
1. Declare una variable para que contenga el arreglo
2. Cree un nuevo arreglo de objeto y asígnelo a la variable de arreglo
3. Almacene información en ese arreglo
4. Realice operaciones de almacenamiento y recuperación con los elementos del
arreglo
7.2. Características:
- Los arrays se crean con el operador new seguido del tipo Y número de
elementos.
- Se puede acceder al número de elementos de un array con la variable miembro
implícita length (por ejemplo: vect.length).
- Se accede a los elementos de un array con los corchetes [] y un índice que varía
de length-1.
- Se pueden crear arrays de objetos de cualquier tipo. En principio un array de
objetos es un array de referencias que hay que completar llamando al operador
new.
- Los elementos de un array se inicializan al valor por defecto del tipo
correspondiente.
- Como todos los objetos, los arrays se pasan como argumentos a los métodos
por referencia.
- Se pueden crear arrays anónimos (por ejemplo, crear un nuevo array como
argumento actual en la llamada a un método).
UNIDIMENSIONALES BIDIMENSIONALES
tipo nombre_array[] = new tipo [nº] tipo nombre_array[][] = new tipo [nº]
tipo nombre_array[] = {valores} tipo nombre_array[][] = {valores}
7.5. Ejemplos
class ArregloNombres
{
String[] nombres = { "Dennis", "Grace", "Bjarne", "James"};
String[] apellidos = new String[nombres.length];
void imprime()
{
int i = 0;
System.out.println(nombres[i] + " " + apellidos[i]);
i++;
System.out.println(nombres[i] + " " + apellidos[i]);
i++;
System.out.println(nombres[i] + " " + apellidos[i]);
i++;
System.out.println(nombres[i] + " " + apellidos[i]);
}
package ejemplos;
// Intetamos acceder a un elemento que esta fuera de los limites del array
System.out.println( "Elemento fuera de limites del array" );
matriz[4][0] = 7;
AWT es un conjunto de herramientas GUI (Interfaz Gráfica con el Usuario) diseñadas para
trabajar con múltiples plataformas.
Además del paquete java.awt, Java pone a disposición del programador el paquete
javax.swing para crear unas interfaces gráficas. Swing ha sido totalmente escrito en Java
utilizando el paquete awt, y pone a disposición del usuario muchas clases que están también
en awt, pero mucho mejores y más potentes. Además introduce muchas más clases que no
están en awt.
1. ELEMENTOS BÁSICOS
1.1. Comentarios
En JAVA podemos hacer los comentarios de dos formas diferentes: utilizando '//' o '/* .. */' si
el comentario se extiende a más de una línea.
Son aquel grupo de palabras (identificadores) que no pueden ser utilizadas por el usuario par
nombrar variables, funciones, métodos, objetos y demás elementos. Esto se debe a que el
propio lenguaje ya las utiliza.
1.3. Identificadores
Son los nombres que reciben las clases, interfaces, paquetes, métodos, variables o instancias
en un programa. Para su escritura esta lleva ciertas reglas generales:
- Todos los identificadores han de comenzar con una letra, el carácter subrayado (_) o
el carácter dollar ($).
- Puede seguir con números o combinados.
- No puede incluir caracteres de espacio en blanco.
- Distingue entre letras mayúsculas y minúsculas.
- No se pueden utilizar las palabras reservadas como identificadores.
IDENTIFICADOR CONVENCIÓN EJEMPLO
Nombre de una Clase Comienza con letra mayúscula Azul, Calculos
Nombre de Métodos Comienza con letra minúscula CalculaArea(), setColor()
Nombre de una Variable Comienza con letra minúscula area, base, altura
Nombre de una Constante En letras mayús ACMR, PI, ITBM
Las secuencias de escape son valores que se pueden incluir dentro de los print o println,
también se pueden guardar como variables tipo 'String' y estas nos permiten: imprimir una
nueva linea, dar espacio de tab, incluir retorno, entre otros.
SECUENCIA SIGNIFICADO
\b Retroceso
\t Tabulación
\n Nueva línea
\f Avance de página
\r Retorno de carro sin avance de línea
\“ Dobles comillas ( “ ”)
\‘ Comillas simples ('')
\\ Barra inclinada inversa ( / )
\uxxxX Carácter Unicode
1.6. Variables:
Almacenan datos cuyo valor puede ser modificado durante la ejecución de un programa. Un
nombre que se asocia a una porción de memoria que recibe un valor como contenido.
- Declaración de Variable: Para utilizar una variable se necesita declararla e
indicar al compilador el nombre de la variable, así como el tipo de dato que
representa. Sintáxis: tipoDato nombreVariable;. Java permite declarar las
variables en cualquier parte de un bloque de instrucciones.
boolean b;
int numero;
float decimal=43.32f;
int contador=0;
char c=’a’;
1.7. Constantes
Son datos cuyo valor no puede variar durante la ejecución de un programa. Java no soporta
directamente constantes. Sin embargo, una variable static final es una constante. El
modificador static hace que la variable que esté disponible sin tener que cargar una instancia
de la clase donde se define. El modificador final hace que la variable a ser inmutable. En un
programa pueden aparecer constantes de dos tipos:
1.8. Operadores:
Los operadores de un lenguaje pueden cambiar o modificar los valores de un programa. Java
define operadores aritméticos, relacionales, lógicos de manipulación de bits, de conversión de
tipo, de clase, de selección y de asignación.
OPERADOR DESCRIPCIÓN
+ Suma: a + b
- Resta a - b
* Multiplicación a * b
/ División a / b
% Módulo a % b (residuo de la división)
++ Incremento a++ ó ++a a=a+1
-- Decremento a-- ó --a a=a -1
OPERADOR DESCRIPCIÓN
== Igualdad a = = b
!= Desigualdad a != b
> Mayor que a > b
< Menor que a < b
>= Mayor o igual a >= b
<= Menor o igual a <= b
1.8.3. Operadores Lógicos: Se utilizan para construir expresiones lógicas,
combinando valores lógicos (true y/o false) o los resultados de los operadores
relacionales.
EJEMPLO EQUIVALENCIA
x = 10; if (x>5)
y = x > 5 ? 100 : 200; y=100;
else
y=200;
2. ESTRUCTURA DE UN PROGRAMA
2.1. Sentencia 'import':
La sentencia 'import' sirve para establecer vínculos con otras clases de la biblioteca de java, o
con clases propias. Sólo indica al compilador e intérprete de java dónde encontrar una (o
varias) clases. En algunos casos puede omitirse; las clases públicas son importadas de manera
automática para todos los programas. Debe escribirse antes de cualquier definición de clase.
Para poder utilizar las clases que se agrupan en un paquete, se utiliza la instrucción:
import nombrepaquete.clases_a_importar
2.2. Clases:
Patrones que indican cómo construir los objetos. Toda aplicación en java está formada por, al
menos, una clase, la cual define un método denominado main (entrada y salida de la
aplicación).
CLASE
Atributos
Métodos
Cuando se define una clase, el nombre de la clase se convierte en un nuevo tipo de dato y se
utiliza tanto para:
- Declarar variables de ese tipo.
- Como para crear objetos del mismo.
El programador elige los nombres de las clases, objetos y métodos. Debe hacerlo lo más
significativo posible. Los nombres de las clases tienen características generales:
- Los nombres consisten de letras(mayúsculas y minúsculas) y dígitos (0-9).
- Deben empezar con una letra.
- La convención indica que los nombres de las clases empiezan con una letra mayúscula.
- Los nombres de los objetos y métodos empiezan con letras minúsculas.
class <NombreClase>
{ // declaración de atributos
<tipo> <variable>;
// declaración de métodos
<tipo> <nombreMétodo> ( <argumentos> )
{ … }
}
El nombre del fichero JAVA debe coincidir con el de la clase
definida en él: <nombreclase>.java
- Estructura de una Clase
//métodos
acceso tipo nombre_metodo1(lista de parámetros){cuerpo del
metodo}
acceso tipo nombre_metodo2(lista de parámetros){cuerpo del
metodo}
}
- Ejemplo
class Fecha
{
// Atributos
int dia;
int mes;
int anno;
// Métodos
void asignarDía (int d) {…}
String darFormato () {…}
}
2.2.2. Métodos: Los métodos son acciones que se realizan por un objeto de
una clase. Los métodos son bloques de código (subprogramas), definidos
dentro de una clase.
Existen dos tipos de métodos: los devuelven un valor único y aquellos que
ejecutan alguna acción distinta de devolver un único valor. Los métodos que
realizan alguna acción distinta de devolver un valor se denominan métodos void.
MÉTODO EJEMPLO
1. Si el método devuelve un valor, la int mayor = max(3,4);
llamada al método se trata // Se llama al método max(3,4) y asigna el
normalmente como un valor. resultado del método a la variable mayor.
System.out.println(“Invocación”);
2. Si el método devuelve void, una
llamada al método debe ser una // El método println ( ) devuelve void.
sentencia.
- Ejemplo
- Ejemplo Completo
CREACIÓN DE UN OBJETO
- Se utiliza la palabra 1. Creación de la clase class Fecha
reservada new { // declaración de //variables
<refObjeto> = new //declaración de los //métodos }
<NombreClase> ();
2. Declarar los objetos Fecha reunion;
- Ejemplo: 3. Crear el objeto reunion = new Fecha ()
Fecha reunión:
reunion = new Fecha ();
2.3. Main:
- System.in: Objeto de la clase InputStream preparado para recibir datos desde la entrada
estándar del sistema (habitualmente el teclado).
- System.out: Objeto de la clase PrintStream que imprimirá los datos en la salida estándar del
sistema (normalmente asociado con la pantalla).
- System.err: Objeto de la clase PrintStream. Utilizado para mensajes de error que salen
también por pantalla por defecto.
System.out.println("Hola!");
System.out.println(7);
double numero PI = 3.141592654;
System.out.println(numeroPI);
String hola = new String("Hola");
System.out.println(hola);
char c;
c=(char)System.in.read();
variable=entrada.readLine();
Devuelve un objeto cadena con los caracteres leídos hasta encontrar el fin de línea, si no
encuentra el fin de archivo devuelve null.
- Ejemplos:
import java.io.*;
class Entrada
{
public static void main(String args[ ] ) throws IOException
{
InputStreamReader reader = new InputStreamReader(System.in);
BufferedReader input = new BufferedReader(reader);
System.out.print("Entre su nombre: ");
String nom = input.readLine();
System.out.println("Hola, " + nom + "!");
}
}
import java.io.*;
class Edad
{
public static void main(String args[ ] ) throws IOException
{
InputStreamReader reader = new InputStreamReader(System.in);
BufferedReader input = new BufferedReader(reader);
System.out.print("Entre su Edad: ");
String texto = input.readLine();
int edad = new Integer(texto).intValue();
System.out.println("Edad actual " + edad);
int año = 2010 – edad;
System.out.println(“Su año de nacimiento es:” + año);
}
}
3.5. JoptionPane
La biblioteca de clases estándar de JAVA incluye una amplia gama de componentes para la
construcción de interfaces gráficas de usuario.
String entrada;
entrada = JoptionPane.showInputDialog
( "Introduzca un valor" );
entrada = JOptionPane.showInputDialog
( null,"Introduzca un valor",
"Mi programa en Java",
JOptionPane.QUESTION_MESSAGE );
entrada = JOptionPane.showInputDialog
( null, "Introduzca un valor”,
“Otro programa en Java",
JOptionPane.INFORMATION_MESSAGE );
JOptionPane.showMessageDialog
(null, “¡Bienvenido a Java!”);
JOptionPane.showMessageDialog
(null, “¡Bienvenido a Java!”,
“Programa de ejemplo”,
JOptionPane.INFORMATION_MESSAGE );
JOptionPane.showMessageDialog
(null, “¡Bienvenido a Java!”,
“Programa de ejemplo”,
JOptionPane.WARNING_MESSAGE );
JOptionPane.showMessageDialog
(null, “¡Bienvenido a Java!”,
“Programa de ejemplo”,
JOptionPane.ERROR_MESSAGE );
III- REFERENCIAS BIBLIOGRÁFICAS
• API de JAVA:
- http://download.oracle.com/javase/6/docs/api/
• Constructores:
- http://programandoenjava.over-blog.es/article-32829724.html
- http://javabasico.osmosislatina.com/curso/progbasico2/constructores.htm
• Sobrecarga de Métodos:
- http://www.ingenieriasw.com/sobrecargametodosjava
- http://www.mitecnologico.com/Main/SobrecargaMetodos
• Excepciones:
- http://elvex.ugr.es/decsai/java/pdf/B2-excepciones.pdf
- http://www.slideshare.net/jent46/excepciones-en-java-presentation
- http://zarza.fis.usal.es/~fgarcia/doc/tuto2/II_8.htm
• Arreglos:
- http://www.slideshare.net/dare3_16/arreglos-en-java
- http://delfosis.uam.mx/~sgb/Java/Arreglos.html
• JOptionPANE
- http://chuwiki.chuidiang.org/index.php?title=JOptionPane_y_di%C3%A1logos_modales
- http://www.javabeginner.com/java-swing/java-joptionpane-class-example
- http://elvex.ugr.es/decsai/java/pdf/2F-Programas.pdf