Curso Java Básico Sopra Steria
Curso Java Básico Sopra Steria
29 de enero de 2019
1/227
Formación Sopra Steria / Java básico
29 de enero de 2019
Destinatario(s)
Historial
Versión Fecha Origen de la actualización Redactado por Validado por
1.0 25/04/2018 Sergio Comes
2.0 12/06/2018 Silvia Carpena
2.1 27/06/2018 Silvia Carpena
2.2 09/07/2018 Actualización expresiones lambda Silvia Carpena
2.3 29/01/2019 Actualización tutoriales 6 Alba Bermejo
2/227
Formación Sopra Steria / Java básico
29 de enero de 2019
Índice
3/227
Formación Sopra Steria / Java básico
29 de enero de 2019
4/227
Formación Sopra Steria / Java básico
29 de enero de 2019
5/227
Formación Sopra Steria / Java básico
29 de enero de 2019
*/
public int barking(int bark) {
bark = bark + 1;
return bark;
}
void hungry() {
}
void sleeping() {
}
}
* Copyright 2018.
*/
package [Link];
/**
* @author SopraSteria
*/
/*
*/
6/227
Formación Sopra Steria / Java básico
29 de enero de 2019
String breed;
int age;
String color;
/**
* @param bark
* @return bark
*/
bark = bark + 1;
return bark;
/**
* Método en blanco
*/
void hungry() {
/**
* Método en blanco
*/
7/227
Formación Sopra Steria / Java básico
29 de enero de 2019
void sleeping() {
3. Dentro de la clase FirstJavaProgram, se crea el método public static void main(String[] args)
(método main)
package [Link];
8/227
Formación Sopra Steria / Java básico
29 de enero de 2019
5. Output
This is my first program in java
4. Se crea un método public int add que devuelva la suma de dos valores
package [Link];
public class Calculator {
public int add(int a, int b){
return a+b;
}
}
9/227
Formación Sopra Steria / Java básico
29 de enero de 2019
10. El método main imprime por pantalla el restultado del método sum del objeto del tipo Calculator
que se acaba de crear
package [Link];
import [Link];
10/227
Formación Sopra Steria / Java básico
29 de enero de 2019
11. Output
300
11/227
Formación Sopra Steria / Java básico
29 de enero de 2019
}
}
5. Se crea un objeto Puppy y se usa su constructor con parámetros, al que se le pasa el parámetro
name con valor "tommy"
package [Link];
public class Puppy {
/*
* Constructor vacío
*/
public Puppy() {
}
/*
* Constructor con un parámetro de tipo String llamado name
*/
public Puppy(String name) {
[Link]("Passed Name is :" + name );
}
public static void main(String []args) {
/*
* Se crea un objeto Puppy al que se llama myPuppy y se hace uso para ello del
constructor con parámetros
* Es importante remarcar que siempre que se cree un objeto, se hará uso de la
palabra reservada new
12/227
Formación Sopra Steria / Java básico
29 de enero de 2019
*/
Puppy myPuppy = new Puppy( "tommy" );
}
}
6. Output
Passed Name is :tommy
4. Se crea un ejemplo de cada una de las primitivas de datos de Java: byte, short, long, double,
float, boolean y char
package [Link];
public class PrimitiveDataTypes {
public static void main(final String[] args) {
byte numByte = 113;
[Link](numByte);
short numShort = 150;
[Link](numShort);
13/227
Formación Sopra Steria / Java básico
29 de enero de 2019
int numInt = 7;
[Link](numInt);
long numLong = -12332252626L;
[Link](numLong);
double numDouble = -42937737.9d;
[Link](numDouble);
float numFloat = 19.98f;
[Link](numFloat);
boolean b = false;
[Link](b);
char ch = 'Z';
[Link](ch);
}
}
5. Output:
113
150
7
-12332252626
-4.29377379E7
19.98
false
Z
14/227
Formación Sopra Steria / Java básico
29 de enero de 2019
8. Dentro de la clase ReferenceTypes se crea una variable de un tipo de dato que no sea una
primitiva de datos. Por ejemplo, String.
package [Link];
public class ReferenceTypes {
public static void main(final String[] args) {
String text1;
String text2;
[Link](text1);
[Link](text2);
}
}
9. Output
I'm text1
null
15/227
Formación Sopra Steria / Java básico
29 de enero de 2019
4. Se pretenden hacer diferentes pruebas para poder comprobar cuáles son las distintas formas de
crear e inicializar variables en Java: crear una variable e inicializarla en una sentencia diferente,
crear varias variables e inicializarlas en una sola línea, etc
package [Link];
public class DeclaringAndInitializingVariables {
public static void main(final String[] args) {
/*
* Se crea una variable que es inicializada en una sentencia diferente
*/
int num;
num = 20;
/*
* Se crea una variable y se inicializa
*/
char ch = 'A';
int number = 100;
/*
* Se crean varias variables sin inicializar en una sola sentencia
*/
boolean b1, b2;
/*
* Se crea una variable inicializada y una sin inicializar en la misma senten
cia
*/
String s1 = "1", s2;
/*
* Se crean dos variables en sentencias diferentes, pero en la misma línea
*/
int n1; int n2;
}
}
16/227
Formación Sopra Steria / Java básico
29 de enero de 2019
17/227
Formación Sopra Steria / Java básico
29 de enero de 2019
5. Dentro del método main, se instancian una serie de objetos de la clase InstanceVariables
package [Link];
public class InstanceVariables {
/*
* Cada uno de los objetos de la clase InstanceVariables que se cree
* tendrá su propia variable de instancia myInstanceVar
*/
String myInstanceVar = "instance variable";
public static void main(final String args[]) {
InstanceVariables obj = new InstanceVariables();
InstanceVariables obj2 = new InstanceVariables();
InstanceVariables obj3 = new InstanceVariables();
}
}
6. Se imprime por pantalla la variable myInstanceVar para cada uno de los objetos
package [Link];
public class InstanceVariables {
/*
* Cada uno de los objetos de la clase InstanceVariables que se cree
* tendrá su propia variable de instancia myInstanceVar
*/
String myInstanceVar = "instance variable";
public static void main(final String args[]) {
InstanceVariables obj = new InstanceVariables();
InstanceVariables obj2 = new InstanceVariables();
InstanceVariables obj3 = new InstanceVariables();
[Link]([Link]);
[Link]([Link]);
[Link]([Link]);
}
}
18/227
Formación Sopra Steria / Java básico
29 de enero de 2019
[Link]([Link]);
[Link]([Link]);
[Link]([Link]);
/*
* Se cambia la variable de instancia myInstanceVar del objeto obj2,
* pero no del resto.
*/
[Link] = "Changed Text";
}
}
8. Al imprimir de nuevo por pantalla las variables myInstanceVar de cada uno de los objetos, se
podrá ver como la variable de obj2 es ahora diferente, ya que ha sido modificada previamente.
package [Link];
public class InstanceVariables {
/*
* Cada uno de los objetos de la clase InstanceVariables que se cree
* tendrá su propia variable de instancia myInstanceVar
*/
String myInstanceVar = "instance variable";
public static void main(final String args[]) {
InstanceVariables obj = new InstanceVariables();
InstanceVariables obj2 = new InstanceVariables();
InstanceVariables obj3 = new InstanceVariables();
[Link]([Link]);
[Link]([Link]);
[Link]([Link]);
/*
* Se cambia la variable de instancia myInstanceVar del objeto obj2,
* pero no del resto.
*/
[Link] = "Changed Text";
19/227
Formación Sopra Steria / Java básico
29 de enero de 2019
[Link]([Link]);
[Link]([Link]);
[Link]([Link]);
}
}
9. Output
instance variable
instance variable
instance variable
instance variable
Changed Text
instance variable
11. Dentro de la clase LocalVariables se crea una variable de instancia inicializada (myVar en este
caso)
package [Link];
public class LocalVariables {
/*
* Variable de instancia myVar
*/
public String myVar = "instance variable";
}
12. Se crea un método (myMethod()) que crea una variable local también llamada myVar y se
inicializa
package [Link];
public class LocalVariables {
/*
* Variable de instancia myVar
*/
public String myVar = "instance variable";
20/227
Formación Sopra Steria / Java básico
29 de enero de 2019
21/227
Formación Sopra Steria / Java básico
29 de enero de 2019
/*
* Se crea un objeto LocalVariables llamado obj
*/
LocalVariables obj = new LocalVariables();
}
}
15. Se llama al método myMethod(), que imprime por pantalla el valor de la variable local myVar
package [Link];
public class LocalVariables {
/*
* Variable de instancia myVar
*/
public String myVar = "instance variable";
public void myMethod() {
/*
* Variable local myVar
*/
String myVar = "Inside Method";
[Link](myVar);
}
public static void main(final String args[]) {
/*
* Se crea un objeto LocalVariables llamado obj
*/
LocalVariables obj = new LocalVariables();
[Link]("Calling Method");
[Link]();
}
}
22/227
Formación Sopra Steria / Java básico
29 de enero de 2019
17. Output
Calling Method
Inside Method
instance variable
19. Dentro de la clase ClassVariables se crea una variable de clase o estática inicializada (myClassVar
en este caso)
package [Link];
public class ClassVariables {
/*
* Cada uno de los objetos de la clase ClassVariables que se cree
* tendrá la misma variable myClassVar
*/
public static String myClassVar="class or static variable";
}
23/227
Formación Sopra Steria / Java básico
29 de enero de 2019
/*
* Cada uno de los objetos de la clase ClassVariables que se cree
* tendrá la misma variable myClassVar
*/
public static String myClassVar="class or static variable";
21. Dentro del método main, se instancian una serie de objetos de la clase ClassVariables
package [Link];
public class ClassVariables {
/*
* Cada uno de los objetos de la clase ClassVariables que se cree
* tendrá la misma variable myClassVar
*/
public static String myClassVar="class or static variable";
22. Se imprime por pantalla la variable myClassVar para cada uno de los objetos
package [Link];
public class ClassVariables {
/*
* Cada uno de los objetos de la clase ClassVariables que se cree
* tendrá la misma variable myClassVar
*/
public static String myClassVar="class or static variable";
24/227
Formación Sopra Steria / Java básico
29 de enero de 2019
[Link]([Link]);
[Link]([Link]);
[Link]([Link]);
}
}
23. Se cambia la variable myClassVar de uno de los objetos (obj2 en este caso)
package [Link];
public class ClassVariables {
/*
* Cada uno de los objetos de la clase ClassVariables que se cree
* tendrá la misma variable myClassVar
*/
public static String myClassVar="class or static variable";
[Link]([Link]);
[Link]([Link]);
[Link]([Link]);
/*
* Se cambia la variable de instancia myClassVar del objeto obj2,
* y por tanto, puesto que es única, cambiará también para obj y obj3
*/
[Link] = "Changed Text";
}
}
24. Al imprimir de nuevo por pantalla las variables myClassVar de cada uno de los objetos, se podrá
ver como el resultado ha cambiado para todos los objetos a pesar de haber modificado solo
myClassVar en obj2. Esto se debe a que es una variable estática o de clase
package [Link];
public class ClassVariables {
/*
* Cada uno de los objetos de la clase ClassVariables que se cree
25/227
Formación Sopra Steria / Java básico
29 de enero de 2019
[Link]([Link]);
[Link]([Link]);
[Link]([Link]);
/*
* Se cambia la variable de instancia myClassVar del objeto obj2,
* y por tanto, puesto que es única, cambiará también para obj y obj3
*/
[Link] = "Changed Text";
[Link]([Link]);
[Link]([Link]);
[Link]([Link]);
}
}
25. Output
class or static variable
class or static variable
class or static variable
Changed Text
Changed Text
Changed Text
26/227
Formación Sopra Steria / Java básico
29 de enero de 2019
/*
* Imports, después de la declaración del paquete.
*/
import [Link];
import [Link];
/*
* Capítulo 3: Bloques básicos en Java
*
* @author SopraSteria
*
* Esta clase pretende mostrar la estructura de una clase Java sencilla.
* Como se puede ver, los comentarios pueden estar en cualquier parte de la clase.
*
*/
/*
* Declaración de la clase
*/
public class Website {
/*
* Variables de instancia
*/
String webName;
int webAge;
/*
* Constructor de la clase
*/
Website(String name, int age){
[Link] = name;
[Link] = age;
}
/*
27/227
Formación Sopra Steria / Java básico
29 de enero de 2019
* Métodos de la clase
*/
public Date fechaActual() {
Calendar c1 = [Link]();
return [Link]();
}
}
4. Se crea un objeto DestroyingObjects obj al que posteriormente se le asigna un valor NULL. Este
es por lo tanto eliminado por el Garbage Collector.
package [Link];
public class DestroyingObjects {
public static void main(final String args[]) {
DestroyingObjects obj = new DestroyingObjects();
/*
* El objeto al que hace referencia obj es destruído y recogido por e
l GC
*/
obj = null;
28/227
Formación Sopra Steria / Java básico
29 de enero de 2019
}
}
/*
*/
b = a;
29/227
Formación Sopra Steria / Java básico
29 de enero de 2019
/*
* El objeto al que apunaba b es recogido por el GB al cambiar su referencia
al objeto
* al que apunta a
*/
b = a;
/*
* Se invoca al Garbage Collector
*/
[Link]();
}
}
/*
* El objeto al que apunaba b es recogido por el GB al cambiar su referencia
al objeto
* al que apunta a
*/
b = a;
/*
* Se invoca al Garbage Collector
30/227
Formación Sopra Steria / Java básico
29 de enero de 2019
*/
[Link]();
}
@Override
protected void finalize() throws Throwable {
[Link]("Garbage collection is performed by JVM");
}
}
8. Output
Garbage collection is performed by JVM
Garbage collection is performed by JVM
}
}
31/227
Formación Sopra Steria / Java básico
29 de enero de 2019
}
}
}
}
6. Output
num1 + num2: 120
num1 - num2: 80
num1 * num2: 2000
num1 / num2: 5
num1 % num2: 0
32/227
Formación Sopra Steria / Java básico
29 de enero de 2019
boolean b1 = true;
boolean b2 = false;
5. Se muestra por pantalla la comparación de las dos variables con todos los operadores lógicos
package [Link];
boolean b1 = true;
33/227
Formación Sopra Steria / Java básico
29 de enero de 2019
boolean b2 = false;
6. Output
b1 && b2: false
b1 || b2: true
!(b1 && b2): true
b1 & b2: false
b1 | b2: true
b1 ^ b2: true
34/227
Formación Sopra Steria / Java básico
29 de enero de 2019
int num1=100;
int num2=200;
int num1=100;
int num2=200;
num1++;
int num1=100;
int num2=200;
num1++;
num2--;
35/227
Formación Sopra Steria / Java básico
29 de enero de 2019
int num1=100;
int num2=200;
num1++;
num2--;
8. Output
num1++ is: 101
num2-- is: 199
36/227
Formación Sopra Steria / Java básico
29 de enero de 2019
num2 = num1;
num2 += num1;
num2 -= num1;
37/227
Formación Sopra Steria / Java básico
29 de enero de 2019
num2 *= num1;
num2 /= num1;
num2 %= num1;
6. Output
= Output: 10
+= Output: 20
-= Output: 10
*= Output: 100
/= Output: 10
%= Output: 0
38/227
Formación Sopra Steria / Java básico
29 de enero de 2019
5. Se realizan sentencias if donde se compara las dos variables con todos los operadores de
comparación
package [Link];
if(num1==num2) {
else{
39/227
Formación Sopra Steria / Java básico
29 de enero de 2019
else{
else{
else{
else{
40/227
Formación Sopra Steria / Java básico
29 de enero de 2019
else{
6. Output
num1 and num2 are not equal
num1 and num2 are not equal
num1 is not greater than num2
num1 is less than num2
num1 is less than num2
num1 is less than or equal to num2
41/227
Formación Sopra Steria / Java básico
29 de enero de 2019
int num=70;
5. Se realiza una sentencia if que compara la variable con otro valor y muestra por pantalla un
mensaje cuando la comparación es verdadera
package [Link];
int num=70;
int num=70;
42/227
Formación Sopra Steria / Java básico
29 de enero de 2019
7. En la segunda sentencia if, se compara la variable con otro valor distinto al anterior y se muestra
por pantalla un mensaje cuando la comparación sea cierta
package [Link];
int num=70;
8. Output
number is less than 100
number is less than 100
number is greater than 50
43/227
Formación Sopra Steria / Java básico
29 de enero de 2019
int num=1234;
5. Se realiza una sentencia if-then-else que compara la variable con otro valor y muestra por
pantalla un mensaje cuando la comparación es verdadera
package [Link];
int num=1234;
44/227
Formación Sopra Steria / Java básico
29 de enero de 2019
int num=1234;
else {
int num=1234;
else {
45/227
Formación Sopra Steria / Java básico
29 de enero de 2019
else {
8. Output
num is greater than or equal 50
Its a four digit number
46/227
Formación Sopra Steria / Java básico
29 de enero de 2019
int i=2;
5. Se realiza una sentencia switch con 4 casos y uno por defecto. En cada caso se muestra un
mensaje del caso que se ha ejecutado. No hay que olvidar la anotación "break"
package [Link];
int i=2;
switch(i){
case 1:
[Link]("Case1 ");
break;
47/227
Formación Sopra Steria / Java básico
29 de enero de 2019
case 2:
[Link]("Case2 ");
break;
case 3:
[Link]("Case3 ");
break;
case 4:
[Link]("Case4 ");
break;
default:
[Link]("Default ");
6. Output
Case2
48/227
Formación Sopra Steria / Java básico
29 de enero de 2019
int i=10;
5. Se realiza una sentencia while que imprime por pantalla el valor de la variable y después se
decrementa en uno. El bucle se ejecutará mientras la variable sea mayor que 1
package [Link];
int i=10;
while(i>1){
[Link](i);
i--;
49/227
Formación Sopra Steria / Java básico
29 de enero de 2019
int i=10;
while(i>1){
[Link](i);
i--;
int arr[]={2,11,45,9};
int i=10;
while(i>1){
[Link](i);
i--;
int arr[]={2,11,45,9};
int y=0;
50/227
Formación Sopra Steria / Java básico
29 de enero de 2019
int i=10;
while(i>1){
[Link](i);
i--;
int arr[]={2,11,45,9};
int y=0;
while(y<4){
int i=10;
while(i>1){
[Link](i);
i--;
int arr[]={2,11,45,9};
int y=0;
while(y<4){
51/227
Formación Sopra Steria / Java básico
29 de enero de 2019
y++;
10. Output
10
9
8
7
6
5
4
3
2
pos 0: 2
pos 1: 11
pos 2: 45
pos 3: 9
52/227
Formación Sopra Steria / Java básico
29 de enero de 2019
int i=10;
5. Se realiza una sentencia do-while que imprime por pantalla el valor de la variable y después se
decrementa en uno. El bucle se ejecutará mientras la variable sea mayor que 1
package [Link];
int i=10;
do{
[Link](i);
i--;
}while(i>1);
int i=10;
53/227
Formación Sopra Steria / Java básico
29 de enero de 2019
do{
[Link](i);
i--;
}while(i>1);
int arr[]={2,11,45,9};
int i=10;
do{
[Link](i);
i--;
}while(i>1);
int arr[]={2,11,45,9};
int y=0;
int i=10;
do{
54/227
Formación Sopra Steria / Java básico
29 de enero de 2019
[Link](i);
i--;
}while(i>1);
int arr[]={2,11,45,9};
int y=0;
do{
}while(y<4);
int i=10;
do{
[Link](i);
i--;
}while(i>1);
int arr[]={2,11,45,9};
int y=0;
do{
y++;
}while(y<4);
55/227
Formación Sopra Steria / Java básico
29 de enero de 2019
10. Output
10
9
8
7
6
5
4
3
2
pos 0: 2
pos 1: 11
pos 2: 45
pos 3: 9
56/227
Formación Sopra Steria / Java básico
29 de enero de 2019
4. Se realiza un bucle for que imprime por pantalla el valor de la variable de inicialización y después
se decrementa en uno. El bucle se ejecutará mientras la variable sea mayor que 1
package [Link];
int arr[]={2,11,45,9};
57/227
Formación Sopra Steria / Java básico
29 de enero de 2019
int arr[]={2,11,45,9};
int arr[]={2,11,45,9};
8. A continuación se recorre el array creado anteriormente con un bucle forEach y se muestra por
pantalla sus valores
package [Link];
int arr[]={2,11,45,9};
58/227
Formación Sopra Steria / Java básico
29 de enero de 2019
9. Output
The value of i is: 10
The value of i is: 9
The value of i is: 8
The value of i is: 7
The value of i is: 6
The value of i is: 5
The value of i is: 4
The value of i is: 3
The value of i is: 2
For: 2
For: 11
For: 45
For: 9
forEach: 2
forEach: 11
forEach: 45
forEach: 9
59/227
Formación Sopra Steria / Java básico
29 de enero de 2019
5. Se realiza un bucle while que compara esa variable con un valor. Mientras la comparación sea
verdadera, entrará dentro del bucle.
package [Link];
while(num1<=100){
60/227
Formación Sopra Steria / Java básico
29 de enero de 2019
while(num1<=100){
while(num1<=100){
if (num1==2){
8. Si la comparación es verdadera se utiliza la sentencia break para salir del bucle while.
package [Link];
while(num1<=100){
61/227
Formación Sopra Steria / Java básico
29 de enero de 2019
if (num1==2){
break;
while(num1<=100){
if (num1==2){
break;
num1++;
10. Una vez salga del bucle se muestra por pantalla un mensaje de salida del bucle.
package [Link];
while(num1<=100){
if (num1==2){
62/227
Formación Sopra Steria / Java básico
29 de enero de 2019
break;
num1++;
[Link]("Out of while-loop");
while(num1<=100){
if (num1==2){
break;
num1++;
[Link]("Out of while-loop");
int var;
63/227
Formación Sopra Steria / Java básico
29 de enero de 2019
12. Se realiza un bucle for que compara esa variable con un valor mientras el resultado de la
comparación sea verdadero.
package [Link];
while(num1<=100){
if (num1==2){
break;
num1++;
[Link]("Out of while-loop");
int var;
while(num1<=100){
if (num1==2){
break;
64/227
Formación Sopra Steria / Java básico
29 de enero de 2019
num1++;
[Link]("Out of while-loop");
int var;
[Link]("var: "+var);
14. Se realiza una sentencia if-then-else que la compara con otro valor.
package [Link];
while(num1<=100){
if (num1==2){
break;
num1++;
[Link]("Out of while-loop");
int var;
[Link]("var: "+var);
if (var==99){
65/227
Formación Sopra Steria / Java básico
29 de enero de 2019
15. Si la comparación es verdadera se utiliza la sentencia break para salir del bucle for, si no lo es,
se decrementa en uno el valor de la variable.
package [Link];
while(num1<=100){
if (num1==2){
break;
num1++;
[Link]("Out of while-loop");
int var;
[Link]("var: "+var);
if (var==99){
break;
66/227
Formación Sopra Steria / Java básico
29 de enero de 2019
16. Una vez salga del bucle se muestra por pantalla un mensaje de salida del bucle.
package [Link];
while(num1<=100){
if (num1==2){
break;
num1++;
[Link]("Out of while-loop");
int var;
[Link]("var: "+var);
if (var==99){
break;
[Link]("Out of for-loop");
67/227
Formación Sopra Steria / Java básico
29 de enero de 2019
while(num1<=100){
if (num1==2){
break;
num1++;
[Link]("Out of while-loop");
int var;
[Link]("var: "+var);
if (var==99){
break;
[Link]("Out of for-loop");
int num2=2;
18. Se realiza una sentencia switch que compara esa variable con un caso del switch.
package [Link];
while(num1<=100){
if (num1==2){
68/227
Formación Sopra Steria / Java básico
29 de enero de 2019
break;
num1++;
[Link]("Out of while-loop");
int var;
[Link]("var: "+var);
if (var==99){
break;
[Link]("Out of for-loop");
int num2=2;
switch (num2){
19. Se imprime por pantalla el caso al que se ha accedido. Se utiliza la sentencia break para salir del
switch.
package [Link];
while(num1<=100){
if (num1==2){
69/227
Formación Sopra Steria / Java básico
29 de enero de 2019
break;
num1++;
[Link]("Out of while-loop");
int var;
[Link]("var: "+var);
if (var==99){
break;
[Link]("Out of for-loop");
int num2=2;
switch (num2){
case 1:
[Link]("Case 1 ");
break;
case 2:
[Link]("Case 2 ");
break;
case 3:
[Link]("Case 3 ");
break;
default:
[Link]("Default ");
70/227
Formación Sopra Steria / Java básico
29 de enero de 2019
20. Output
Value of variable is: 0
Value of variable is: 1
Value of variable is: 2
Out of while-loop
var: 100
var: 99
Out of for-loop
Case 2
71/227
Formación Sopra Steria / Java básico
29 de enero de 2019
int counter=10;
5. Se realiza un bucle while que compara esa variable con un valor mientras el resultado de la
comparación sea verdadero
package [Link];
int counter=10;
int counter=10;
if (counter==7){
72/227
Formación Sopra Steria / Java básico
29 de enero de 2019
int counter=10;
if (counter==7){
counter--;
continue;
int counter=10;
if (counter==7){
counter--;
continue;
[Link](counter+" ");
counter--;
73/227
Formación Sopra Steria / Java básico
29 de enero de 2019
9. A continuación, se realiza un bucle for que compara una variable con un valor
package [Link];
int counter=10;
if (counter==7){
counter--;
continue;
[Link](counter+" ");
counter--;
10. Si la comparación es verdadera se realiza un sentencia if-then-else que la compara con otro valor
package [Link];
int counter=10;
if (counter==7){
counter--;
continue;
[Link](counter+" ");
74/227
Formación Sopra Steria / Java básico
29 de enero de 2019
counter--;
if (j==4){
11. Si la comparación es verdadera se utiliza la sentencia continue para pasar a la siguiente iteración
del bucle for
package [Link];
int counter=10;
if (counter==7){
counter--;
continue;
[Link](counter+" ");
counter--;
if (j==4){
continue;
75/227
Formación Sopra Steria / Java básico
29 de enero de 2019
int counter=10;
if (counter==7){
counter--;
continue;
[Link](counter+" ");
counter--;
if (j==4){
continue;
[Link](j+" ");
76/227
Formación Sopra Steria / Java básico
29 de enero de 2019
int counter=10;
if (counter==7){
counter--;
continue;
[Link](counter+" ");
counter--;
if (j==4){
continue;
[Link](j+" ");
int j=0;
14. Se realiza un bucle do-while que compara esa variable con un valor
package [Link];
int counter=10;
if (counter==7){
counter--;
continue;
77/227
Formación Sopra Steria / Java básico
29 de enero de 2019
[Link](counter+" ");
counter--;
if (j==4){
continue;
[Link](j+" ");
int j=0;
do{
}while(j<10);
int counter=10;
if (counter==7){
counter--;
continue;
[Link](counter+" ");
counter--;
78/227
Formación Sopra Steria / Java básico
29 de enero de 2019
if (j==4){
continue;
[Link](j+" ");
int j=0;
do{
if (j==7){
}while(j<10);
int counter=10;
if (counter==7){
counter--;
continue;
[Link](counter+" ");
counter--;
79/227
Formación Sopra Steria / Java básico
29 de enero de 2019
if (j==4){
continue;
[Link](j+" ");
int j=0;
do{
if (j==7){
j++;
continue;
}while(j<10);
int counter=10;
if (counter==7){
counter--;
continue;
[Link](counter+" ");
80/227
Formación Sopra Steria / Java básico
29 de enero de 2019
counter--;
if (j==4){
continue;
[Link](j+" ");
int j=0;
do{
if (j==7){
j++;
continue;
j++;
}while(j<10);
18. Output
10 9 8 6 5 4 3 2 1 0 0 1 2 3 5 6 0 1 2 3 4 5 6 8 9
81/227
Formación Sopra Steria / Java básico
29 de enero de 2019
4. Se declaran y se inicializan las variables necesarias para almacenar los contadores de ceros,
negativos y positivos
package [Link];
82/227
Formación Sopra Steria / Java básico
29 de enero de 2019
int num;
int cont_zeros; // the zero counter
int cont_pos; // positive counter
int cont_neg; // negative counter
int sum_pos,sum_neg; // sum of the positive and negative numbers
float average_pos,average_neg; // positive and negative averages can have
decimal places
cont_zeros=0;
cont_pos=0;
cont_neg=0;
sum_pos=0;
sum_neg=0;
for (int i=1;i<=10;i++) {}
}
}
6. Se declara una variable num con un valor aleatorio y se muestra el valor generado
package [Link];
83/227
Formación Sopra Steria / Java básico
29 de enero de 2019
84/227
Formación Sopra Steria / Java básico
29 de enero de 2019
85/227
Formación Sopra Steria / Java básico
29 de enero de 2019
9. Output:
Random number: 5
Random number: 2
Random number: 3
Random number: 1
Random number: 6
Random number: 6
Random number: 1
Random number: 6
Random number: 7
Random number: 6
The number of zeros entered is: 0
Average of positives: 4.3
Average of negatives: NaN
Una empresa que se dedica a la venta de desinfectantes necesita un programa para gestionar las
facturas. En cada factura figura: el código del artículo, la cantidad vendida en litros y el precio por litro.
Se pide de 5 facturas introducidas: Facturación total, cantidad en litros vendidos del artículo 1 y cuantas
facturas se emitieron de más de 600 €.
86/227
Formación Sopra Steria / Java básico
29 de enero de 2019
4. Se declaran y se inicializan las variables necesarias para almacenar los contadores de ceros,
negativos y positivos
package [Link];
public class Sentences2 {
public static void main(String[] args) {
int code; // the item code on each invoice
int liters; // the number of liters in each invoice
float price; // now the price is not asked per keyboard
float invoice_amount; // This saves the amount of the current invoice.
float total_invoicing; // the amount of all invoices
int liters_cod1; // the total litres sold of product 1 on all invoices
int over_600; // counter to keep track of all invoices over 600 €
total_invoicing = 0;
liters_cod1 = 0; over_600 = 0;
total_invoicing = 0;
code = 0; over_600 = 0;
}
}
}
87/227
Formación Sopra Steria / Java básico
29 de enero de 2019
code = 0; over_600 = 0;
for (int i=1;i<=5;i++) { }
}
}
6. Se generan valores aleatorios para el código, los litros y el precio por litro
package [Link];
public class Sentences2 {
public static void main(String[] args) {
int code; // the item code on each invoice
int liters; // the number of liters in each invoice
float price; // now the price is not asked per keyboard
float invoice_amount; // This saves the amount of the current invoice.
float total_invoicing; // the amount of all invoices
int liters_cod1; // the total litres sold of product 1 on all invoices
int over_600; // counter to keep track of all invoices over 600 €
total_invoicing = 0;
liters_cod1 = 0; over_600 = 0;
total_invoicing = 0;
code = 0; over_600 = 0;
for (int i=1;i<=5;i++) {
code=(int) ([Link]() * 2) + 1;
}
}
}
88/227
Formación Sopra Steria / Java básico
29 de enero de 2019
code=(int) ([Link]() * 2) + 1;
invoice_amount = liters*price;
total_invoicing += invoice_amount;
if (code == 1)
liters_cod1 += liters;
over_600 ++;
89/227
Formación Sopra Steria / Java básico
29 de enero de 2019
}
}
package [Link];
public class Sentences2 {
public static void main(String[] args) {
int code; // the item code on each invoice
int liters; // the number of liters in each invoice
float price; // now the price is not asked per keyboard
float invoice_amount; // This saves the amount of the current invoice.
float total_invoicing; // the amount of all invoices
int liters_cod1; // the total litres sold of product 1 on all invoices
int over_600; // counter to keep track of all invoices over 600 €
total_invoicing = 0;
liters_cod1 = 0; over_600 = 0;
total_invoicing = 0;
code = 0; over_600 = 0;
for (int i=1;i<=5;i++) {
code=(int) ([Link]() * 2) + 1;
invoice_amount = liters*price;
total_invoicing += invoice_amount;
90/227
Formación Sopra Steria / Java básico
29 de enero de 2019
if (code == 1)
liters_cod1 += liters;
over_600 ++;
[Link]("\n\n\nSales Overview\n");
// total invoicing
// liters of article 1
9. Output
Invoice nº 1
product code: 2
number (liters): 9
price (litre): 480.0
Invoice nº 2
product code: 2
number (liters): 6
price (litre): 228.0
Invoice nº 3
product code: 1
number (liters): 7
price (litre): 214.0
Invoice nº 4
product code: 1
number (liters): 1
price (litre): 396.0
Invoice nº 5
product code: 2
number (liters): 2
91/227
Formación Sopra Steria / Java básico
29 de enero de 2019
Igual que el anterior pero suponiendo que no se introduce el precio por litro. Solo existen tres productos
con precios:
4. Se declaran y se inicializan las variables necesarias para almacenar los contadores de ceros,
negativos y positivos
package [Link];
public class Sentences3 {
public static void main(String[] args) {
int code; // the item code on each invoice
int liters; // the number of liters in each invoice
float price; // now the price is not asked per keyboard
float invoice_amount; // This saves the amount of the current invoice.
float total_invoicing; // the amount of all invoices
92/227
Formación Sopra Steria / Java básico
29 de enero de 2019
6. Se generan valores aleatorios para el código, los litros y el case con los precios por litro según
el código
package [Link];
public class Sentences3 {
public static void main(String[] args) {
int code; // the item code on each invoice
int liters; // the number of liters in each invoice
float price; // now the price is not asked per keyboard
float invoice_amount; // This saves the amount of the current invoice.
float total_invoicing; // the amount of all invoices
int liters_cod1; // the total litres sold of product 1 on all invoices
int over_600; // counter to keep track of all invoices over 600 €
total_invoicing = 0;
liters_cod1 = 0; over_600 = 0;
93/227
Formación Sopra Steria / Java básico
29 de enero de 2019
total_invoicing = 0;
for (int i=1;i<=5;i++) {
code=(int) ([Link]() * 2) + 1;
switch (code) {
case 1:
price = 0.6f;
break;
case 2:
price = 30f;
break;
case 3:
price = 101.25f;
break;
default:
}
}
}
94/227
Formación Sopra Steria / Java básico
29 de enero de 2019
code=(int) ([Link]() * 2) + 1;
switch (code) {
case 1:
price = 0.6f;
break;
case 2:
price = 30f;
break;
case 3:
price = 101.25f;
break;
default:
95/227
Formación Sopra Steria / Java básico
29 de enero de 2019
invoice_amount = liters*price;
total_invoicing += invoice_amount;
if (code == 1)
liters_cod1 += liters;
over_600 ++;
}
}
package [Link];
public class Sentencies2 {
public static void main(String[] args) {
int code; // the item code on each invoice
int liters; // the number of liters in each invoice
float price; // now the price is not asked per keyboard
float invoice_amount; // This saves the amount of the current invoice.
float total_invoicing; // the amount of all invoices
int liters_cod1; // the total litres sold of product 1 on all invoices
int over_600; // counter to keep track of all invoices over 600 €
total_invoicing = 0;
liters_cod1 = 0; over_600 = 0;
total_invoicing = 0;
code = 0; over_600 = 0;
for (int i=1;i<=5;i++) {
code=(int) ([Link]() * 2) + 1;
switch (code) {
96/227
Formación Sopra Steria / Java básico
29 de enero de 2019
case 1:
price = 0.6f;
break;
case 2:
price = 30f;
break;
case 3:
price = 101.25f;
break;
default:
invoice_amount = liters*price;
total_invoicing += invoice_amount;
if (code == 1)
liters_cod1 += liters;
over_600 ++;
[Link]("\n\n\nSales Overview\n");
// total invoicing
// liters of article 1
97/227
Formación Sopra Steria / Java básico
29 de enero de 2019
9. Output
Invoice nº 1
Product code: 2
Number (liters): 51
Invoice nº 2
Product code: 1
Number (liters): 87
Invoice nº 3
Product code: 1
Number (liters): 68
Invoice nº 4
Product code: 2
Number (liters): 97
Invoice nº 5
Product code: 2
Number (liters): 70
Sales Overview
The total invoicing is: 6633.0€
Liters Article 1 : 155 liters
Invoice over €600: 3
98/227
Formación Sopra Steria / Java básico
29 de enero de 2019
[Link](helloString);
6. Se crea una variable len y se le asigna la longitud del String. Después se imprime por pantalla
package [Link];
99/227
Formación Sopra Steria / Java básico
29 de enero de 2019
[Link](helloString);
[Link](helloString);
[Link](helloString);
100/227
Formación Sopra Steria / Java básico
29 de enero de 2019
[Link](helloString);
[Link](helloString);
[Link]([Link](6));
[Link](helloString);
[Link](helloString);
[Link]([Link](6));
[Link]([Link]('l'));
101/227
Formación Sopra Steria / Java básico
29 de enero de 2019
10. Se imprime por pantalla el substring del String inicial desde la posición 3 hasta el final
package [Link];
[Link](helloString);
[Link](helloString);
[Link]([Link](6));
[Link]([Link]('l'));
[Link]([Link](3));
102/227
Formación Sopra Steria / Java básico
29 de enero de 2019
[Link](helloString);
[Link](helloString);
[Link]([Link](6));
[Link]([Link]('l'));
[Link]([Link](3));
[Link]([Link]());
[Link](helloString);
103/227
Formación Sopra Steria / Java básico
29 de enero de 2019
[Link](helloString);
[Link]([Link](6));
[Link]([Link]('l'));
[Link]([Link](3));
[Link]([Link]());
[Link]([Link]("ABC"));
[Link](helloString);
[Link](helloString);
[Link]([Link](6));
104/227
Formación Sopra Steria / Java básico
29 de enero de 2019
[Link]([Link]('l'));
[Link]([Link](3));
[Link]([Link]());
[Link]([Link]("ABC"));
[Link]([Link]("a"));
[Link](helloString);
[Link](helloString);
[Link]([Link](6));
[Link]([Link]('l'));
105/227
Formación Sopra Steria / Java básico
29 de enero de 2019
[Link]([Link](3));
[Link]([Link]());
[Link]([Link]("ABC"));
[Link]([Link]("a"));
[Link]([Link]("o"));
15. Se imprime por pantalla el cambio de la letra "e" por la letra "a"
package [Link];
[Link](helloString);
[Link](helloString);
[Link]([Link](6));
[Link]([Link]('l'));
106/227
Formación Sopra Steria / Java básico
29 de enero de 2019
[Link]([Link](3));
[Link]([Link]());
[Link]([Link]("ABC"));
[Link]([Link]("a"));
[Link]([Link]("o"));
[Link]([Link]('e', 'a'));
16. Se imprime por pantalla el String sin espacios en blanco delante y detrás
package [Link];
[Link](helloString);
[Link](helloString);
[Link]([Link](6));
107/227
Formación Sopra Steria / Java básico
29 de enero de 2019
[Link]([Link]('l'));
[Link]([Link](3));
[Link]([Link]());
[Link]([Link]("ABC"));
[Link]([Link]("a"));
[Link]([Link]("o"));
[Link]([Link]('e', 'a'));
[Link]([Link]());
[Link](helloString);
108/227
Formación Sopra Steria / Java básico
29 de enero de 2019
[Link](helloString);
[Link]([Link](6));
[Link]([Link]('l'));
[Link]([Link](3));
[Link]([Link]());
[Link]([Link]("ABC"));
[Link]([Link]("a"));
[Link]([Link]("o"));
[Link]([Link]('e', 'a'));
[Link]([Link]());
109/227
Formación Sopra Steria / Java básico
29 de enero de 2019
[Link](helloString);
[Link](helloString);
[Link]([Link](6));
[Link]([Link]('l'));
[Link]([Link](3));
[Link]([Link]());
[Link]([Link]("ABC"));
[Link]([Link]("a"));
[Link]([Link]("o"));
[Link]([Link]('e', 'a'));
[Link]([Link]());
110/227
Formación Sopra Steria / Java básico
29 de enero de 2019
19. Se utiliza un método del objeto Stringbuilder para invertir el orden de las letras
package [Link];
[Link](helloString);
[Link](helloString);
[Link]([Link](6));
[Link]([Link]('l'));
[Link]([Link](3));
[Link]([Link]());
[Link]([Link]("ABC"));
[Link]([Link]("a"));
[Link]([Link]("o"));
111/227
Formación Sopra Steria / Java básico
29 de enero de 2019
[Link]([Link]('e', 'a'));
[Link]([Link]());
[Link]();
[Link](helloString);
[Link](helloString);
[Link]([Link](6));
[Link]([Link]('l'));
[Link]([Link](3));
112/227
Formación Sopra Steria / Java básico
29 de enero de 2019
[Link]([Link]());
[Link]([Link]("ABC"));
[Link]([Link]("a"));
[Link]([Link]("o"));
[Link]([Link]('e', 'a'));
[Link]([Link]());
[Link]();
[Link](sb);
21. Output
Hello
String Length is : 5
Hello World
W
2
lo World
HELLO WORLD
false
false
true
Hallo World
Hello World
dlrow
113/227
Formación Sopra Steria / Java básico
29 de enero de 2019
import [Link];
import [Link];
import [Link];
114/227
Formación Sopra Steria / Java básico
29 de enero de 2019
6. Se crea una función printArray que dado un array imprima el valor de sus posiciones mediante
un bucle for y pasándole el array creado anteriormente
package [Link];
import [Link];
printArray(myList);
7. Se crea una función reverse que dado un array coja sus valores y los inserte de forma invertida
en otro array y después lo devuelva
package [Link];
import [Link];
printArray(myList);
115/227
Formación Sopra Steria / Java básico
29 de enero de 2019
reverse(myList);
8. Para ello se crea un array auxiliar con el tamaño del array actual. Se recorre con un bucle for el
array y se insertan en el array auxiliar los valores del array actual
package [Link];
import [Link];
printArray(myList);
reverse(myList);
116/227
Formación Sopra Steria / Java básico
29 de enero de 2019
result[j] = list[i];
import [Link];
printArray(myList);
reverse(myList);
117/227
Formación Sopra Steria / Java básico
29 de enero de 2019
result[j] = list[i];
return result;
import [Link];
printArray(myList);
reverse(myList);
[Link](myList);
118/227
Formación Sopra Steria / Java básico
29 de enero de 2019
result[j] = list[i];
return result;
import [Link];
printArray(myList);
reverse(myList);
[Link](myList);
[Link]([Link](myList, 3));
119/227
Formación Sopra Steria / Java básico
29 de enero de 2019
result[j] = list[i];
return result;
12. Output
3
5
2
1
1
2
3
5
2
120/227
Formación Sopra Steria / Java básico
29 de enero de 2019
import [Link];
import [Link];
import [Link];
import [Link];
121/227
Formación Sopra Steria / Java básico
29 de enero de 2019
import [Link];
import [Link];
[Link]("Juan");
[Link]("Harry");
[Link]("Carlos");
[Link]("David");
[Link]("Pablo");
import [Link];
import [Link];
[Link]("Juan");
[Link]("Harry");
[Link]("Carlos");
[Link]("David");
[Link]("Pablo");
122/227
Formación Sopra Steria / Java básico
29 de enero de 2019
import [Link];
import [Link];
[Link]("Juan");
[Link]("Harry");
[Link]("Carlos");
[Link]("David");
[Link]("Pablo");
[Link](4, "Elena");
[Link](2, "Carla");
import [Link];
import [Link];
123/227
Formación Sopra Steria / Java básico
29 de enero de 2019
[Link]("Juan");
[Link]("Harry");
[Link]("Carlos");
[Link]("David");
[Link]("Pablo");
[Link](4, "Elena");
[Link](2, "Carla");
[Link]("David");
[Link]("Harry");
import [Link];
import [Link];
[Link]("Juan");
[Link]("Harry");
[Link]("Carlos");
124/227
Formación Sopra Steria / Java básico
29 de enero de 2019
[Link]("David");
[Link]("Pablo");
[Link](4, "Elena");
[Link](2, "Carla");
[Link]("David");
[Link]("Harry");
[Link](0, "Robin");
package [Link];
import [Link];
import [Link];
[Link]("Juan");
[Link]("Harry");
[Link]("Carlos");
[Link]("David");
[Link]("Pablo");
125/227
Formación Sopra Steria / Java básico
29 de enero de 2019
[Link](4, "Elena");
[Link](2, "Carla");
[Link]("David");
[Link]("Harry");
[Link](0, "Robin");
[Link]([Link]());
import [Link];
import [Link];
[Link]("Juan");
[Link]("Harry");
[Link]("Carlos");
[Link]("David");
[Link]("Pablo");
126/227
Formación Sopra Steria / Java básico
29 de enero de 2019
[Link](4, "Elena");
[Link](2, "Carla");
[Link]("David");
[Link]("Harry");
[Link](0, "Robin");
[Link]([Link]());
[Link]([Link]());
import [Link];
import [Link];
[Link]("Juan");
[Link]("Harry");
[Link]("Carlos");
[Link]("David");
[Link]("Pablo");
127/227
Formación Sopra Steria / Java básico
29 de enero de 2019
[Link](4, "Elena");
[Link](2, "Carla");
[Link]("David");
[Link]("Harry");
[Link](0, "Robin");
[Link]([Link]());
[Link]([Link]());
[Link]([Link]("Carla"));
import [Link];
import [Link];
[Link]("Juan");
[Link]("Harry");
[Link]("Carlos");
[Link]("David");
[Link]("Pablo");
128/227
Formación Sopra Steria / Java básico
29 de enero de 2019
[Link](4, "Elena");
[Link](2, "Carla");
[Link]("David");
[Link]("Harry");
[Link](0, "Robin");
[Link]([Link]());
[Link]([Link]());
[Link]([Link]("Carla"));
import [Link];
import [Link];
[Link]("Juan");
[Link]("Harry");
129/227
Formación Sopra Steria / Java básico
29 de enero de 2019
[Link]("Carlos");
[Link]("David");
[Link]("Pablo");
[Link](4, "Elena");
[Link](2, "Carla");
[Link]("David");
[Link]("Harry");
[Link](0, "Robin");
[Link]([Link]());
[Link]([Link]());
[Link]([Link]("Carla"));
[Link](obj);
16. Se vuelve a imprimir el contenido del ArrayList para ver que se han ordenado
package [Link];
import [Link];
import [Link];
130/227
Formación Sopra Steria / Java básico
29 de enero de 2019
[Link]("Juan");
[Link]("Harry");
[Link]("Carlos");
[Link]("David");
[Link]("Pablo");
[Link](4, "Elena");
[Link](2, "Carla");
[Link]("David");
[Link]("Harry");
[Link](0, "Robin");
[Link]([Link]());
[Link]([Link]());
[Link]([Link]("Carla"));
[Link](obj);
131/227
Formación Sopra Steria / Java básico
29 de enero de 2019
17. Se borra completamente el contenido del ArrayList y se imprime por pantalla si el ArrayList está
vacío
package [Link];
import [Link];
import [Link];
[Link]("Juan");
[Link]("Harry");
[Link]("Carlos");
[Link]("David");
[Link]("Pablo");
[Link](4, "Elena");
[Link](2, "Carla");
[Link]("David");
[Link]("Harry");
[Link](0, "Robin");
132/227
Formación Sopra Steria / Java básico
29 de enero de 2019
[Link]([Link]());
[Link]([Link]());
[Link]([Link]("Carla"));
[Link](obj);
[Link]();
[Link]([Link]());
18. Output
Elements of the array:[Juan, Harry, Carlos, David, Pablo]
false
5
true
Current array list is:[Robin, Carla, Carlos, Elena, Pablo]
Current array list is:[Carla, Carlos, Elena, Pablo, Robin]
true
133/227
Formación Sopra Steria / Java básico
29 de enero de 2019
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
134/227
Formación Sopra Steria / Java básico
29 de enero de 2019
import [Link];
import [Link];
import [Link];
[Link]([Link]());
import [Link];
import [Link];
import [Link];
[Link]([Link]());
135/227
Formación Sopra Steria / Java básico
29 de enero de 2019
import [Link];
import [Link];
import [Link];
[Link]([Link]());
9. Se imprime por pantalla el objeto Date creado con el formato creado anteriormente
package [Link];
import [Link];
import [Link];
import [Link];
[Link]([Link]());
136/227
Formación Sopra Steria / Java básico
29 de enero de 2019
import [Link];
import [Link];
import [Link];
[Link]([Link]());
11. Se crea un String que con la función format formatee el objeto Date creado
package [Link];
import [Link];
import [Link];
import [Link];
[Link]([Link]());
137/227
Formación Sopra Steria / Java básico
29 de enero de 2019
import [Link];
import [Link];
import [Link];
[Link]([Link]());
[Link](str);
138/227
Formación Sopra Steria / Java básico
29 de enero de 2019
import [Link];
import [Link];
import [Link];
[Link]([Link]());
[Link](str);
import [Link];
import [Link];
import [Link];
139/227
Formación Sopra Steria / Java básico
29 de enero de 2019
[Link]([Link]());
[Link](str);
import [Link];
import [Link];
import [Link];
[Link]([Link]());
140/227
Formación Sopra Steria / Java básico
29 de enero de 2019
[Link](str);
import [Link];
import [Link];
import [Link];
[Link]([Link]());
[Link](str);
141/227
Formación Sopra Steria / Java básico
29 de enero de 2019
Date t;
17. Se hace un parsing del String con el formato creado anteriormente y se guarda en la variable
Date creada
package [Link];
import [Link];
import [Link];
import [Link];
[Link]([Link]());
[Link](str);
Date t;
t = [Link](input);
142/227
Formación Sopra Steria / Java básico
29 de enero de 2019
import [Link];
import [Link];
import [Link];
[Link]([Link]());
[Link](str);
Date t;
t = [Link](input);
[Link](t);
143/227
Formación Sopra Steria / Java básico
29 de enero de 2019
19. Esta operación puede lanzar una excepción, por lo que se utiliza un try/catch para controlar la
excepción
package [Link];
import [Link];
import [Link];
import [Link];
[Link]([Link]());
[Link](str);
Date t;
try {
t = [Link](input);
[Link](t);
} catch (ParseException e) {
144/227
Formación Sopra Steria / Java básico
29 de enero de 2019
20. Output
Thu Apr 12 10:04:34 CEST 2018
Current Date: jue 2018.04.12 at 10:04:34 AM CEST
Due date: abril 12, 2018
1818-11-11 Parses as Wed Nov 11 00:00:00 CET 1818
145/227
Formación Sopra Steria / Java básico
29 de enero de 2019
*/
public static int methodName(int a, int b) {
/**
* Cuerpo del método
*/
return 0;
}
}
3. Se crea un método dentro de la clase que contenga un parámetro de entrada de talla variable
(En este caso, se crea un método printMax que devuelve el mayor de los números recibidos como
parámetros)
package [Link];
public class VarargsDemo {
/**
* Método que devuelve el mayor de los números recibidos como parámetro
*/
public static void printMax(double... numbers) {
/**
* En caso de que no haya parámetros, se imprimirá por pantalla "No argument
passed"
*/
if ([Link] == 0) {
[Link]("No argument passed");
return;
}
double result = numbers[0];
146/227
Formación Sopra Steria / Java básico
29 de enero de 2019
147/227
Formación Sopra Steria / Java básico
29 de enero de 2019
5. Output
The max value is 56.5
The max value is 3.0
4. Se crea un método con el modificiador por defecto que suma dos números a y b pasados como
parámetros
package [Link].package1;
public class Default {
/**
* Al no poner ningún modificador de manera explícita, se aplica el modificador p
or defecto
*/
int addTwoNumbers(final int a, final int b) {
return a + b;
}
}
Este método solo podrá ser accesible por clases dentro de su mismo paquete, si no, se obtendrá un error
de compilación.
148/227
Formación Sopra Steria / Java básico
29 de enero de 2019
8. Si se intenta llamar al método .addTwoNumbers del objeto de la clase Default se podrá ver un
error de compilación, ya que este método es únicamente accesible desde clases que estén en el
mismo paquete que Default, y TestDefault está en un paquete diferente. Esto se debe a que su
modificador de acceso es default
package [Link];
import [Link].package1.*;
public class Test {
public static void main(String args[]) {
Default objDefault = new Default();
[Link](10, 21); //Error de compilación
}
}
149/227
Formación Sopra Steria / Java básico
29 de enero de 2019
10. Se crea una propiedad double constante con el modificador private cuyo valor sea 100
package [Link];
class Private {
private final double num = 100;
}
11. Se crea un método con el modificiador private que calcule el cuadrado de un número
package [Link];
class Private {
private final double num = 100;
private int square(int a) {
return a * a;
}
}
Ni el método ni la propiedad podrán ser accesibles por ninguna otra clase, esté en el mismo paquete que
la clase Private o no.
13. Si se intenta leer el valor de la propiedad num de la clase Private o si se intenta llamar al método
.square se podrá ver un error de compilación, ya que el modificador private impide que tanto
la propiedad como el método sean utilizados fuera de la clase Private.
package [Link];
import [Link].package1.*;
public class Test{
public static void main(String args[]) {
Default objDefault = new Default();
[Link](10, 21); //Error de compilación
150/227
Formación Sopra Steria / Java básico
29 de enero de 2019
15. Se crea un método con el modificiador protected que reste dos números a y b pasados como
parámetros
package [Link].package1;
public class Protected {
protected int subctractTwoNumbers(int a, int b) {
return a - b;
}
}
Este método solo podrá ser accesible por clases que extiendan a la clase Protected.
151/227
Formación Sopra Steria / Java básico
29 de enero de 2019
18. Puesto que Test extiende a Protected, el objeto de clase Test podrá llamar al método con el
modificador de acceso protected .subctractTwoNumbers de la clase Protected
package [Link];
import [Link].package1.*;
public class Test extends Protected{
public static void main(String args[]) {
Default objDefault = new Default();
[Link](10, 21); //Error de compilación
152/227
Formación Sopra Steria / Java básico
29 de enero de 2019
20. Se crea un método con el modificiador public que divida dos números a y b pasados como
parámetros
package [Link].package1;
public class Public {
public int divideTwoNumbers(int a, int b){
return a/b;
}
}
Este método podrá ser accesible por cualquier clase, se encuentre en el mismo paquete que la clase
Public o en un paquete diferente.
153/227
Formación Sopra Steria / Java básico
29 de enero de 2019
22. Puesto que el método .divideTwoNumbers de la clase Public tiene el modificador de acceso public,
se podrá llamar sin problema desde la clase Test
package [Link];
import [Link].package1.*;
public class Test extends Protected{
public static void main(String args[]) {
Default objDefault = new Default();
[Link](10, 21); //Error de compilación
Para poder ejecutar el programa, será necesario comentar las líneas de código que no compilen.
23. Output
10
2
154/227
Formación Sopra Steria / Java básico
29 de enero de 2019
4. Dentro del método main se han implementado una serie de ejemplos que permiten ver cuál es
el verdadero valor de ciertas variables a lo largo del código
package [Link];
public class PassingDataAmongMethods {
public static void main(final String[] args) {
/**
* Se crea una variable de tipo String con el valor "Hello!"
*/
String s1 = "Hello!";
/**
* Se llama al método bye y se le pasa s1 como parámetro
*/
bye(s1);
/**
* Se imprime en la consola el valor de s1, que será
* Hello!
* Esto se debe a que a pesar de que en el método bye
* hay una variable que se llama s1, es una variable
* de ámbito local completamente diferente a la variable
* s1 creada en el método main.
155/227
Formación Sopra Steria / Java básico
29 de enero de 2019
*/
[Link](s1);
/**
* Se crea una variable de tipo StringBuilder
*/
StringBuilder s2 = new StringBuilder();
/**
* Se llama al método goodMorning y se le pasa s2 como parámetro
*/
goodMorning(s2);
/**
* Se imprime en la consola el valor de s1, que será
* Good Morning
* Esto se debe a que s sí que es el mismo objeto que
* se le pasa como parámetro.
*/
[Link](s2);
}
public static void bye(String s1) {
s1 = "Bye!";
}
5. Output
Hello!
Good Morning
156/227
Formación Sopra Steria / Java básico
29 de enero de 2019
3. Se crean una serie de métodos llamados disp, con diferentes parámetros (overlad al método
disp)
package [Link];
public class OverloadingMethods {
public void disp(char c) {
[Link](c);
}
4. Se crea el método main para poder hacer llamadas a los métodos y ver sus resultados
package [Link];
public class OverloadingMethods {
public void disp(char c) {
[Link](c);
}
157/227
Formación Sopra Steria / Java básico
29 de enero de 2019
5. Output
a
a 10
2
10 a
158/227
Formación Sopra Steria / Java básico
29 de enero de 2019
/**
* Constructor vacío
*/
public Constructors(){
var = 10;
}
}
5. Se crea un constructor con un parámetro que da a var el valor que se le pase como parámetro
package [Link];
public class Constructors {
private int var;
/**
* Constructor vacío
*/
public Constructors(){
var = 10;
}
/**
* Constructor con parámetros
*/
public Constructors(int num){
159/227
Formación Sopra Steria / Java básico
29 de enero de 2019
var = num;
}
}
6. Para poder hacer pruebas, se crea también el método getValue(), que devolverá el valor de la
propiedad var
package [Link];
public class Constructors {
private int var;
/**
* Constructor vacío
*/
public Constructors(){
var = 10;
}
/**
* Constructor con parámetros
*/
public Constructors(int num){
var = num;
}
/**
* Constructor vacío
*/
public Constructors(){
var = 10;
}
160/227
Formación Sopra Steria / Java básico
29 de enero de 2019
/**
* Constructor con parámetros
*/
public Constructors(int num){
var = num;
}
8. Dentro del método main, se crean dos objetos Constructors, uno con el constructor vacío y otro
con el constructor con parámetros, y se comprueba el valor de sus propiedades var
package [Link];
public class Constructors {
private int var;
/**
* Constructor vacío
*/
public Constructors(){
var = 10;
}
/**
* Constructor con parámetros
*/
public Constructors(int num){
var = num;
}
161/227
Formación Sopra Steria / Java básico
29 de enero de 2019
9. Output
var is: 10
var is: 100
162/227
Formación Sopra Steria / Java básico
29 de enero de 2019
4. Se crean todos los métodos get y set para las tres propiedades
package [Link];
public class EncapsulatingData {
/**
* Propiedades de la clase EncapsulatingData
*/
private int ssn;
private String empName;
private int empAge;
/**
* Métodos getterss y setterss
*/
public int getEmpSSN() {
return ssn;
}
public String getEmpName() {
return empName;
}
public int getEmpAge() {
return empAge;
}
163/227
Formación Sopra Steria / Java básico
29 de enero de 2019
8. Se modifican las propiedades del objeto con los métodos set implemetados en la clase
EncapsulatingData
package [Link];
public class EncapsulatingDataTest {
public static void main(final String args[]) {
EncapsulatingData obj = new EncapsulatingData();
[Link]("Mario");
[Link](32);
[Link](112233);
}
}
9. Se leen las propiedades del objeto con los métodos get implementados en la clase
EncapsulatingData
package [Link];
public class EncapsulatingDataTest {
public static void main(final String args[]) {
EncapsulatingData obj = new EncapsulatingData();
[Link]("Mario");
[Link](32);
[Link](112233);
164/227
Formación Sopra Steria / Java básico
29 de enero de 2019
10. Output
Employee Name: Mario
Employee SSN: 112233
Employee Age: 32
2. Se definen tres clases dentro del paquete creado: House, LivingRoom y Kitchen.
package [Link];
public class House { }
package [Link];
public class Kitchen { }
package [Link];
public class LivingRoom { }
3. La clase LivingRoom debe tener como atributos privados numberOfTV (int) y livingRoomType
(String).
package [Link];
public class LivingRoom {
//Atributos de la clase LivingRoom
private int numberOfTV;
private String livingRoomType;
}
165/227
Formación Sopra Steria / Java básico
29 de enero de 2019
package [Link];
public class LivingRoom {
//Atributos de la clase LivingRoom
private int numberOfTV;
private String livingRoomType;
//Constructor
public LivingRoom() {
numberOfTV = 0;
livingRoomType = "Unknown";
}
}
5. Se crean los getters y setters de la clase LivingRoom, para quedar la clase implementada:
package [Link];
public class LivingRoom {
//Atributos de la clase LivingRoom
private int numberOfTV;
private String livingRoomType;
//Constructor
public LivingRoom() {
numberOfTV = 0;
livingRoomType = "Unknown";
}
//Metodos getters y setters
public void setNumberOfTV ( int valueNumberOfTV ) {
numberOfTV = valueNumberOfTV;
}
public void setLivingRoomType ( String valueLivingRoomType ) {
livingRoomType = valueLivingRoomType;
}
public int getNumberOfTV () {
return numberOfTV;
}
public String getLivingRoomType () {
return livingRoomType;
}
}
6. La clase Kitchen debe tener como atributos privados isIndependent (boolean) y numberOfStoves
(int).
package [Link];
public class Kitchen {
//Atributos de la clase Kitchen
private boolean isIndependent;
166/227
Formación Sopra Steria / Java básico
29 de enero de 2019
8. Se implementan los getters y setters de la clase Kitchen, para quedar la clase implementada:
package [Link];
public class Kitchen {
//Atributos de la clase Kitchen
private boolean isIndependent;
private int numberOfStoves;
//Constructor
public Kitchen() {
isIndependent = false;
numberOfStoves = 0;
}
//Metodos getters y setters
public void setIsIndependent ( boolean valueIsIndependent ) {
isIndependent = valueIsIndependent;
}
public void setNumberOfStoves ( int valueNumberOfStoves ) {
numberOfStoves = valueNumberOfStoves;
}
public boolean getIsIndependent () {
return isIndependent;
}
public int getNumberOfStoves () {
return numberOfStoves;
}
}
9. La clase House tendrá los siguientes atributos públicos de clase: area (double), address (String),
livingRoom (tipo LivingRoom) y kitchen (tipo Kitchen).
167/227
Formación Sopra Steria / Java básico
29 de enero de 2019
package [Link];
public class House {
//Atributos de la clase House
public static double area;
public static String address;
public static LivingRoom livingRoom;
public static Kitchen kitchen;
}
10. Se deberá definir un constructor para la clase House que establezca a unos valores por defecto
a sus atributos y que cree nuevos objetos si se trata de atributos objeto.
package [Link];
public class House {
//Atributos de la clase House
public static double area;
public static String address;
public static LivingRoom livingRoom;
public static Kitchen kitchen;
//Constructor
public House() {
area = 0.0d;
address = "Unknown";
livingRoom = new LivingRoom();
kitchen = new Kitchen();
}
}
11. Se implementarán los métodos getters y setters necesarios para poder trabajar con todos los
atributos de la clase.
package [Link];
public class House {
//Atributos de la clase House
public static double area;
public static String address;
public static LivingRoom livingRoom;
public static Kitchen kitchen;
//Constructor
public House() {
area = 0.0d;
address = "Unknown";
livingRoom = new LivingRoom();
kitchen = new Kitchen();
}
//Metodos getters y setters
168/227
Formación Sopra Steria / Java básico
29 de enero de 2019
12. Después se creara un método main en la propia clase House donde se instancie un objeto de la
clase House, quedando la clase implementada:
package [Link];
public class House {
//Atributos de la clase House
public static double area;
public static String address;
public static LivingRoom livingRoom;
public static Kitchen kitchen;
//Constructor
public House() {
area = 0.0d;
address = "Unknown";
livingRoom = new LivingRoom();
kitchen = new Kitchen();
}
169/227
Formación Sopra Steria / Java básico
29 de enero de 2019
+ [Link]().getLivingRoomType()
+ [Link]().getNumberOfStoves()
+ [Link]().getIsIndependent()
170/227
Formación Sopra Steria / Java básico
29 de enero de 2019
13. Output
House area: 0.0
House address: Unknown.
Let's go inside the house:
The house has a livingroom of type Unknown and with 0 TV's
The house has a kitchen has 0 stoves and the kitchen is false independent
End!
3. Se crea un constructor vacío que muestre un mensaje por pantalla y otro con dos argumentos
proctected (name y age)
package [Link];
class ParentClass{
protected String name;
protected int age;
ParentClass(){
[Link]("Constructor of Parent");
171/227
Formación Sopra Steria / Java básico
29 de enero de 2019
}
ParentClass(String name, int age){
[Link] = name;
[Link] = age;
}
}
4. Se crea un método disp() que muestre por pantalla un mensaje indicando que es el método del
padre
package [Link];
class ParentClass{
protected String name;
protected int age;
ParentClass(){
[Link]("Constructor of Parent");
}
ParentClass(String name, int age){
[Link] = name;
[Link] = age;
}
}
5. Se crea una nueva clase public ChildClass que herede de la clase ParentClass
package [Link];
public class ChildClass extends ParentClass{
}
6. Se crea un constructor vacío que muestre por pantalla que es el constructor de la clase hijo. Se
crea también un constructor con un parámetro (age) en la clase hijo que utiliza el segundo
constructor heredado de la clase padre.
package [Link];
public class ChildClass extends ParentClass{
ChildClass(){
[Link]("Constructor of Child");
}
public ChildClass(int age){
super(“Child”, age);
}
}
172/227
Formación Sopra Steria / Java básico
29 de enero de 2019
7. Se crea un método disp() que muestre un mensaje por pantalla indicando que es el método del
hijo.
package [Link];
public class ChildClass extends ParentClass{
ChildClass(){
[Link]("Constructor of Child");
}
public ChildClass(int age){
super(“Child”, age);
}
void disp(){
[Link]("Child Method");
}
}
9. Se crea también un segundo método disp2() que muestre un mensaje por pantalla indicando el
nombre y la edad pasados al constructor hijo.
package [Link];
public class ChildClass extends ParentClass{
ChildClass(){
[Link]("Constructor of Child");
}
public ChildClass(int age){
super(“Child”, age);
}
void disp(){
173/227
Formación Sopra Steria / Java básico
29 de enero de 2019
[Link]("Child Method");
//Calling the disp() method of parent class
[Link]();
}
void disp2(){
[Link]([Link] + ” is “ + [Link] + “ years old”);
}
}
11. Se crea un objeto ChildClass. Se crea también un segundo objeto ChildClass con
parámetro age=5.
package [Link];
public class ChildClass extends ParentClass{
ChildClass(){
[Link]("Constructor of Child");
}
public ChildClass(int age){
super(“Child”, age);
}
void disp(){
[Link]("Child Method");
174/227
Formación Sopra Steria / Java básico
29 de enero de 2019
12. Se realiza una llamada a los métodos disp() y disp2() del objeto child y child2, respectivamente.
package [Link];
public class ChildClass extends ParentClass{
ChildClass(){
[Link]("Constructor of Child");
}
public ChildClass(int age){
super(“Child”, age);
}
void disp(){
[Link]("Child Method");
//Calling the disp() method of parent class
[Link]();
}
void disp2(){
[Link]([Link] + ” is “ + [Link] + “ years old”);
}
public static void main(String args[]){
ChildClass child = new ChildClass();
ChildClass child2 = new ChildClass(5);
[Link]();
child2.disp2();
}
}
13. Output
Constructor of Parent
Constructor of Child
Child Method
175/227
Formación Sopra Steria / Java básico
29 de enero de 2019
Parent Method
Child is 5 years old
176/227
Formación Sopra Steria / Java básico
29 de enero de 2019
6. Se crea una nueva clase Demo que herede de la clase abstracta AbstractDemo
package [Link];
177/227
Formación Sopra Steria / Java básico
29 de enero de 2019
return num1+num2;
return num1+num2;
10. Se crea un objeto Demo. No se puede crear un objeto de una clase abstract
package [Link];
return num1+num2;
178/227
Formación Sopra Steria / Java básico
29 de enero de 2019
return num1+num2;
[Link]();
return num1+num2;
179/227
Formación Sopra Steria / Java básico
29 de enero de 2019
[Link]();
obj.disp2();
13. Se imprime por pantalla lo que devuelve el método de suma de la clase Demo
package [Link];
return num1+num2;
[Link]();
obj.disp2();
[Link]([Link](3, 7));
14. Output
Concrete method of parent class
overriding abstract method
10
180/227
Formación Sopra Steria / Java básico
29 de enero de 2019
interface Inf1{
interface Inf1{
interface Inf1{
181/227
Formación Sopra Steria / Java básico
29 de enero de 2019
5. También se crea un método estático que muestre por pantalla otro mensaje
package [Link];
interface Inf1{
interface Inf1{
182/227
Formación Sopra Steria / Java básico
29 de enero de 2019
interface Inf1{
interface Inf3{}
8. Se crea una clase Demo que implemente las interfaces Inf2 y Inf3
package [Link];
interface Inf1{
interface Inf3{}
183/227
Formación Sopra Steria / Java básico
29 de enero de 2019
9. Se deben implementar los métodos no implementados de la interfaz Inf2 y Inf1 ya que la primera
hereda de la segunda
package [Link];
interface Inf1{
interface Inf3{}
[Link]("method1");
[Link]("method2");
interface Inf1{
184/227
Formación Sopra Steria / Java básico
29 de enero de 2019
interface Inf3{}
[Link]("method1");
[Link]("method2");
interface Inf1{
185/227
Formación Sopra Steria / Java básico
29 de enero de 2019
interface Inf3{}
[Link]("method1");
[Link]("method2");
interface Inf1{
186/227
Formación Sopra Steria / Java básico
29 de enero de 2019
interface Inf3{}
[Link]("method1");
[Link]("method2");
[Link]();
interface Inf1{
187/227
Formación Sopra Steria / Java básico
29 de enero de 2019
interface Inf3{}
[Link]("method1");
[Link]("method2");
[Link]();
[Link]();
interface Inf1{
188/227
Formación Sopra Steria / Java básico
29 de enero de 2019
interface Inf3{}
[Link]("method1");
[Link]("method2");
[Link]();
[Link]();
obj.method1();
obj.method2();
15. Output
Newly added default method
Newly added static method
method1
method2
189/227
Formación Sopra Steria / Java básico
29 de enero de 2019
4. Se crea otro método displayInformation() que muestre por pantalla un mensaje con el output
del método anterior.
package [Link];
public class Animal{
public String getSound(){
return “Unknown”;
}
public void displayInformation() {
[Link](“Animal is making a sound: “ + getSound()
}
}
190/227
Formación Sopra Steria / Java básico
29 de enero de 2019
6. Se sobreescribe el método getSound() de la clase Animal para que devuelva otro string.
package [Link];
public class Cat extends Animal{
@Override
public String getSound(){
return "Meow";
}
}
[Link];
public class Cat extends Animal{
@Override
public String getSound(){
return "Meow";
}
public static void main(String args[]){
}
}
191/227
Formación Sopra Steria / Java básico
29 de enero de 2019
10. Output
11. Se crea ahora otra nueva clase Horse que herede de Animal
package [Link];
public class Horse extends Animal{
}
12. Se sobrescribe el método getSound() de la clase Animal para que devuelva otro string distinto.
package [Link];
public class Horse extends Animal{
@Override
public String getSound(){
return "Neigh";
}
}
192/227
Formación Sopra Steria / Java básico
29 de enero de 2019
[Link];
public class Horse extends Animal{
@Override
public String getSound(){
return "Neigh";
}
public static void main(String args[]){
Animal animal = new Horse();
}
}
15. Se crea un objeto Horse haciendo casting al objeto Animal creado anteriormente
package [Link];
public class Horse extends Animal{
@Override
public String getSound(){
return "Neigh";
}
public static void main(String args[]){
Animal animal = new Horse();
Horse horse = (Horse) animal;
}
}
17. Output
Animal is making a sound: Neigh
193/227
Formación Sopra Steria / Java básico
29 de enero de 2019
19. Se crea un método sound que reciba como parámetro un objeto Animal y muestre un mensaje
por pantalla con “Sound Animals: “ y el sonido del animal recibido como parámetro.
package
[Link];
public
class SoundAnimals {
public static void sound(Animal animal){
[Link](“Sound Animal: “ + [Link]());
}
}
[Link];
public
class SoundAnimals {
public static void sound(Animal animal){
[Link](“Sound Animal: “ + [Link]());
}
public static void main(String[] args){
}
}
194/227
Formación Sopra Steria / Java básico
29 de enero de 2019
}
}
22. Output
Sound Animal: Meow
Sound Animal: Neigh
Sound Animal: Unknown
195/227
Formación Sopra Steria / Java básico
29 de enero de 2019
6. Output
Result: true
Result: false
El siguiente tutorial muestra el uso de una interfaz y una expresión lambda, así como un ejemplo de
cómo utilizarlas.
196/227
Formación Sopra Steria / Java básico
29 de enero de 2019
package [Link];
6. Output
2. Se crea una clase llamada 'Person' y una variable de tipo int llamada 'age'.
package [Link];
197/227
Formación Sopra Steria / Java básico
29 de enero de 2019
3. Se crean los métodos 'getAge' y 'setAge' , este último solamente puede recibir por parámetro un
número positivo, de lo contrario se va a lanzar una excepción mediante la palabra reservada
throw.
package [Link];
public class Person {
private int age;
public int getAge() {
return age;
}
public void setAge(int age) {
if (age <= 0) {
throw new RuntimeException("Age should be positive.");
}
[Link] = age;
}
}
4. Se crea el método main, donde se crea una persona y se establece la edad en -10.
package [Link];
public class Person {
private int age;
public int getAge() {
return age;
}
5. Output.
Exception in thread "main" [Link]: Age should be positive.
at [Link]([Link])
at [Link]([Link])
198/227
Formación Sopra Steria / Java básico
29 de enero de 2019
2. Se crea una clase llamada 'Person' y una variable de tipo int llamada 'age'.
package [Link];
3. Se crea los métodos 'getAge' y 'setAge', en este último se debe indicar que ese método puede
lanzar una excepción, eso se hace con la palabra clave throws.
package [Link];
return age;
if (age <= 0) {
[Link] = age;
4. Ahora se crea una persona y se establece una edad, pero en este caso es obligatorio manejar la
excepción, de lo contrario no se va a poder ejecutar el programa. Para ello hay que introducir
un try-catch. Dentro del bloque try se va a incluir el código que puede lanzar la excepción,
mientras que dentro del catch se va a manejar la posible excepcion lanzada dentro del try, en
este caso simplemente se va a mostrar el mensaje (Age should be positive) de error que nos
proporciona la excepción.
package [Link];
public class Person {
199/227
Formación Sopra Steria / Java básico
29 de enero de 2019
5. Output.
Age should be positive.
En el siguiente tutorial se pretende mostrar la estructura básica de un bloque try-catch, así como
establecer un primer contacto con las excepciones en Java y la palabra reservada throw.
200/227
Formación Sopra Steria / Java básico
29 de enero de 2019
}
}
}
public static void main(String args[]) {
}
}
5. Se crea un try-catch.
package [Link];
public class TryCatchThrowExceptionExercise {
private static void fall() {
}
public static void main(String args[]) {
try {
} catch () {
}
}
}
}
public static void main(String args[]) {
try {
fall();
} catch () {
}
}
}
7. Al catch, se le pasa como parámetro una excepción de tipo 'RuntimeException' y dentro del catch
se crea un mensaje indicando el tipo de error.
201/227
Formación Sopra Steria / Java básico
29 de enero de 2019
package [Link];
public class TryCatchThrowExceptionExercise {
private static void fall() {
}
public static void main(String args[]) {
try {
fall();
} catch (RuntimeException e) {
[Link]("RuntimeException");
}
}
}
}
public static void main(String args[]) {
try {
fall();
} catch (RuntimeException e) {
[Link]("RuntimeException");
}
[Link]("Finished Try-catch.");
}
}
9. Output.
RuntimeException.
Finished Try-catch.
202/227
Formación Sopra Steria / Java básico
29 de enero de 2019
4. Se crea un try-catch-finally. Dentro del try se imprimime por pantalla el elemento 3 del array
'a'.
package [Link];
try {
try {
203/227
Formación Sopra Steria / Java básico
29 de enero de 2019
} catch (ArrayIndexOutOfBoundsException e) {
6. Dentro del finally se le asigna al array en la posición 0 un 6 y se imprimime por pantalla. Además,
se imprime un mensaje que dice: 'La sentencia finally se ha ejecutado'.
package [Link];
try {
} catch (ArrayIndexOutOfBoundsException e) {
} finally {
a[0] = 6;
7. Output.
Exception thrown:[Link]: 3
The finally statement is executed.
First element value: 6
204/227
Formación Sopra Steria / Java básico
29 de enero de 2019
}
}
}
public static void main(String args[]) {
}
}
5. Se crea un try-catch-finally.
package [Link];
public class TryCatchFinallyExercise2 {
private static void fall() {
}
public static void main(String args[]) {
try {
} catch () {
} finally {
}
205/227
Formación Sopra Steria / Java básico
29 de enero de 2019
}
}
}
public static void main(String args[]) {
try {
fall();
} catch () {
} finally {
}
}
}
7. Al catch, se le pasa como parámetro una excepción de tipo 'RuntimeException' y dentro del catch
se crea un mensaje indicando el tipo de error.
package [Link];
public class TryCatchFinallyExercise2 {
private static void fall() {
}
public static void main(String args[]) {
try {
fall();
} catch (RuntimeException e) {
[Link]("RuntimeException.");
} finally {
}
}
}
8. Dentro del finally se crea un mensaje indicando que aun no ha terminado el método.
package [Link];
public class TryCatchFinallyExercise2 {
private static void fall() {
}
public static void main(String args[]) {
206/227
Formación Sopra Steria / Java básico
29 de enero de 2019
try {
fall();
} catch (Exception e) {
[Link]("RuntimeException.");
} finally {
[Link]("I'm finishing.");
}
}
}
}
public static void main(String args[]) {
try {
fall();
} catch (Exception e) {
[Link]("RuntimeException");
} finally {
[Link]("I'm finishing.");
}
[Link]("Finished Try-catch.");
}
}
10. Output.
RuntimeException.
I'm finishing.
Finished Try-catch.
207/227
Formación Sopra Steria / Java básico
29 de enero de 2019
4. Se crea un try-catch.
package [Link];
public class MultipleTryCatch {
public static void main(String args[]){
try{
} catch(){
}
}
5. Dentro del try, se crea un array de tamaño 7, y luego se guarda en la posición 10 el resultado
de una división entre cero, y se muestra un mensaje.
package [Link];
public class MultipleTryCatch {
public static void main(String args[]){
try {
arr[10] = 10 / 0;
} catch(){
}
}
208/227
Formación Sopra Steria / Java básico
29 de enero de 2019
6. Se crean tres catch para soportar diversas excepciones que se pueden dar. En el primer catch,
se le pasa como parámetro la excepción 'ArithmeticException' que indica si se ha
cometido alguna excepción aritmética, y dentro del catch se muestra un mensaje.
package [Link];
public class MultipleTryCatch {
public static void main(String args[]){
try{
int arr[] = new int[7];
arr[10] = 10 / 0;
} catch(){
}
}
}
arr[10] = 10 / 0;
} catch(ArithmeticException e){
[Link]("You should not divide a number by zero.");
} catch(ArrayIndexOutOfBoundsException e){
[Link]("Accessing array elements outside of the limit.");
} catch(){
}
}
}
8. En el tercer catch, se le pasa como parámetro una excepción genérica, y dentro del catch se
muestra un mensaje.
package [Link];
public class MultipleTryCatch {
209/227
Formación Sopra Steria / Java básico
29 de enero de 2019
arr[10] = 10 / 0;
} catch(ArithmeticException e){
[Link]("You should not divide a number by zero.");
} catch(ArrayIndexOutOfBoundsException e){
[Link]("Accessing array elements outside of the limit.");
} catch(Exception e){
arr[10] = 10 / 0;
} catch(ArithmeticException e){
[Link]("You should not divide a number by zero.");
} catch(ArrayIndexOutOfBoundsException e){
[Link]("Accessing array elements outside of the limit.");
} catch(Exception e){
10. Output.
You should not divide a number by zero.
210/227
Formación Sopra Steria / Java básico
29 de enero de 2019
4. Se crea un try-catch.
package [Link];
public class MultipleTryCatch2 {
public static void main(String args[]){
try{
} catch(){
}
}
5. Dentro del try, se accede a un archivo llamado ([Link]) y mientras los valores del archivo
sean distintos de -1, imprimirá por pantalla el valor.
package [Link];
public class MultipleTryCatch2 {
public static void main(String args[]){
try {
int k;
[Link]((char) k);
211/227
Formación Sopra Steria / Java básico
29 de enero de 2019
[Link]();
} catch(){
}
}
6. Se crean dos catch para soportar diversas excepciones que se pueden dar. En el primer catch,
se le pasa como parámetro la excepción 'FileNotFoundException' que indica que no se ha
encontrado el archivo, y dentro del catch se muestra un mensaje.
package [Link];
public class MultipleTryCatch2 {
public static void main(String args[]){
try{
FileInputStream file = new FileInputStream("[Link]");
int k;
[Link]((char) k);
[Link]();
} catch(FileNotFoundException e){
[Link]("Source file does not exist.\n" + e);
}
}
7. En el segundo catch, se le pasa como parámetro una excepción 'IOException', y dentro del catch
se muestra un mensaje.
package [Link];
public class MultipleTryCatch2 {
public static void main(String args[]){
try{
FileInputStream file = new FileInputStream("[Link]");
int k;
[Link]((char) k);
[Link]();
212/227
Formación Sopra Steria / Java básico
29 de enero de 2019
} catch(FileNotFoundException e){
[Link]("Source file does not exist.\n" + e);
} catch(IOException e){
}
}
}
8. Output.
Source file does not exist.
213/227
Formación Sopra Steria / Java básico
29 de enero de 2019
}
}
try {
} catch () {
} catch () {
}
}
}
6. Dentro del try se inicializan las variables num1 y num2 y se crean dos mensajes indicando que
ha finalizado.
package [Link];
class ArithmeticExceptionExercise {
}
}
}
214/227
Formación Sopra Steria / Java básico
29 de enero de 2019
num1 = 0;
num2 = 62 / num1;
[Link](num2);
[Link]("Ha terminado el try");
} catch (ArithmeticException e) {
[Link]("It should not be divided by zero.");
} catch () {
}
}
}
8. En el segundo catch se le pasa como parámetro una excepción genérica y dentro se crea un
mensaje indicando el error.
package [Link];
class ArithmeticExceptionExercise {
public static void main(String args[]) {
int num1;
int num2;
try {
num1 = 0;
num2 = 62 / num1;
[Link](num2);
[Link]("Ha terminado el try");
} catch (ArithmeticException e) {
[Link]("No se debería dividir entre cero");
} catch (Exception e) {
[Link]("An exception has ocurred.");
}
}
}
215/227
Formación Sopra Steria / Java básico
29 de enero de 2019
} catch (Exception e) {
[Link]("Ha ocurrido una excepción");
}
[Link]("Try-catch has finished.");
}
}
10. Output.
It should not be divided by zero.
try{
} catch(){
216/227
Formación Sopra Steria / Java básico
29 de enero de 2019
5. Dentro del try se crea un array de tamaño 10 y se añade a la posición 11 del array el valor 9.
package [Link];
try{
a[11] = 9;
} catch(){
try{
a[11] = 9;
} catch(ArrayIndexOutOfBoundsException e){
7. Output.
Accessing array elements outside of the limit.
217/227
Formación Sopra Steria / Java básico
29 de enero de 2019
try{
} catch(){
5. Dentro del try se crea una variable de tipo String con valor nulo, y se muestra la longitud de la
variable.
package [Link];
try{
218/227
Formación Sopra Steria / Java básico
29 de enero de 2019
String str=null;
[Link] ([Link]());
} catch(){
6. En el catch se le pasa como parámetro una excepción concreta indicando que se accede a un
valor nulo, cuando espera acceder a un objeto y dentro del catch se crea un mensaje indicando
el tipo de error.
package [Link];
try{
String str=null;
[Link] ([Link]());
} catch(NullPointerException e){
7. Output.
The object is null.
219/227
Formación Sopra Steria / Java básico
29 de enero de 2019
package [Link];
try{
} catch(){
5. Dentro del try se crea una variable con valor "XYZ" (texto) y se cambia el tipo de la variable (a
entero). Después, se crea un mensaje donde se muestra el valor de la variable.
package [Link];
try{
[Link](num);
} catch(){
220/227
Formación Sopra Steria / Java básico
29 de enero de 2019
6. En el catch se le pasa como parámetro una excepción concreta que señaliza si el formato del
número es incorrecto y dentro del catch se crea un mensaje indicando el tipo de error.
package [Link];
try{
[Link](num);
}catch(NumberFormatException e){
7. Output.
The XYZ value can not be converted to Integer type.
import [Link];
221/227
Formación Sopra Steria / Java básico
29 de enero de 2019
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
try {
} catch () {
} catch () {
6. Dentro del try se crea una variable tipo FileReader en el que guardaremos la ruta del fichero que
queremos utilizar.
package [Link];
import [Link];
222/227
Formación Sopra Steria / Java básico
29 de enero de 2019
import [Link];
import [Link];
try {
[Link](c);
} catch () {
} catch () {
8. Luego se crea un bucle for que recorre el contenido del fichero y lo muestra por pantalla.
package [Link];
import [Link];
import [Link];
import [Link];
public class FileNotFoundExceptionExercise {
public static void main(String args[]) {
try {
FileReader fr = new FileReader("C://[Link]");
223/227
Formación Sopra Steria / Java básico
29 de enero de 2019
for(char c : a)
[Link](c);
} catch () {
} catch () {
}
}
}
9. En primer catch, se le pasa como parámetro una excepción 'FileNotFoundException' que indica
si existe el fichero y dentro del catch, se muestra un mensaje de error.
package [Link];
import [Link];
import [Link];
import [Link];
try {
[Link](a);
for(char c : a)
[Link](c);
} catch (FileNotFoundException e) {
} catch () {
10. En el segundo catch, se le pasa como parámetro una excepción 'IOException' que indica si hay
problemas en la lectura y escritura del fichero, y dentro del catch, se muestra un mensaje de
error.
224/227
Formación Sopra Steria / Java básico
29 de enero de 2019
package [Link];
import [Link];
import [Link];
import [Link];
public class FileNotFoundExceptionExercise {
public static void main(String args[]) {
try {
FileReader fr = new FileReader("C://[Link]");
char [] a = new char[50];
[Link](a);
for(char c : a)
[Link](c);
} catch (FileNotFoundException e) {
[Link]("No se encontró el archivo");
} catch (IOException e) {
11. Output.
File not found.
package [Link];
[Link].
package [Link];
225/227
Formación Sopra Steria / Java básico
29 de enero de 2019
package [Link];
package [Link];
try {
} catch () {
5. Dentro del try se crea un String 'beginnersbook' y se muestra la longitud de la palabra. Se coge la
primera posición y luego la posición 40, se muestra por pantalla la posición 40.
package [Link];
try {
[Link]([Link]());
char c = [Link](0);
c = [Link](40);
[Link](c);
} catch () {
226/227
Formación Sopra Steria / Java básico
29 de enero de 2019
package [Link];
try {
[Link]([Link]());
char c = [Link](0);
c = [Link](40);
[Link](c);
} catch (StringIndexOutOfBoundsException e) {
7. Output.
13
The position you are trying to access does not exist, outside of the limits.
227/227