You are on page 1of 23

TUTORIAL DE JAVA

ESTRUCTURA GENERAL DE UN PROGRAMA

//Importación de API’s

public class Nombre_Clase


{
//Declaración Variables Globales (Públicas)

//Declaración de Métodos o Funciones

public static void main ( String args[] )


{
//Declaración de Constantes

//Declaración de Variables

//Cuerpo del Programa


}

//Declaración de Métodos o Funciones


}

MÉTODOS O FUNCIONES

[private | protected | public ] [ static ] [ final ] [ abstrac ] [ siychronized ] <tipo> Nombre_Método


(<tipo> parámetro_1, …, <tipo> parámetro_n);
{
[ Declaración de Constantes ]

[ Declaración de Variables ]

Cuerpo de la Método

[ return Valor_Devuelto ]
}

1
TIPOS DE DATOS EN JAVA

TAMAÑO RANGO DE VALORES


DATO
(BITS) MININO MÁXIMO
byte 8 -128 127
short 16 -32, 768 32, 767
int 32 -2, 147, 483, 648 2, 147, 483, 647
long 24 -9, 223, 372, 036, 854, 775, 808 -9, 223, 372, 036, 854, 775, 807
-45 38
float 32 -1.4 x 10 a -3.4 x 10 1.4 x 10-45 a 3.4 x 1038
double 34 -4.9 x 10-324 a -1.8 x 10308 4.9 x 10-324 a 1.8 x 10308
char 16 Conjunto de Caracteres Unicode ISO
boolean 1 true / false (Verdadero / Falso)

OPERADORES

Operadores Aritméticos

OPERADOR OPERACION
* Multiplicación
/ División
% Modulo (Residuo de una División)
+ Suma
- Resta

Operadores de Concatenación

OPERADOR OPERACION
+ Concatenación de Cadenas

Operadores de Asignación

OPERADOR OPERACION EQUIVALENCIA


= Asignación
*= Asignación y Multiplicación OP1 = OP1 * OP2
/= Asignación y División OP1 = OP1 / OP2
%= Asignación y Módulo OP1 = OP1 % OP2
+= Asignación y Suma OP1 = OP1 + OP2
-= Asignación y Resta OP1 = OP1 - OP2

2
Operadores de Comparación

OPERADOR OPERACION
> Mayor que…
< Menor que…
== Igual que…
>= Mayor ó Igual que…
<= Menor ó Igual que…
!= Diferente que…

Operadores Lógicos

OPERADOR OPERACION
&& Conjunción (AND)
|| Disyunción (OR)
! Negación (NOT)
^ Exclusión (XOR)

Operadores sobre Bits

OPERADOR OPERACION
>> Desplazamiento a la Derecha (con signo)
<< Desplazamiento a la Izquierda
>>> Desplazamiento a la Derecha (sin signo)
& Conjunción (AND)
| Disyunción (OR)
^ Exclusión (XOR)
~ Complemento

Operadores Unarios

OPERADOR OPERACION
++ Incremento en 1
-- Decremento en 1
+ Valor Positivo
- Valor Negativo o Cambio de Signo

Operador Condicional

3
OPERADOR USO
?: Expresión ? Operación_Verdadera : Operación_Falsa;

PRECEDENCIA DE OPERADORES

DESCRIPCIÓN OPERADORES
Operadores Unarios ++, --, +, -, ~, !
Multiplicación y División *, /, %
Suma y Resta +, -
Desplazamiento <<, >>, >>>
Operadores Relacionales <, >, <=, =>
Equivalencia ==, !=
Operador AND para Bits &
Operador XOR para Bits ^
Operador OR para Bits |
Operador AND &&
Operador OR ||
Condicional ?:
Operadores de Asignación =, +=, -=, *=, /=, %=, &=, ^=, |=, <<=, >>=, >>>=

4
SECUENCIAS DE ESCAPE

SECUENCIA DESCRIPCIÓN
\t Tabulador (TAB)
\n Salto de Línea (NEW LINE)
\r Retorno de Carro (CARRIAGE RETURN)
\b Borrado a la Izquierda (BACKSPACE)
\’ Comilla Simple (‘)
\” Comillas Dobles (“)
\\ Diagonal Invertida (\)

COMENTARIOS

SINTAXIS USO
// Comentario Comentario para una sola línea.
/* Comentario 1
Comentario 2
Comentarios de más de una línea.

Comentario “n” */

DECLARACIÓN DE VARIABLES Y CONSTANTES

Variables

DECLARACIÓN EJEMPLO
int i;
[private | protected | public ] [ static ] <tipo> identificador;
int Suma = 0;

Constantes

