Manual Programacion Java
Manual Programacion Java
PROGRAMACIÓN JAVA
1
Contenido
1. Introducción a Java .................................................................................................................... 5
1.1. Los lenguajes de programación ......................................................................................... 5
1.2. Historia de Java .................................................................................................................. 6
1.3. La plataforma de Java ........................................................................................................ 7
1.4. Entornos de desarrollo para Java ....................................................................................... 8
1.5. El proceso de edición y compilación .................................................................................. 9
1.6. La codificación de programas Java ................................................................................... 10
1.7. El proceso de desarrollo de software .............................................................................. 10
2. Estructura de un programa Java ................................................................................................ 9
2.1. La estructura de un programa Java .................................................................................... 9
2.2. Los elementos de un programa Java................................................................................ 13
2.2.1 Comentarios ............................................................................................................. 14
2.2.2 Identificadores ......................................................................................................... 14
2.2.3 Variables y valores ................................................................................................... 15
2.2.4 Tipos primitivos ........................................................................................................ 17
2.2.5 Literales .................................................................................................................... 18
2.2.6 Operadores .............................................................................................................. 19
2.2.7 Expresiones .............................................................................................................. 21
2.2.8 Expresiones aritmético-lógicas ................................................................................ 22
2.2.9 Conversión de tipos.................................................................................................. 22
2.2.10 Las palabras reservadas de Java............................................................................... 23
3. Clases y objetos ........................................................................................................................ 25
3.1 Clases................................................................................................................................ 26
3.2 Los elementos de una clase ............................................................................................. 27
3.2.1 Atributos .................................................................................................................. 27
3.2.2 Métodos y constructores ......................................................................................... 28
3.2.3 Representación de clases y objetos ......................................................................... 32
3.3 Objetos ............................................................................................................................. 33
3.3.1 La referencia null...................................................................................................... 35
3.3.2 Referencias compartidas por varios objetos............................................................ 36
3.3.3 El ciclo de vida de un objeto .................................................................................... 39
3.4 Atributos .......................................................................................................................... 40
3.5 Métodos ........................................................................................................................... 41
3.5.1 Declaración de métodos .......................................................................................... 44
3.5.2 Invocación de métodos ............................................................................................ 45
3.5.3 El método main()...................................................................................................... 47
2
Council Chile Servicios de Capacitación www.council.cl
3.5.4 Parámetros y argumentos ...................................................................................... 48
3.5.5 Paso de parámetros ................................................................................................. 50
3.5.6 El valor de retorno ................................................................................................... 52
3.5.7 Las variables locales de un método ......................................................................... 52
3.5.8 Sobrecarga de métodos ........................................................................................... 53
3.6 Constructores ................................................................................................................... 54
3.7 Composición ..................................................................................................................... 59
3.8 Herencia ........................................................................................................................... 64
3.8.1 Extensión de clases .................................................................................................. 64
3.8.2 Polimorfismo ............................................................................................................ 70
3.9 Compatibilidad de tipos ................................................................................................... 74
3.10 Conversión ascendente de tipos ...................................................................................... 74
3.10.1 Conversión descendente de tipos ............................................................................ 76
3.10.2 Jerarquía de herencia ............................................................................................... 77
4. Ampliación de clases ................................................................................................................ 79
4.1 Elementos de clase (Static) .............................................................................................. 79
4.2 Derechos de acceso.......................................................................................................... 80
4.3 Paquetes........................................................................................................................... 83
4.3.1 Uso ........................................................................................................................... 83
4.3.2 Nombres ................................................................................................................... 84
4.4 Clases predefinidas .......................................................................................................... 85
4.4.1 Las clases asociadas a los tipos primitivos ............................................................... 85
4.4.2 La clase Math ........................................................................................................... 86
4.4.3 La clase String ........................................................................................................... 87
5.1 Estructuras de selección .................................................................................................. 90
5.1.1 Estructura if .............................................................................................................. 90
5.1.2 Estructura if else ...................................................................................................... 91
5.1.3 Estructura if else if ................................................................................................... 94
5.1.4 Estructura switch...................................................................................................... 95
5.1.5 El operador condicional ......................................................................................... 101
5.2 Estructuras de repetición ............................................................................................... 102
5.2.1 Estructura while ..................................................................................................... 103
5.2.2 Estructura do-while ................................................................................................ 107
5.2.3 Estructura for ......................................................................................................... 109
5.2.4 Uso de las estructuras de repetición...................................................................... 111
5.3 Estructuras de salto........................................................................................................ 115
5.3.1 Sentencia break ...................................................................................................... 115
3
Council Chile Servicios de Capacitación www.council.cl
5.3.2 Sentencia continue................................................................................................. 115
5.3.3 Uso de break y continue ........................................................................................ 115
6. Estructuras de almacenamiento ............................................................................................ 119
6.1 Arrays ............................................................................................................................. 119
6.2 Arrays multidimensionales............................................................................................. 127
6.3 Uso de arrays.................................................................................................................. 131
6.4 Búsqueda binaria en arrays ordenados ......................................................................... 141
6.5 Ordenación de arrays ..................................................................................................... 144
6.5.1 El algoritmo de ordenación “Bubble Sort” .............................................................. 145
6.5.2 El método sort de la clase Arrays ........................................................................... 149
6.6 Arrays redimensionables................................................................................................ 153
6.7 Uso de arrays redimensionables .................................................................................... 156
7. Entrada y salida ...................................................................................................................... 165
7.1 Los flujos de Java ............................................................................................................ 165
7.2 Entrada de datos desde el teclado................................................................................. 167
7.3 Leer y escribir en archivos de texto ............................................................................... 169
7.4 Leer y escribir objetos en archivos................................................................................. 173
A. Operadores del lenguaje Java ................................................................................................ 179
4
Council Chile Servicios de Capacitación www.council.cl
1. Introducción a Java
5
Council Chile Servicios de Capacitación www.council.cl
Introducción a Java
“Write Once, Run Anyware”, que podría traducirse como “programar una
sola vez y después ejecutar los programas en cualquier sistema operativo”,
era el objetivo del equipo de desarrollo de Java. Esta idea resume el
concepto de portabilidad. Los programas Java son portables, es decir,
independientes de la plataforma, porque pueden ejecutarse en cualquier
computador o dispositivo móvil, independientemente del sistema
operativo que tengan instalado: Un programa Java puede ejecutarse en un
computador de mesa, un computador portátil, una tableta, un teléfono, un
reproductor de
6
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
8
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
9
Council Chile Servicios de Capacitación www.council.cl
Introducción a Java
Legibilidad. Un programa Java debe ser fácil de leer y entender, incluso para
una persona que no ha participado en el desarrollo del programa. La
legibilidad es un aspecto muy importante porque facilita el mantenimiento del
software, la corrección de errores o la modificación de la funcionalidad de la
aplicación con menor costo.
10
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
□ ¿Cómo se va a utilizar?
11
Council Chile Servicios de Capacitación www.council.cl
Introducción a Java
12
Council Chile Servicios de Capacitación www.council.cl
2. Estructura de un programa Java
/*
* Este programa escribe el texto "Hola Mundo" en la consola
* utilizando el método System.out.println()
*/
9
Council Chile Servicios de Capacitación www.council.cl
Estructura de un programa Java
perimetro = 2.0*PI*radio;
System.out.print("El perimetro de la circunferencia de radio ");
System.out.print(radio);
System.out.print(" es ");
System.out.print(perimetro);
}
}
10
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
En este ejemplo se puede ver que dentro del método main() se incluye un
comentario de una sola línea que comienza con //. A continuación se
declaran las variables PI, radio y perimetro, todas ellas de tipo double
porque almacenan números reales. PI representa un valor constante, por lo
que es necesario utilizar el delimitador final y asignarle el valor
3.1415926536 correspondiente al número pi.
System.out.print("Hola");
System.out.print(" ");
System.out.print("Mundo");
Hola Mundo
1
Council Chile Servicios de Capacitación 1
www.council.cl
Estructura de un programa Java
System.out.print("Hola");
System.out.print("Mundo");
HolaMundo
System.out.println("Hola");
System.out.println("Mundo");
Hola
Mundo
System.out.print("Hola");
System.out.print(" ");
System.out.print("Mundo");
12
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
System.out.print("Hola Mundo");
Para mostrar por la consola un texto seguido del valor almacenado de una
variable se puede ejecutar dos veces el método System.out.print():
El perímetro es 157.08
1
Council Chile Servicios de Capacitación 3
www.council.cl
Estructura de un programa Java
2.2.1 Comentarios
/*
* El programa HolaMundo se utiliza para aplicar los
* métodos System.out.print() y System.out.println()
*/
/**
* Programa HolaMundo
* @author Fundamentos de Informática
* @version 1.0
* @see Referencias
*/
2.2.2 Identificadores
14
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
Todo identificador debe empezar con una letra que puede estar seguida de
más letras o dígitos. Una letra es cualquier símbolo del alfabeto y el
carácter ‘_’. Un dígito es cualquier carácter entre ‘0’ y ‘9’.
Cualquier identificador que empiece con una letra seguida de más letras o
dígitos es válido siempre que no forme parte de las palabras reservadas del
lenguaje Java. El lenguaje Java distingue entre letras mayúsculas y
minúsculas, esto significa que los identificadores numeroPar y numeropar
son distintos.
Existen unas normas básicas para los identificadores que se deben respetar.
1
Council Chile Servicios de Capacitación 5
www.council.cl
Estructura de un programa Java
int mesNacimiento;
mesNacimiento = 2;
System.out.print(mesNacimiento);
16
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
int dia=20;
int mes=2;
int año=2020;
1
Council Chile Servicios de Capacitación 7
www.council.cl
Estructura de un programa Java
-922117036854775808 a
long Entero con signo
+922117036854775807
±3.40282347e+38 a
float Real de precisión simple
±1.40239846e-45
±1.7976931348623157e+309 a
double Real de precisión doble
±4.94065645841246544e-324
2.2.5 Literales
18
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
Booleanos. Los valores lógicos solo pueden ser true y false. Se escriben
siempre en minúsculas.
Carácter Significado
\b Retroceso
\t Tabulador
\n Salto de línea
\r Cambio de línea
Un texto puede estar vacío o contener uno o más caracteres. Por ejemplo,
“Hola Mundo” es un texto de 10 caracteres, mientras que “” es un texto
vacío y tiene 0 caracteres. El texto “a” es diferente del carácter 'a' de tipo
char.
2.2.6 Operadores
1
Council Chile Servicios de Capacitación 9
www.council.cl
Estructura de un programa Java
□ Un operador relacional permiten comparar dos valores: >, <, >= y <=.
El resultado de la comparación es un valor booleano que indica si la
relación es verdadera o falsa.
Números reales. Con los números reales se aplican los mismos operadores
que con los números enteros. Si se realizan operaciones unarias, aditivas o
multiplicativas, el resultado es un número real. También se pueden aplicar
los operadores relacionales para comparar dos números reales.
20
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
2.2.7 Expresiones
C = ((F – 32) * 5) / 9
2
Council Chile Servicios de Capacitación 1
www.council.cl
Estructura de un programa Java
(10 – 2) > (5 – 3)
22
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
2
Council Chile Servicios de Capacitación 3
www.council.cl
Estructura de un programa Java
En realidad, las palabras false, null y true son literales. No son palabras
reservadas del lenguaje, pero no se pueden utilizar como identificadores.
24
Council Chile Servicios de Capacitación www.council.cl
3. Clases y objetos
25
Council Chile Servicios de Capacitación www.council.cl
Clases y objetos
3.1 Clases
Por ejemplo, la clase Circulo se define con tres atributos: el radio y las
coordenadas x, y que definen la posición del centro del círculo.
int x;
int y;
int radio;
26
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
Una vez que se ha declarado una clase, se pueden crear objetos a partir de
ella. A la creación de un objeto se le denomina instanciación. Es por esto
que se dice que un objeto es una instancia de una clase y el término
instancia y objeto se utilizan indistintamente.
Para crear objetos, basta con declarar una variable de alguno de los tipos
de figuras geométricas:
Circulo circulo1;
Circulo circulo2;
3.2.1 Atributos
27
Council Chile Servicios de Capacitación www.council.cl
Clases y objetos
String matricula;
String marca;
String modelo;
String color;
double tarifa;
boolean disponible;
Para diferenciar entre los atributos del objeto y los identificadores de los
parámetros del método constructor, se utiliza la palabra this. De esta
forma, los parámetros del método pueden tener el mismo nombre que los
atributos de la clase. Esto permite hacer una asignación como la que se
muestra a continuación, donde this.marca se refiere al atributo del objeto
y marca al parámetro del método.
this.marca = marca;
28
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
29
Council Chile Servicios de Capacitación www.council.cl
Clases y objetos
30
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
31
Council Chile Servicios de Capacitación www.council.cl
Clases y objetos
Los objetos se representan como cajas que indican el nombre del objeto, la
clase a la que pertenecen y el estado del objeto.
32
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
matricula “2345 JVM”, marca “SEAT”, modelo “León”, color “Negro”, tarifa
80.0 y disponible false.
3.3 Objetos
33
Council Chile Servicios de Capacitación www.council.cl
Clases y objetos
System.out.println("Matricula : " +
vehiculo1.getMatricula());
System.out.println("Tarifa : " +
vehiculo1.getTarifa());
vehiculo1.setTarifa(90.0);
System.out.println("Matricula : " +
vehiculo1.getMatricula());
System.out.println("Tarifa : " +
vehiculo1.getTarifa());
34
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
Vehiculo vehiculo2;
Vehiculo vehiculo2;
35
Council Chile Servicios de Capacitación www.council.cl
Clases y objetos
Para saber si una referencia está instanciada o no, se puede comparar con
null.
if (vehiculo2 == null) {
System.out.print("vehiculo2 es una referencia null")
}
if (vehiculo2 != null) {
System.out.print("vehiculo2 está instanciado")
}
36
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
Vehiculo vehiculo1;
Vehiculo vehiculo3;
vehiculo3 = vehiculo1;
System.out.println("Matricula : " +
vehiculo1.getMatricula());
System.out.println("Tarifa : " +
vehiculo1.getTarifa());
System.out.println("Matricula : " +
vehiculo3.getMatricula());
System.out.println("Tarifa : " +
vehiculo3.getTarifa());
37
Council Chile Servicios de Capacitación www.council.cl
Clases y objetos
La salida por la consola muestra dos veces los valores asignados al objeto
vehiculo1.
vehiculo3.setTarifa(90.0);
System.out.println("Matricula : " +
vehiculo1.getMatricula());
System.out.println("Tarifa : " +
vehiculo1.getTarifa());
System.out.println("Matricula : " +
vehiculo3.getMatricula());
System.out.println("Tarifa : " +
vehiculo3.getTarifa());
38
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
39
Council Chile Servicios de Capacitación www.council.cl
Clases y objetos
3.4 Atributos
40
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
En esta nueva declaración, todos los atributos tienen acceso private y solo
es posible acceder a ellos desde los métodos de la clase.
3.5 Métodos
41
Council Chile Servicios de Capacitación www.council.cl
Clases y objetos
Los métodos ‘get’ son métodos de consulta, mientras que los métodos ‘set’
son métodos modificadores.
Los métodos ‘get’ se utilizan para extraer el valor de un atributo del objeto
y los métodos ‘set’ para modificarlo. En la clase Vehiculo es necesario
definir un método ‘get’ para cada uno de sus atributos: getMatricula(),
getMarca(), getModelo(), getColor(), getTarifa() y
getDisponible(). Los métodos ‘set’ solo se definen para los atributos que
pueden ser modificados después de que se ha creado el objeto. En este
caso es necesario definir los métodos setTarifa(double tarifa) y
setDisponible(boolean disponible) para modificar la tarifa del
alquiler del vehículo y su disponibilidad, respectivamente.
Un método ‘get’ utiliza return para devolver el valor del atributo. En este caso el identificador
del atributo es tarifa y se refiere a él como this.tarifa
42
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
Un método ‘set’ modifica el valor de un atributo del objeto. En este caso el identificador del
atributo es tarifa y se refiere a él como this.tarifa para asignarle el valor del parámetro
43
Council Chile Servicios de Capacitación www.council.cl
Clases y objetos
Por ejemplo, la clase Circulo define dos métodos de tipo operación, uno
para calcular el perímetro y otro para calcular el área.
44
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
45
Council Chile Servicios de Capacitación www.council.cl
Clases y objetos
46
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
int numero = 4;
47
Council Chile Servicios de Capacitación www.council.cl
Clases y objetos
}
}
48
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
49
Council Chile Servicios de Capacitación www.council.cl
Clases y objetos
50
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
recibirVehiculoAlquilado (vehiculo1);
}
}
51
Council Chile Servicios de Capacitación www.council.cl
Clases y objetos
Los métodos ‘set’ devuelven void, mientras que los métodos ‘get’
devuelven el tipo correspondiente al atributo al que hacen referencia. Los
métodos ‘set’ devuelven void porque son métodos modificadores, realizan
operaciones y cálculos para modificar el estado de los objetos. Los métodos
‘get’, en cambio, son métodos de consulta y devuelven los valores
almacenados en los atributos de un objeto.
52
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
Los dos métodos son equivalentes, pero el primero es más claro porque
evita el uso de una variable local que no es necesaria.
53
Council Chile Servicios de Capacitación www.council.cl
Clases y objetos
3.6 Constructores
54
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
55
Council Chile Servicios de Capacitación www.council.cl
Clases y objetos
56
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
57
Council Chile Servicios de Capacitación www.council.cl
Clases y objetos
58
Council Chile Servicios de Capacitación www.council.cl
4 Extensión de clases
3.7 Composición
59
Council Chile Servicios de Capacitación www.council.cl
Extensión de clases
60
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
61
Council Chile Servicios de Capacitación www.council.cl
Extensión de clases
}
}
62
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
alquiler1.getCliente().getNIF();
alquiler1.getVehiculo().getMatricula();
System.out.println("Vehículo alquilado");
System.out.println("Cliente : " +
alquiler1.getCliente().getNIF() + " " +
alquiler1.getCliente().getNombre() + " " +
alquiler1.getCliente().getApellidos());
System.out.println("Vehículo: " +
alquiler1.getVehiculo().getMatricula());
Vehículo alquilado
Cliente : 30435624X Juan Pérez
Vehículo: 4050 ABJ
63
Council Chile Servicios de Capacitación www.council.cl
Extensión de clases
3.8 Herencia
Suponga que se desea diseñar una aplicación para gestionar una empresa
de alquiler de vehículos de tipo turismo, deportivo y furgonetas. La clase
Vehiculo define los atributos y los métodos de todos los vehículos de la
empresa de alquiler. Esto no es suficiente porque hay distintos tipos de
vehículos, de manera que es necesario definir subclases para cada tipo de
vehículo: turismo, deportivo y furgoneta. En este ejemplo, la superclase es
Vehiculo y las subclases son Turismo, Deportivo y Furgoneta. Todas
las subclases son vehículos, un turismo, un deportivo y una furgoneta son
vehículos, pero cada uno de ellos tiene características propias que le hacen
diferente del resto. Para un turismo interesa saber el número de puertas y
el tipo de cambio de marcha, para un deportivo interesa saber su cilindrada
y para una furgoneta su capacidad de carga en kilos y el volumen en metros
cúbicos.
64
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
65
Council Chile Servicios de Capacitación www.council.cl
Extensión de clases
66
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
67
Council Chile Servicios de Capacitación www.council.cl
Extensión de clases
68
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
69
Council Chile Servicios de Capacitación www.council.cl
Extensión de clases
3.8.2 Polimorfismo
La clase
Deportivo añade el atributo cilindrada y el método
getCilindrada().
Los métodos
getAtributos() de las subclases modifican el
comportamiento del método getAtributos() de la superclase. En cada
método se invoca a super.getAtributos() para que muestre los
atributos de un vehículo y después se muestran los atributos propios de la
subclase. Los métodos getAtributos() de las subclases sobrescriben el
método getAtributos() de la superclase. Esta característica de los
lenguajes de programación orientados a objetos se conoce como
polimorfismo.
70
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
71
Council Chile Servicios de Capacitación www.council.cl
Extensión de clases
System.out.print("Vehículo : " +
miVehiculo.getAtributos());
72
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
System.out.print("Deportivo " +
miDeportivo.getAtributos());
System.out.print("Furgoneta " +
miFurgoneta.getAtributos());
73
Council Chile Servicios de Capacitación www.council.cl
Extensión de clases
System.out.print("Turismo : " +
miTurismo.getMatricula() + " " +
miTurismo.getMarca() + " " +
miTurismo.getModelo());
Esto significa que la clase base o superclase es compatible con los tipos que
derivan de ella, pero no al revés. Una referencia de la clase Turismo solo
puede almacenar una instancia de Turismo, nunca una instancia de la
superclase Vehiculo.
74
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
75
Council Chile Servicios de Capacitación www.council.cl
Extensión de clases
76
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
Cualquier clase Java puede ser utilizada como una clase base para extender
sus atributos y comportamiento. La clase derivada que se obtenga, puede a
su vez, ser extendida de nuevo. La relación de herencia es transitiva y
define una jerarquía.
77
Council Chile Servicios de Capacitación www.council.cl
Extensión de clases
78
Council Chile Servicios de Capacitación www.council.cl
4. Ampliación de clases
79
Council Chile Servicios de Capacitación www.council.cl
Ampliación de clases
80
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
Con esta declaración, todos los atributos de la clase tienen acceso private
y el diagrama de clases muestra un signo menos delante del identificador
del atributo para indicar que es privado.
81
Council Chile Servicios de Capacitación www.council.cl
Ampliación de clases
82
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
4.3 Paquetes
Los paquetes son grupos de clases, interfaces y otros paquetes que están
relacionados entre sí. Los paquetes aportan una forma de encapsulación de
un nivel superior al de las clases. Permiten unificar un conjunto de clases e
interfaces que se relacionan funcionalmente. Por ejemplo, el paquete java
engloba un conjunto de paquetes con utilidades de soporte para desarrollo y
ejecución de aplicaciones como util o lang.
package nombre-del-paquete;
package vehiculos;
4.3.1 Uso
import nombre-del-paquete;
import java.math.*;
83
Council Chile Servicios de Capacitación www.council.cl
Ampliación de clases
import java.util.Calendar;
import java.util.Calendar;
diaHoy = Calendar.getInstance().get(Calendar.DAY_OF_MONTH);
mesHoy = Calendar.getInstance().get(Calendar.MONTH) + 1;
añoHoy = Calendar.getInstance().get(Calendar.YEAR);
4.3.2 Nombres
package nombre-de-la-empresa.nombre-del-paquete;
84
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
package miEmpresa.vehiculos;
Los tipos predefinidos boolean, char, int, long, float y double son
tipos simples, no son clases. Para facilitar la programación en Java se han
creado clases asociadas a los tipos predefinidos. Estas clases proporcionan
métodos útiles para convertir cadenas de texto a otros tipos, para imprimir
los números con diversos formatos y para describir los tipos simples.
Boolean boolean
Character char
Integer int
Long long
Float float
Double double
85
Council Chile Servicios de Capacitación www.council.cl
Ampliación de clases
Para más información sobre los métodos de la clase Math, consulte el API
de Java.
http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Math.html
86
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
87
Council Chile Servicios de Capacitación www.council.cl
Ampliación de clases
Para más información sobre los métodos de la clase String, consulte el API
de Java.
http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html
88
Council Chile Servicios de Capacitación www.council.cl
5. Estructura de control
89
Council Chile Servicios de Capacitación www.council.cl
Estructuras de control
5.1.1 Estructura if
if (condicion) {
bloque-de-sentencias
}
if (condicion)
sentencia;
90
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
if (calificacion == 10) {
System.out.println("Matrícula de Honor");
}
if (condicion) {
bloque-de-sentencias-if
}
else {
bloque-de-sentencias-else
}
91
Council Chile Servicios de Capacitación www.council.cl
Estructuras de control
La sentencia if-else:
if (numero % 2 == 0)
System.out.println("El número es par");
else
System.out.println("El número es impar");
if (numero % 2 != 0)
System.out.println("El número es impar");
else
System.out.println("El número es par");
Calificación Descripción
10 Matrícula de Honor
9 Sobresaliente
7, 8 Notable
6 Bien
5 Aprobado
0,1,2,3,4 Suspenso
92
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
De la tabla anterior, se puede ver que las condiciones son excluyentes entre
sí. Si la calificación es 10 se muestra “Matrícula de Honor”. En caso
contrario la calificación es menor de 10 y es necesario seleccionar entre
“Sobresaliente”, “Notable”, “Bien”, “Aprobado” y “Suspenso”. Si la
calificación es 9 se muestra “Sobresaliente”. En caso contrario, la
calificación es menor de 9 y se debe seleccionar entre “Notable”, “Bien”,
“Aprobado” y “Suspenso”. Si la calificación es mayor o igual a 7 se muestra
“Notable”. En caso contrario la calificación es menor de 7 y se debe
seleccionar entre “Bien”, “Aprobado” y “Suspenso”. Si la calificación es 6 se
muestra “Bien”. En caso contrario la calificación es menor o igual a 6 y se
debe seleccionar entre “Aprobado” y “Suspenso”. Si la calificación es 5 se
muestra “Aprobado”, en caso contrario “Suspenso”.
La sentencia if-else:
int calificacion = 7;
if (calificacion == 10)
System.out.println("Matrícula de Honor");
else
if (calificacion == 9)
System.out.println("Sobresaliente");
else
if (calificacion >= 7)
System.out.println("Notable");
else
if (calificacion == 6)
System.out.println("Bien");
else
if (calificacion == 5)
System.out.println("Aprobado");
else
System.out.println("Suspenso");
93
Council Chile Servicios de Capacitación www.council.cl
Estructuras de control
if (condicion-1) {
bloque-de-sentencias-condicion-1
} else if (condicion-2) {
bloque-de-sentencias-condicion-2
} else {
bloque-de-sentencias-else
}
int calificacion = 7;
if (calificacion == 10) {
System.out.println("Matrícula de Honor");
} else if (calificacion == 9) {
System.out.println("Sobresaliente");
} else if (calificacion >= 7) {
System.out.println("Notable");
} else if (calificacion == 6) {
System.out.println("Bien");
} else if (calificacion == 5) {
System.out.println("Aprobado");
} else {
System.out.println("Suspenso");
}
94
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
switch (expresion) {
case valor-1:
bloque-de-sentencias-1;
break;
case valor-2:
bloque-de-sentencias-2;
break;
case valor-3:
bloque-de-sentencias-3;
break;
case valor-4:
bloque-de-sentencias-4;
break;
case valor-5:
bloque-de-sentencias-5;
break;
default:
bloque-de-sentencias-default;
break;
}
95
Council Chile Servicios de Capacitación www.council.cl
Estructuras de control
Calificación Descripción
96
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
switch (categoriaProfesional) {
case 'A': System.out.print("Socio ");
case 'B': System.out.print("Senior ");
case 'C': System.out.print("Junior ");
default: System.out.print("¡Indefinida! ");
}
}
}
97
Council Chile Servicios de Capacitación www.council.cl
Estructuras de control
switch (categoriaProfesional) {
case 'A': System.out.print("Socio ");
break;
case 'B': System.out.print("Senior ");
break;
case 'C': System.out.print("Junior ");
break;
default: System.out.print("¡Indefinida! ");
break;
}
98
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
switch (categoriaProfesional) {
case 'A': System.out.print("Socio ");
break;
case 'B': System.out.print("Senior ");
break;
case 'C': System.out.print("Junior ");
break;
default: System.out.print("¡Indefinida! ");
break;
}
}
}
99
Council Chile Servicios de Capacitación www.council.cl
Estructuras de control
100
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
101
Council Chile Servicios de Capacitación www.council.cl
Estructuras de control
Menor de edad
102
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
103
Council Chile Servicios de Capacitación www.council.cl
Estructuras de control
inicialización;
while (condición) {
bloque-de-sentencias;
actualizacion;
}
while (condición) {
bloque-de-sentencias;
}
104
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
0! = 1
1! = 1
2! = 1 x 2
3! = 1 x 2 x 3
4! = 1 x 2 x 3 x 4
...
n!= 1 x 2 x 3 x 4 x 5 x ... x (n-2) x (n-1) x (n)
while (i <= n) {
factorial = factorial * i;
i++;
}
}
}
105
Council Chile Servicios de Capacitación www.council.cl
Estructuras de control
i n factorial * i factorial
1 5 1*1 1
2 5 1*2 2
3 5 2*3 6
4 5 6*4 24
5 5 24 * 5 120
106
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
inicialización;
do {
bloque-de-sentencias;
actualizacion;
} while (condición);
107
Council Chile Servicios de Capacitación www.council.cl
Estructuras de control
do {
bloque-de-sentencias;
} while (condición);
do {
factorial = factorial * i;
i++;
} while (i <= n);
}
}
108
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
109
Council Chile Servicios de Capacitación www.council.cl
Estructuras de control
}
}
110
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
111
Council Chile Servicios de Capacitación www.council.cl
Estructuras de control
if (numero == 0)
System.out.println("El número es par");
else
System.out.println("El número es impar");
}
}
112
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
do {
numero = (int) (100 * Math.random());
System.out.println("Número aleatorio: " + numero);
} while (numero != 50);
}
}
113
Council Chile Servicios de Capacitación www.council.cl
Estructuras de control
Ejemplo de uso de for. Utilice una estructura for para calcular la función
potencia de un número entero positivo utilizando productos. La potencia se
calcula como el producto de la base repetido tantas veces como el valor del
exponente.
}
}
114
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
Utilice un for para comparar cada una de las letras de la frase. Dentro del
for utilice un switch para seleccionar entre vocales, consonantes y
espacios. Las variables vocales, consonantes y espacios se inicializan a cero
y se utilizan para contar el número de veces que aparecen en la frase.
115
Council Chile Servicios de Capacitación www.council.cl
Estructuras de control
switch (letra) {
case 'a':
case 'e':
case 'i':
case 'o':
case 'u':
case 'A':
case 'E':
case 'I':
case 'O':
case 'U': vocales++;
break;
case ' ': espacios++;
break;
default: consonantes++;
break;
}
}
}
}
116
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
do {
numero = (int) (100 * Math.random());
System.out.println("Número aleatorio: " + numero);
if (numero == 25)
break;
}
}
117
Council Chile Servicios de Capacitación www.council.cl
Estructuras de control
}
}
118
Council Chile Servicios de Capacitación www.council.cl
6. Estructuras de almacenamiento
6.1 Arrays
tipo-o-clase[] identificador-array;
o
tipo-o-clase identificador-array[];
int[] numeros;
o
int numeros[];
119
Council Chile Servicios de Capacitación www.council.cl
Estructuras de almacenamiento
Se denomina tipo base del array al tipo que se declara para sus elementos.
Este tipo base puede ser un tipo primitivo de Java, un objeto o una clase
definida. En los ejemplos anteriores se han utilizado tipos primitivos y
clases como tipo base. El array numerosEnteros almacena objetos del
primitivo int. El array nombres almacena objetos de la clase String. El
array objetos almacena referencias a instancias de la clase Object de
Java. El array vehiculos almacena objetos de la clase Vehiculo.
120
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
121
Council Chile Servicios de Capacitación www.council.cl
Estructuras de almacenamiento
notas[0] es 4
notas[1] es 9
notas[2] es 7
notas[3] es 5
notas[4] es 10
122
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
La variable nota del for “para todo” toma los valores nota[0], nota[1],
nota[2], nota[3] y nota[4] en cada iteración. Cuando se utiliza un for
“para todo” no hace falta indicar los límites de la variable de control del
for, basta que esta variable sea del tipo almacenado en el array. En este
ejemplo nota es de tipo int.
4
9
7
5
10
123
Council Chile Servicios de Capacitación www.council.cl
Estructuras de almacenamiento
De nuevo, se utiliza un for “para todo” para mostrar el contenido del array
diasLaborables que almacena objetos de tipo String.
La variable dia del for “para todo” es de tipo String y toma los valores
diasLaborables[0], diasLaborables[1], diasLaborables[2],
diasLaborables[3] y diasLaborables[4] en cada iteración.
124
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
Lunes
Martes
Miércoles
Jueves
Viernes
125
Council Chile Servicios de Capacitación www.council.cl
Estructuras de almacenamiento
La variable vehiculo del for “para todo” es de tipo Vehiculo y toma los
valores de vehiculos[0], vehiculos [1] y vehiculos[2] en cada
iteración.
126
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
127
Council Chile Servicios de Capacitación www.council.cl
Estructuras de almacenamiento
Para mostrar los elementos del array notas es necesario utilizar dos for
anidados.
notas[0][0] es 5
notas[0][1] es 7
notas[0][2] es 9
notas[1][0] es 4
notas[1][1] es 6
notas[1][2] es 5
128
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
5
7
9
4
6
5
int numero = 1;
129
Council Chile Servicios de Capacitación www.council.cl
Estructuras de almacenamiento
System.out.println("");
}
1 2 3
4 5 6
7 8 9
10 11 12
13 14 15
16 17 18
19 20 21
22 23 24
25 26 27
130
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
131
Council Chile Servicios de Capacitación www.council.cl
Estructuras de almacenamiento
132
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
133
Council Chile Servicios de Capacitación www.council.cl
Estructuras de almacenamiento
134
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
return null;
}
135
Council Chile Servicios de Capacitación www.council.cl
Estructuras de almacenamiento
if (vehiculo.getDisponible()) {
vehiculo.setDisponible(false);
this.alquileres[this.totalAlquileres]=
new VehiculoAlquilado(cliente, vehiculo,
diaHoy(), mesHoy(), añoHoy(), dias);
this.totalAlquileres++;
}
}
136
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
if (vehiculo != null)
vehiculo.setDisponible(true);
}
137
Council Chile Servicios de Capacitación www.council.cl
Estructuras de almacenamiento
easydrive.registrarCliente(new Cliente("X5618927C",
"Juan","González López"));
easydrive.imprimirClientes();
easydrive.imprimirVehiculos();
138
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
139
Council Chile Servicios de Capacitación www.council.cl
Estructuras de almacenamiento
easydrive.registrarCliente(new Cliente("X5618927C",
"Juan", "González López"));
easydrive.registrarCliente(new Cliente("Z7568991Y",
"Luis", "Fernández Gómez"));
easydrive.imprimirClientes();
easydrive.imprimirVehiculos();
}
}
140
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
La relación de clientes:
El catálogo de vehículos:
141
Council Chile Servicios de Capacitación www.council.cl
Estructuras de almacenamiento
142
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
143
Council Chile Servicios de Capacitación www.council.cl
Estructuras de almacenamiento
int mitad;
int limiteInferior = 0;
int limiteSuperior = numeros.length - 1;
int numeroBusqueda = 68;
boolean encontrado = false;
if (numeros[mitad] == numeroBusqueda) {
encontrado = true; // ¡encontrado!
}
else if (numeros[mitad] > numeroBusqueda) {
limiteSuperior = mitad - 1; // buscar en la primera mitad
} else {
limiteInferior = mitad + 1; // buscar en la segunda mitad
}
}
if (encontrado)
System.out.println("He encontrado el número");
else
System.out.println("No he encontrado el número");
}
}
144
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
int tmp;
145
Council Chile Servicios de Capacitación www.council.cl
Estructuras de almacenamiento
valor de
numeros[i] en tmp, después se almacena el valor de
numeros[j] en numeros[i], por último se almacena el valor de tmp en
numeros[j] y finaliza el intercambio.
146
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
147
Council Chile Servicios de Capacitación www.council.cl
Estructuras de almacenamiento
148
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
Java define la clase Arrays con métodos que permiten realizar operaciones
de ordenación y búsqueda en objetos de tipo array. Estos métodos se
pueden utilizar con todos los tipos primitivos, String y con cualquier otro
tipo de objeto.
149
Council Chile Servicios de Capacitación www.council.cl
Estructuras de almacenamiento
150
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
Arrays.sort(numerosOrdenados);
151
Council Chile Servicios de Capacitación www.council.cl
Estructuras de almacenamiento
5
4
6
7
5
6
4
8
7
10
4
4
5
5
6
6
7
7
8
10
152
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
Vehiculo v = (Vehiculo)vehiculos.get(0);
153
Council Chile Servicios de Capacitación www.council.cl
Estructuras de almacenamiento
http://docs.oracle.com/javase/1.4.2/docs/api/java/util/ArrayList.html
154
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
import java.util.ArrayList;
import java.util.List;
import java.util.ArrayList;
import java.util.List;
System.out.println("Vehiculos");
155
Council Chile Servicios de Capacitación www.council.cl
Estructuras de almacenamiento
Vehiculos
Matrícula: 4060 TUR Modelo: Skoda Fabia Color: Blanco
Tarifa: 90.0 Disponible: true Puertas: 2 Marcha
automática: false
Matrícula: 4070 DEP Modelo: Ford Mustang Color: Rojo
Tarifa: 150.0 Disponible: true Cilindrada (cm3): 2000
Matrícula: 4080 TUR Modelo: VW GTI Color: Azul
Tarifa: 110.0 Disponible: true Puertas: 2 Marcha
automática: false
Matrícula: 4090 TUR Modelo: SEAT Ibiza Color: Blanco
Tarifa: 90.0 Disponible: true Puertas: 4 Marcha
automática: false
Matrícula: 4100 FUR Modelo: Fiat Ducato Color: Azul
Tarifa: 80.0 Disponible: true Carga (kg): 1200
Volumen (m3): 8
La nueva clase
EmpresaAlquilerVehiculos declara los objetos
clientes, vehículos y alquileres de tipo ArrayList para almacenar
la información de los clientes, el catálogo de vehículos y el histórico de
vehículos alquilados, respectivamente.
156
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
import java.util.ArrayList;
import java.util.List;
157
Council Chile Servicios de Capacitación www.council.cl
Estructuras de almacenamiento
158
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
return null;
}
159
Council Chile Servicios de Capacitación www.council.cl
Estructuras de almacenamiento
if (vehiculo.getDisponible()) {
vehiculo.setDisponible(false);
this.alquileres.add(
new VehiculoAlquilado(cliente, vehiculo,
diaHoy(), mesHoy(), añoHoy(), dias));
}
}
if (vehiculo != null)
vehiculo.setDisponible(true);
}
160
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
easydrive.registrarCliente(new Cliente("X5618927C",
"Juan","González López"));
161
Council Chile Servicios de Capacitación www.council.cl
Estructuras de almacenamiento
easydrive.imprimirClientes();
easydrive.imprimirVehiculos();
162
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
import java.util.ArrayList;
import java.util.List;
163
Council Chile Servicios de Capacitación www.council.cl
Estructuras de almacenamiento
easydrive.registrarCliente(new Cliente("X5618927C",
"Juan", "González López"));
easydrive.registrarCliente(new Cliente("Z7568991Y",
"Luis", "Fernández Gómez"));
easydrive.imprimirClientes();
easydrive.imprimirVehiculos();
}
}
164
Council Chile Servicios de Capacitación www.council.cl
7. Entrada y salida
Prácticamente todos los programas deben leer datos del exterior para
procesarlos y después presentar los resultados. La información que necesita
un programa normalmente se obtiene mediante la entrada de datos por el
teclado o leyendo un fichero. Los resultados de la ejecución de un programa
se pueden presentar por la consola, la impresora o en un fichero. El tipo de
información que se utiliza tanto en las entradas como en las salidas puede
tener diversos formatos: texto, imagen, sonido, binario, etc.
165
Council Chile Servicios de Capacitación www.council.cl
Entrada y salida
InputStream Reader
ByteArrayInputStream BufferedReader
FileInputStream LineNumberReader
FilterInputStream CharArrayReader
BufferedInputStream FilterReader
DataInputStream PushBackReader
LineNumberInputStream InputStreamReader
PushBackInputStream FileReader
ObjectInputStream PipedReader
PipedInputStream StringReader
SequenceInputStream
StringBufferInputStream
Existen flujos con bytes y flujos con caracteres que se aplican a la misma
entrada o salida. FileInputStream y FileOutputStream son flujos para
leer y escribir bytes en un fichero, FileReader y FileWriter también son
flujos que se aplican a archivos, pero en este caso para leer y escribir
caracteres.
166
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
167
Council Chile Servicios de Capacitación www.council.cl
Entrada y salida
import java.util.Scanner;
Una vez introducidos todos los datos, el programa muestra un mensaje por
la consola con el nombre y fecha de nacimiento.
168
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
archivosalida.close();
169
Council Chile Servicios de Capacitación www.council.cl
Entrada y salida
El for anidado escribe todos los elementos del array en el fichero de texto.
Al finalizar se invoca al método close() del objeto archivosalida para
cerrarlo.
1,2,3,4,5,
6,7,8,9,10,
11,12,13,14,15,
16,17,18,19,20,
21,22,23,24,25,
import java.io.PrintWriter;
import java.io.File;
import java.util.Scanner;
import java.util.StringTokenizer;
import java.io.IOException;
170
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
if (ficheroEntrada.exists()) {
Scanner datosFichero = new Scanner(ficheroEntrada);
while (datosFichero.hasNext()) {
StringTokenizer numerosFichero = new
StringTokenizer(datosFichero.next(),",");
while (numerosFichero.hasMoreTokens())
System.out.print(numerosFichero.nextToken() +
"\t");
System.out.println("");
}
datosFichero.close();
}
else
System.out.println("¡El fichero no existe!");
171
Council Chile Servicios de Capacitación www.council.cl
Entrada y salida
import java.io.File;
import java.io.IOException;
import java.util.Scanner;
import java.io.PrintWriter;
if (ficheroEntrada.exists()) {
Scanner datosFichero = new Scanner(ficheroEntrada);
System.out.println("Números del fichero");
while (datosFichero.hasNext()) {
StringTokenizer numerosFichero = new
StringTokenizer(datosFichero.next(),",");
while (numerosFichero.hasMoreTokens())
System.out.print(numerosFichero.nextToken() + "\t");
System.out.println("");
}
datosFichero.close();
}
else
System.out.println("¡El fichero no existe!");
}
}
172
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
173
Council Chile Servicios de Capacitación www.council.cl
Entrada y salida
174
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
try {
FileOutputStream archivosalida = new
FileOutputStream(nombreFichero);
ObjectOutputStream objetoSalida = new
ObjectOutputStream(archivosalida);
objetoSalida.writeObject(new Persona("55287188B",
"María", "Ruiz Ramos"));
objetoSalida.writeObject(new Persona("40302010A",
"Juan", "González López"));
objetoSalida.close();
} catch (FileNotFoundException e) {
System.out.println("¡El fichero no existe!");
} catch (IOException e) {
System.out.println(e.getMessage());
} catch (Exception e) {
System.out.println(e.getMessage());
};
175
Council Chile Servicios de Capacitación www.council.cl
Entrada y salida
Para leer los objetos almacenados en el fichero binario se utilizan las clases
FileInputStream y ObjectInputStream. Se crea una instancia de la
clase FileInputStream para inicializar la instancia objetoEntrada de
ObjectInputStream.
try {
FileInputStream ficheroEntrada = new
FileInputStream(nombreFichero);
ObjectInputStream objetoEntrada = new
ObjectInputStream(ficheroEntrada);
Persona p1 = (Persona)objetoEntrada.readObject();
Persona p2 = (Persona)objetoEntrada.readObject();
objetoEntrada.close();
System.out.println("DNI\t Nombre");
System.out.println(p1.getAtributos());
System.out.println(p2.getAtributos());
} catch (FileNotFoundException e) {
System.out.println("¡El fichero no existe!");
} catch (IOException e) {
System.out.println(e.getMessage());
} catch (Exception e) {
System.out.println(e.getMessage());
};
176
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
DNI Nombre
55287188B Ruiz Ramos, María
40302010A González López, Juan
Las sentencias try y catch se utilizan para atrapar las excepciones que se
producen durante la ejecución del programa: FileNotFoundException,
IOException o Exception. De esta forma se atrapan los errores que se
producen cuando el fichero de datos no existe o cuando hay un problema de
lectura o escritura en el fichero.
Las excepciones son el mecanismo que proporciona Java para gestionar los
errores de ejecución de una aplicación.
try {
sentencias-que-pueden-producir-una-excepción;
} catch (Excepción-tipo-1 e) {
sentencias-para-excepción-tipo-1;
} catch (Excepción-tipo-2 e) {
sentencias-para-excepción-tipo-2;
} catch (Excepción-tipo-3 e){
sentencias-para-excepción-tipo-3;
} finally {
sentencias-que-se-ejecutan-si-hay-excepción-o-no;
};
177
Council Chile Servicios de Capacitación www.council.cl
Entrada y salida
import java.io.*;
try {
FileOutputStream archivosalida = new
FileOutputStream(nombreFichero);
ObjectOutputStream objetoSalida = new
ObjectOutputStream(archivosalida);
objetoSalida.writeObject(new Persona("55287188B",
"María", "Ruiz Ramos"));
objetoSalida.writeObject(new Persona("40302010A",
"Juan", "González López"));
objetoSalida.close();
Persona p1 = (Persona)objetoEntrada.readObject();
Persona p2 = (Persona)objetoEntrada.readObject();
objetoEntrada.close();
System.out.println("DNI\t Nombre");
System.out.println(p1.getAtributos());
System.out.println(p2.getAtributos());
} catch (FileNotFoundException e) {
System.out.println("¡El fichero no existe!");
} catch (IOException e) {
System.out.println(e.getMessage());
} catch (Exception e) {
System.out.println(e.getMessage());
};
}
}
178
Council Chile Servicios de Capacitación www.council.cl
A. Operadores del lenguaje Java
Operadores aritméticos
Los operadores aritméticos son símbolos que representan operaciones
aritméticas con dos operandos.
- Resta
* Producto
/ División
% Módulo o resto
179
Council Chile Servicios de Capacitación www.council.cl
Operadores del lenguaje Java
++ a++ a=a+1
-- a-- a=a-1
+= a+=b a=a+b
-= a-=b a=a-b
*= a*=b a=a*b
/= a/=b a=a/b
%= a%=b a=a%b
180
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
Operadores de relación
Los operadores de relación permiten comparar dos o más valores.
= Igual nota = 10
Operadores lógicos
Java utiliza tres operadores lógicos: el O lógico (disyunción), el Y lógico
(conjunción) y la negación.
181
Council Chile Servicios de Capacitación www.council.cl
Operadores del lenguaje Java
Operador Descripción
+- Suma, resta
< > <= >= Menor, mayor, menor o igual, mayor igual
== != Igual, diferente
|| Operador lógico OR
182
Council Chile Servicios de Capacitación www.council.cl
B. Referencias
http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_Java
Java
http://es.wikipedia.org/wiki/Java_(lenguaje_de_programaci%C3%B3n)
http://www.programacionfacil.com/java/if
http://www.programacionfacil.com/java:switch
http://www.programacionfacil.com/java/ciclo_for
http://www.programacionfacil.com/java/while
http://www.programacionfacil.com/java/do_while
http://www.programacionfacil.com/java/ciclos_conclusiones
http://www.codexion.com/tutorialesjava/java/nutsandbolts/if.html
http://www.codexion.com/tutorialesjava/java/nutsandbolts/switch.html
http://www.codexion.com/tutorialesjava/java/nutsandbolts/for.html
http://www.codexion.com/tutorialesjava/java/nutsandbolts/while.html
http://aprender-java.blogspot.com
183
Council Chile Servicios de Capacitación www.council.cl
Referencias
El API de Java
http://download.oracle.com/javase/1,5,0/docs/api/allclasses-noframe.html
La clase Arrays
http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Arrays.html
La clase ArrayList
http://docs.oracle.com/javase/1.4.2/docs/api/java/util/ArrayList.html
La clase File
http://download.oracle.com/javase/1,5,0/docs/api/java/io/File.html
La clase PrintWriter
http://download.oracle.com/javase/1,5,0/docs/api/java/io/PrintWriter.html
http://download.oracle.com/javase/1,5,0/docs/api/java/util/Scanner.html
La clase StringTokenizer
http://download.oracle.com/javase/1,5,0/docs/api/java/util/StringTokenizer
.html
184
Council Chile Servicios de Capacitación www.council.cl
C. Glosario
185
Council Chile Servicios de Capacitación www.council.cl
Glosario
186
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
187
Council Chile Servicios de Capacitación www.council.cl
Glosario
188
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
5. El número de características
Expresión. Código que se forma
opcionales en XML debe ser
uniendo expresiones simples
mínima, idealmente cero
formadas por literales o variables
con operadores. El valor de una 6. Los documentos XML deben ser
expresión se calcula considerando legibles y claros
la precedencia de los operadores
aritméticos y lógicos. 7. El diseño de XML debe ser
conciso
eXtensible Markup Language
(XML). XML es un lenguaje de 8. Los documentos XML deben
marcado para la descripción de crearse fácilmente
datos estructurados. Permite
declarar los contenidos de forma 9. No importa si las marcas XML
precisa y separar el contenido del no son concisas
189
Council Chile Servicios de Capacitación www.council.cl
Glosario
190
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
191
Council Chile Servicios de Capacitación www.council.cl
Glosario
192
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
193
Council Chile Servicios de Capacitación www.council.cl
Glosario
N Sesión. Encargado
aspectos de la comunicación como
de ciertos
195
Council Chile Servicios de Capacitación www.council.cl
Glosario
certificadoras autorizadas y se
S pone en comunicación con el
servidor seguro que le envía su
Secure Socket Layer (SSL).
clave pública, rubricada por el
Protocolo que soporta cifrado para
notario. La identificación se
garantizar la privacidad de la
completa enviando al servidor un
comunicación entre un browser y
mensaje aleatorio que éste debe
un servidor web. Es el protocolo
firmar. De esta forma sabe el
de seguridad más utilizado en
cliente que al otro lado está quien
Internet, es una tecnología
dice ser.
diseñada por Netscape
Communications Inc. que dispone Verificada la identidad del
un nivel seguro entre el servicio servidor, el cliente genera una
clásico de transporte en Internet clave de sesión y la envía cifrada
(TCP) y las aplicaciones que se con la clave pública del servidor.
comunican a través de él. Conociendo ambos la clave de
sesión (y el servidor es el único en
Las comunicaciones tienen lugar
poderla descifrar al requerir su
en dos fases, en una primera fase
clave privada), se intercambian
se negocia entre el cliente y el
datos con seguridad cifrados por el
servidor una clave simétrica sólo
algoritmo de clave secreta.
válida para esa sesión. En la
segunda fase, se transfieren datos Servlet. Programa Java que
cifrados con dicha clave. Este aporta más funcionalidad a un
sistema es transparente para las servidor web generando
aplicaciones finales, que contenidos dinámicos e
simplemente saben que el canal interactuando con clientes web
(mantenido por el navegador y el utilizando el modelo Request-
servidor de comercio o servidor Response.
seguro) se encarga de
proporcionarles confidencialidad Simple Mail Transfer Protocol
punto a punto. (SMTP). El protocolo SMTP
proporciona el servicio de correo
La fase inicial que utiliza electrónico. Permite enviar
tecnología de cifrado de clave mensajes de texto y archivos
pública se realiza muy binarios de cualquier tipo a otros
cuidadosamente para evitar tanto usuarios de la red. Los mensajes
la intromisión de terceras partes de correo electrónico no se envían
como para evitar suplantaciones directamente a los computadores
de identidad del centro servidor. El personales de cada usuario, sino
navegador incluye las claves que se utiliza un computador que
públicas de ciertos notarios actúa como servidor de correo
electrónicos o entidades
196
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
198
Council Chile Servicios de Capacitación www.council.cl
Fundamentos de programación en Java
199
Council Chile Servicios de Capacitación www.council.cl
Glosario
200
Council Chile Servicios de Capacitación www.council.cl