DECLARACIÓN EJEMPLO
final float pi = 3.141592;
[private | protected | public ] final <tipo> identificador;
final int Alumnos = 5;
ESTRUCTURAS DE CONTROL

If… Else → Comparación de Casos Simples

5
if ( Condición ) {
Sentencias
}
[else{
Sentencias
}]

If… Else If… Else → Comparación de Casos Simples

if ( Condición ) {
Sentencias
}
else if ( Condición ) {
Sentencias
}
[else{
Sentencias
}]

Switch → Comparación de Casos Múltiples

switch ( Expresion_Comparada ) {
Case valor1:
Sentencias;
break;
Case valor2:
Sentencias;
break;
[default:
Sentencias;]
}

Try… Catch → Control de Errores

try {
Sentencias;
} catch ( Excepción ) {
Sentencias;
}

6
ESTRUCTURAS DE BUCLES

While → Se ejecuta si se cumple la condición

[ Inicialización; ]
while ( Condición ) {
Sentencias;
[ Iteración; ]
}

Do… While → Se ejecuta al menos una vez

[ Inicialización; ]
do {
Sentencias;
[ Iteración; ]
} while ( Condición )

For → Se ejecuta un número determinado de veces

for ( Inicialización; Condición; Iteración; ) {


Sentencias;
}

BREAK Y CONTINUE

Break → Detiene un switch ó un bucle

break [ Etiqueta ];

Continue → Regresa al principio de un bucle

continue [ Etiqueta ];

ARRAYS

7
Vectores

DECLARACIÓN EJEMPLO
<tipo> Nombre_Vector [ ]; int Numeros;
Nombre_Vector [ ] = new <tipo> [ Tamaño ]; Numeros = new int [5];

<tipo> Nombre_Vector [ ] = new <tipo> [ Tamaño ]; int Numeros = new int [5];

Matrices

DECLARACIÓN EJEMPLO

<tipo> Nombre_Matriz [ ] [ ]; int Numeros;


Nombre_Matriz [ ] [ ] = new <tipo> [ Filas ] [ Columnas ]; Numeros = new int [5][3];

<tipo> Nombre_Matriz [ ] [ ] = new <tipo> [ Filas ] [ Columnas ]; int Numeros = new int [5][3];

ENTRADA Y SALIDA DE DATOS

API “javax.swing.*”

showMessageDialog

8
• Título e Icono por Defecto

JOptionPane.showMessageDialog ( null, "Texto del Mensaje" );

• Título Personalizado e Icono de Información

JOptionPane.showMessageDialog ( null, "Texto del Mensaje", "Título del Marco",


JOptionPane.INFORMATION_MESSAGE );

• Título Personalizado e Icono de Aviso

JOptionPane.showMessageDialog ( null, "Texto del Mensaje", "Título del Marco",


JOptionPane.WARNING_MESSAGE );

• Título Personalizado e Icono de Error

JOptionPane.showMessageDialog ( null, "Texto del Mensaje", "Título del Marco",


JOptionPane.ERROR_MESSAGE );

• Título Personalizado y sin Icono

JOptionPane.showMessageDialog ( null, "Texto del Mensaje", "Título del Marco",


JOptionPane.PLAIN_MESSAGE );

showInputDialog

• Título Defecto

JOptionPane.showInputDialog ( null, "Texto de Entrada", JOptionPane.PLAIN_MESSAGE );

• Título Personalizado

JOptionPane.showInputDialog ( null, "Texto de Entrada”, "Título del Marco",


JOptionPane.PLAIN_MESSAGE );

9
CONVERSIÓN DE TIPOS

String a Byte

Byte.parseByte ( String )

String a Short

Short.parseShort ( String )

String a Int

Integer.parseInt ( String )

String a Long

Long.parseLong ( String )

String a Float

Float.parseFloat ( String )

String a Double

Double.parseDouble ( String )

String a Boolean

Boolean.getBoolean ( String )

Int, Long, Float y Double a String

String.valueOf ( <Tipo> );

10
CREACIÓN DE LIBRERÍAS (PACKAGE)

DIRECTORIO DE TRABAJO

LIBRERIAS

PAQUETE.CLASS

package LIBRERIAS;

public class PAQUETE


{
Método_1 ( Parámetros )

Método_2 ( Parámetros )

Método_n ( Parámetros )
}

UTILIZACIÓN DE LIBRERÍAS (IMPORT)

DIRECTORIO DE TRABAJO

LIBRERIAS

PAQUETE.CLASS

import LIBRERIAS.*;

public class Nombre_Programa


{
public static void main ( String args[] )
{

PAQUETE.Método ( Parámetros );

//Cuerpo del Programa


}
}

11
OBJETOS, MIEMBROS Y REFERENCIAS

Declarar Objetos Referenciados

Nombre_Clase Objeto_Referenciado = new Nombre_Clase ( [ Parámetros ] );

Acceso a Miembros de un Objeto

Objeto_Referenciado.Nombre_Miembro_Objeto

Acceso a Métodos de un Objeto

Objeto_Referenciado.Nombre_Método ( [ Parámetros ] );

PROGRAMACIÓN CONCURRENTE

Creación de un Hilo (Thread)

class Nombre_Hilo extends Thread


{
// Declaración de Variables y Constantes

// Creación del Constructor


public Nombre_Hilo ( [ Parámetros ] )
{
Inicialización de Variables;
}

// Cuerpo del Hilo (Acciones)


public void run ( )
{
// Declaración de Variables y Constantes

Bloque de Acciones;
}
}

Creación de la Instancia del Hilo

Nombre_Hilo Objeto_Referenciado = new Nombre_Hilo ( [ Parámetros ] );

Inicio y Ejecución del Hilo (Usando el Objeto Referenciado)

Objeto_Referenciado.start ( );
Inicio y Ejecución del Hilo (Forma Directa)

new Nombre_Hilo ( [ Parámetros ] ).start ( );

12
Creación de un Hilo (Runnable)

class Nombre_Hilo implements Runnable


{
// Declaración de Variables y Constantes

// Creación del Constructor


public Nombre_Hilo ( [ Parámetros ] )
{
Inicialización de Variables;
}

// Cuerpo del Hilo (Acciones)


public void run ( )
{
// Declaración de Variables y Constantes

Bloque de Acciones;
}
}

Creación de la Instancia del Hilo

Nombre_Hilo Objeto_Referenciado = new Nombre_Hilo ( [ Parámetros ] );

Inicio y Ejecución del Hilo (Usando el Objeto Referenciado)

new Thread (Objeto_Referenciado).start ( );

Inicio y Ejecución del Hilo (Forma Directa)

new Thread (new Nombre_Hilo ( [ Parámetros ] )).start ( );

13
MÉTODOS DE LA CLASE THREAD

TIPO MÉTODO DESCRIPCIÓN


public static Threa currentThread ( ) Retorna una referencia al hilo que se está
d ejecutando actualmente.
public static void dumpStack ( ) Imprime una traza del hilo actual. Usado
sólo con propósitos de depuración.
public String getName ( ) Retorna el nombre del hilo.
int getPriority ( ) Retorna la prioridad del hilo.
public final boolean isAlive ( ) Chequea si el hilo está vivo. Un hilo está
vivo si ha sido lanzado con start y no ha
muerto todavía.
public final void isDaemon ( ) Devuelve verdadero si el hilo es daemon.
public foral void join ( ) throws InterruptedException Espera a que este hilo muera.
public final void join (long millis) throws Espera como mucho millis milisegundos
InterruptedException para que este hilo muera.
public final void join (long millis, int nanos) throws Permite afinar con los nanosegundos el
InterruptedException tiempo a esperar.
public void resume ( ) Se usa para recomenzar un hilo que esta
suspendido.
NOTA: resume = reanudar.
public void run ( ) Si este hilo fue construido usando un
objeto que implementaba Runnable,
entonces el método run de ese objeto es
llamado. En cualquier otro caso este
método no hace nada y retorna.
public final void setDaemon (boolean on) Marca este hilo como daemon si el
parámetro on es verdadero o como hilo
de usuario si es falso. El método debe ser
llamado antes de que el hilo sea lanzado.
public foral void setName (String name) Cambia el nombre del hilo por name.
public final void setPriority (int newPriority) Asigna la prioridad newPriority a este hilo.

NOTA: acepta valores de 1 a 10.


public static void sleep (long millis) throws Hace que el hilo que se está ejecutando
InterruptedException actualmente cese su ejecución por los
milisegundos especificados en
milisegundos. Pasa al estado dormido. El
hilo no pierde la propiedad de ningún
cerrojo que tuviera adquirido con
synchronized.
public static void sleep (long millis, int nanos) throws Permite afinar con los nanosegundos
InterruptedException nanos el tiempo a estar dormido.
public void start ( ) Hace que el hilo comience su ejecución.
La MVJ llamará al método run de este
hilo.
public void stop ( ) Hace que el hilo termine su ejecución.
public void suspend ( ) Hace que el hilo interrumpa
temporalmente su ejecución.
public String toString ( ) Devuelve una representación en forma de
cadena de este hilo, incluyendo su

14
nombre, su prioridad y su grupo.
public static void yield ( ) Hace que el hilo que se está ejecutando
actualmente pase al estado listo,
permitiendo a otro hilo ganar el
procesador.
NOTA: yield = Ceder el paso.

15
INTERFAZ GRÁFICA DE USUARIO (GUI)

Creación de Botones

Button Nombre_Botón = new Button ( “Valor_Botón” );

Creación de Combos

Choice Nombre_Combo = new Choice ( );

Agregar Elementos a un Combo

Nombre_Combo.addItem ( “Elemento_Combo” );

Creación de Botones de Comprobación

Checkbox Nombre_Botón = new Checkbox ( “Valor_Botón” );

Creación de Botones de Selección

CheckboxGroup Nombre_Botón = new CheckboxGroup ( );

Agregar Botones de Selección a un Contenedor

Nombre_Contenedor.add ( new Checkbox( "Valor_Botón", Nombre_Botón, Status_Seleccion → true / false) );

Creación de Etiquetas

Label Nombre_Etiqueta = new Label ( “Valor_Etiqueta” );

Creación de Listas

List Nombre_Lista = new List ( [ Elementos_Visibles ], [ Status_Selección_Múltiple → true / false ] );

Agregar Elementos a una Lista

Nombre_Lista.addItem ( “Elemento_Lista” );

Creación de Cuadros de Texto

TextField Nombre_Text = new TextField ( [ “Valor” ], [ Número_Columnas ] );

16
Creación de Cuadros de Texto Multilínea

TextArea Nombre_TextArea = new TextArea ( [ “Valor” ], [ Número_Filas ], [ Número_Columnas ] );

Definir el Status de Modificación

Variable.setEditable ( true / false );

Creación de Barras de Desplazamiento

Scrollbar Variable;
Variable = new Scrollbar ( Scrollbar.VERTICAL / HORIZONTAL, Valor_Inicial, Tamaño_Desplazador,
Valor_Mínimo, Valor_Máximo);

Creación de Barra de Menús

MenuBar Nombre_Barra = new MenuBar ( );

Creación de Menús

Menu Nombre_Menu = new Menu ( “Valor_Menú” );

Agregar Elementos del Menú

Nombre_Menu.add ( new MenuItem ( "Elemento_Menú" ) );

Crear Elemento del Menú con Submenus

Menu Elemento_Menu = new Menu ( "Valor_Elemento" );

Agregar Elementos al Submenú

Elemento_Menu.add ( new MenuItem ( "Elemento_Submenú" ) );

Agregar Submenú al Menú

Nombre_Menu.add ( Elemento_Menu );

Agregar Separador de Elementos del Menú

Nombre_Menu.addSeparator ( );

17
Agregar Menú a la Barra de Menús

Nombre_Barra.add ( Nombre_Menú );

Seleccionar la Barra de Menús

setMenuBar ( Nombre_Barra );

Creación de Contenedores

Frame

Frame Nombre_Frame = new Frame ( “Título_Ventana” );


Nombre_Frame.resize ( Ancho_Pixeles, Alto_Pixeles );
Nombre_Frame.show ( );

Dialog

Dialog Nombre_Ventana = new Dialog ( Nombre_Frame, “Titulo_Ventana” );


Nombre_Ventana.resize ( Ancho_Pixeles, Alto_Pixeles );
Nombre_Ventana show ( );

Panel

Panel Nombre_Panel = new Panel ( “Título_Panel” );

Añadir Componentes a un Contenedores

Contenedor.add ( Componente );

18
Creación de Formularios (Paquete java.awt.*)

public class Nombre_Formulario extends Frame


{
[ //Declaración de Constantes y Variables ]

//Crear un Constructor para el Formulario


public Nombre_Constructor ( [Parámetros] )
{
//Definir el Título de la Formulario
setTitle ( "Título_Formulario" );

//Definir el Tamaño de la Formulario


resize ( Ancho_Pixeles, Alto_Pixeles );

//Definir si el Tamaño puede modificarse por el Usuario


setResizable ( true / false );

//Seleccionar la Distribución de los Componentes en el Formulario (FlowLayout)


setLayout ( new FlowLayout / BorderLayout / GridLayout / GridBagLayout
( [ Parámetros ] ) );

//Crear los Paneles que contendrán a los Componentes


Panel Nombre_Panel = new Panel ( [ “Título_Panel” ] );

//Seleccionar la Distribución o Alineación de los Componentes en el Panel (FlowLayout)


Nombre_Panel.setLayout ( new FlowLayout / BorderLayout / GridLayout /
GridBagLayout ( [ Parámetros ] ) );

//Definir y Crear Componentes

//Agregar los Componentes a cada Panel


Nombre_Panel.add (Nombre_Objeto / Nombre_Panel);

//Incorporar los Paneles al Formulario


add(Posición_Panel → "North / Center / South ", Nombre_Panel);

//Visualizar en Pantalla
show ( );
}

//Controlador de Eventos
public <tipo> handleEvent( Event evt ) {
//Analizar cada Tipo de Componentes
if ( evt.target instanceof Tipo_Componente_1 ) {
//Crear una Cadena que obtenga los Valores de cada Componente
String Nombre_Cadena = ( ( Tipo_Componente ) evt.target ).getLabel( );
if ( Nombre_Cadena.equals ( "Valor_Componente" ) ) {
//Bloque de Acciones del Componente
}
return ( true );
}
else if ( evt.target instanceof Tipo_Componente_n ) {
//Crear una Cadena que obtenga los Valores de cada Componente
String Nombre_Cadena = ( ( Tipo_Componente ) evt.target ).getLabel( );

19
if ( Nombre_Cadena.equals ( "Valor_Componente" ) ) {
//Bloque de Acciones del Componente
}
return ( true );
}
return false;
}

//Declaración de Métodos del Formulario

//Cuerpo de Clase (Programa Principal)


public static void main ( String args [ ] )
{
[ //Declaración de Constantes y Variables ]

//Crear una Instancia del Formulario


[ Nombre_Formulario Nombre_Objeto = ] new Nombre_Formulario ( [ Parámetros ] );

//Ejecutar los Métodos del Formulario


[ Nombre_Objeto.Nombre_Método ( [ Parámetros ] ); ]
}
}

20
Distribución de Paneles y Frames

FlowLayout (Norte, Centro, Sur) → Frame

North

Center

South

FlowLayout (Izquierda, Centro, Derecha) → Panel

LEFT CENTER RIGHT

BorderLayout (Norte, Oeste, Centro, Este, Sur) → Frame y Panel

North

West Center East

South

GridLayout (Filas y Columnas Iguales) → Frame y Panel

1 2
3 4
5 6

GridBagLayout (Filas y Columnas Diferentes) → Frame y Panel

1 2
3
4 5
6 7

21
Métodos para Asignar / Seleccionar Valores

TextField / TextArea

Nombre_Texto.setText ( Valor );

Choice

Nombre_Choice.select ( Índice_Elemento / Valor_Elemento );

Checkbox

Nombre_Checkbox.setState ( true / false );

CheckboxGroup

Nombre_CheckboxGroup.setSelectedCheckbox ( Nombre_Checkbox );

List

Nombre_Lista.select ( Posición_Elemento ); // Seleccionar Elemento


Nombre_Lista.deselect ( Posición_Elemento ); // Deseleccionar Elemento

Métodos para Obtener Valores

TextField / TextArea

Nombre_Texto.getText ( );

Choice

Nombre_Choice.getSelectedItem ( ); // Valor Seleccionado


Nombre_Choice.getSelectedIndex ( ); // Índice del Elemento Seleccionado

Checkbox

Nombre_Checkbox.getState ( );

CheckboxGroup

Nombre_CheckboxGroup.getSelectedCheckbox ( );

List

Nombre_Lista.getSelectedIndex ( ); // Índice del Elemento Seleccionado


Nombre_Lista.getSelectedItem ( ); // Valor del Elemento Seleccionado

22
Nombre_Lista.getSelectedIndexes ( ); // Índices de los Elementos Seleccionados
Nombre_Lista.getSelectedItems ( ); // Valores de los Elementos Seleccionados

Métodos para Agregar / Eliminar Valores

Choice

Nombre_Choice.addItem ( “Elemento” ); // Agregar Elementos


Nombre_Choice.add ( “Elemento” ); // Agregar Elementos

Nombre_Choice.removeAll ( ); // Eliminar todos los Elementos


Nombre_Choice.remove ( Índice_Elemento ); // Eliminar según el Índice
Nombre_Choice.remove ( Valor_Elemento ); // Eliminar según el Valor

List

Nombre_Lista.insert ( “Elemento”, Posición ); // Insertar Elementos


Nombre_Lista.replaceItem ( “Nuevo_Elemento”, Posición_a_Reemplazar ); // Sustituir Elementos

Nombre_Lista.removeAll ( ); // Eliminar todos los Elementos


Nombre_Lista.remove ( Posición_Elemento ); // Eliminar según el Índice
Nombre_Lista.remove ( Valor_Elemento ); // Eliminar según el Valor
Nombre_Lista.delItem ( Posición_Elemento ); // Eliminar según el Valor

23