Check the new version here

Popular channels

Curso de Java para Android (Para fines Educativos) [CLASE 7]



Buenas gente estudiosa, llegamos a la clase 7. Acá tocaremos un mix de temas muy importantes para poder adecuar nuestros programas.



CLASE 7

7.1 ENTRADA Y SALIDA DE DATOS
Podemos mostrar los datos de dos maneras, a través de la consola o mediante un cuadro de dialogo. Este primero solo lo veremos si ejecutamos nuestro programa en Eclipse o en una ventana de comandos.
Para mostrar un mensaje en consola, escribimos System.out.println(“cadena”); dentro del paréntesis , además de cadenas, podemos mostrar el valor de una variable, para ello, solo escribimos el nombre de la variable sin comillas dobles, no importa el tipo de variable.
También se puede incluir una cadena de texto mas el valor de una variable, para ello escribimos la cadena con comillas dobles, un signo + y el nombre de la variable, recuerda poner un espacio entre una variable y una cadena de texto. Por ejemplo, System.out.println(“El valor de la variable num es “+num); o System.out.println(“El precio final es “+precio+” pesos”);
Incluso podemos escribir una formula y nos mostrará el resultado, debe estar entre paréntesis.
Si queremos que no dé un salto de línea, simplemente escribimos System.out.print(“cadena”);
Veremos un ejemplo para darnos una mejor idea:

int precioProducto=300;

final double IVA=0.21;
System.out.println("Información del producto" );

System.out.println("El precio del producto es "+precioProducto);

System.out.println("El precio del producto, incluyendo el IVA, es "+(precioProducto+(precioProducto*IVA)));


El resultado sería:


7.2 CUADRO DE DIÁLOGO EN LA SALIDA DE DATOS
Sigamos mostrando datos pero esta vez con un cuadro de dialogo, lo mejor de esto es que se podrá ver en cualquier sitio que lo ejecutemos.
Antes de escribir la línea de código, debemos importar el paquete necesario para poder utilizar la clase necesaria para el cuadro de dialogo.

Antes de la línea public class “nombre_clase”, escribimos import javax.swing.JOptionPane; después dentro del main, la siguiente sintaxis: JOptionPane.showMessageDialog(null, “cadena”); y en la cadena podemos hacer lo mismo que hemos mostrado antes.
Veamos ejemplo y su resultado:

import javax.swing.JOptionPane;
public class PruebaApp {

public static void main(String[] args) {
int precioProducto=300;

final double IVA=0.21;

JOptionPane.showMessageDialog(null, "El precio del producto, incluido el IVA es "+(precioProducto+(precioProducto*IVA)));
}

}


El resultado:



Hasta aquí para mostrar datos, ahora vamos a introducirlos nosotros. Usaremos la misma clase de antes pero con otro método. Recordar que debemos importar el paquete antes de la clase. Escribimos JOptionPane.showInputMessage(“cadena”); se debe guardar en un String. Veamos un ejemplo:

import javax.swing.JOptionPane;
public class PruebaApp {

public static void main(String[] args) {
String nombre=JOptionPane.showInputDialog("Introduce tu nombre" );
JOptionPane.showMessageDialog(null, "Bien, tu nombre es "+nombre);
}

}




Una cosa a tener en cuenta, es que si introducimos un número y queremos hacer operaciones con él, debemos pasarlo a tipo numérico, ya que es un String cuando escribimos en la caja de texto. Para cambiar el tipo escribiremos, después de la línea donde introducimos los datos, lo siguiente: Integer.parseInt(variable_texto); solo debemos colocar la variable String que almacenamos al escribir en el cuadro de dialogo.
Veamos un ejemplo:

import javax.swing.JOptionPane;
public class TestApp {

public static void main(String[] args) {

final double IVA=0.21;
String texto_num=JOptionPane.showInputDialog("Introduce el precio del producto" );

int precio=Integer.parseInt(texto_num);
JOptionPane.showMessageDialog(null, "EL producto tiene un precio de "+precio+" y su precio final es de "+(precio+(precio*IVA)));
}

}


Entonces veamos los resultados:



7.3 AMBITO DE UNA VARIABLE

Para no tener problemas en un futuro a la hora de trabajar con variables, sería bueno entenderlas dentro de su ámbito.
Cada variable que creamos tiene un ámbito, es decir, que hay partes de la aplicación donde la variable creada no existe. Un bloque de código es lo que hay dentro de { }.
Existen varios tipos:
A nivel global de clase: cuando declaramos una variable al inicio de la clase (antes del main), esta variable se podrá leer y modificar en cualquier parte del programa.
Variable local a nivel de método: una variable se declara dentro de un método y cuando este finaliza, la variable deja de existir.
Variable a nivel de bloque de código: cuando creamos una variable dentro de un bloque de código (como dentro de un if) este solo existirá dentro de ese bloque.
Más adelante volveremos a tocar los temas independientemente para que nos quede más claro sobre el comportamiento de las variables.

7.4 CASTING EN JAVA
Un casting es una operación especial que nos permite realizar una conversión entre tipos, cuando tenemos que algunos tipos no son compatibles entre sí como int y double. Veamos algunos ejemplos:

int a=1;

double b=2.5;

b=a;

System.out.println(b);


El código anterior, no nos dará ningún error, ya que double sí puede contener un int, pero si cambiamos la línea b=a; por a=b; nos informará un error, esto es porque int no puede contener un double, pero si usamos un casting si nos dejara ejecutar.

int a=1;

double b=2.5;

a=(int)b;

System.out.println(a);


Como vemos, un casting se indica entre paréntesis con el tipo de dato al que queremos pasar, en este caso int. La variable a, contendrá un 2 y no un 2.5.
El error relacionado con los castings es Type mismatch: cannot convert from (dato1) to (dato2)
No se puede hacer castings entre todos los tipos, por ejemplo, entre un int y un String. El error que aparece es este Cannot cast from (dato1) to (dato2).
Vamos a ver otro ejemplo muy común para usar un casting. Creo que lo comenté, que int y char son compatibles, si tenemos un int y hacemos un casting a char este se convertirá en un carácter asociado de la tabla ASCII. Veamos un ejemplo:

int codigo=64;

char codigoASCII=(char)codigo;

System.out.println(codigoASCII);


Como era de esperar nos dará el símbolo del arroba (@).

7.5 METODOS DE LA CLASE MATH

Esta clase ya viene incluida en nuevas versiones de Java, por lo que no habrá que importar ningún paquete para ello.
Para utilizar esta clase, debemos escribir Math.método(parámetros); donde método será uno de los siguientes y parámetros aquellos que tengamos que usar. Un método puede estar sobrescrito para distintos tipos de datos.

Recuerda que si almacenas el resultado de la función, debe coincidir con el tipo de la variable.






Veamos algunos ejemplos:

public class metodoMath {

public static void main(String[] args) {

double operador1= 2.5;
double operador2= 5.21;

Math.ceil(operador1);
System.out.println("el entero más cercano es: " + Math.ceil(operador1));

Math.floor(operador2);

System.out.println("el entero más cercano es: " + Math.floor(operador2));

Math.pow(operador1, operador2);
System.out.println("La potencia del Operador1 es: " + Math.pow(operador1,operador2));

Math.max(operador1, operador2);
System.out.println("el valor máximos es: " + Math.max(operador1,operador2));

Math.sqrt(operador1);
System.out.println("La raíz cuadrada es: " + Math.sqrt(operador1));

}

}



7.6 ESTRUCTURAS DE REPETICIÓN
Una estructura de repetición o bucle nos permite ejecutar un número de veces determinado una serie de instrucciones. La mayor utilidad es evitar la repetición de líneas de código iguales. Para salir del bucle, se indica una condición, si esa condición no se cumple se sale del bucle.
Las estructuras de repetición son:
while: indicamos una condición que se ejecutará hasta que la condición sea falsa, es importante que la variable que este en la condición, varíe para que no se produzca un bucle infinito. Su sintaxis es:



Nos daría una serie de números: 1 2 3 4 5

Como vemos, num vale 1 al principio, se comprueba la condición, como 1 es menor o igual que 5, entra en el bucle y ejecuta las instrucciones, y así sucesivamente hasta que num vale 6, ya que 6 no es menor o igual que 5. Si num no fuera modificado, nunca saldría del bucle.

for: este tipo de bucle, es como el anterior pero además de la condición, incluye una inicialización de una variable y un incremento o decremento de esa variable, en principio, no es necesario que incluya las 3 partes, se pueden inicializar o incrementar varias separadas por comas. Cada parte se separa con un ;

NOTA: cuando salimos del bucle, la variable inicializada no existe. Su sintaxis:



Si nos fijamos, es como en while pero todo se define en el bucle. Veamos un ejemplo:

for (int num=1; num<=5; num++){
System.out.println(num);
}


Nos daría una serie de números: 1 2 3 4 5. Es el mismo ejemplo de antes pero más reducido.

do-while: esta estructura repetitiva, tiene algo especial y es que como mínimo las instrucciones dentro de la estructura repetitiva al menos una vez, mientras que el while sus instrucciones pueden ejecutarse 0 o N veces. Se sale del bucle cuando la condición del while no se cumple, si esto pasa empieza desde el do. Se utiliza para la validación de datos. Su sintaxis es:



Tenemos que pensar bien la condición de salida. En nuestro caso, si insertamos un 5 (5>=10 or 5<0) devolvería falso, si insertáramos un -1 (-1>=10 or 5
7.7 MENSAJES DE TRAZA
Los mensajes de traza son mensajes que nos hacen comprobar que el resultado es el que esperado.
Lo único que hacemos es mostrar un mensaje con System.out.println(“>>”+variable); . No tiene porque seguir la misma sintaxis dentro del paréntesis, es para diferenciar un mensaje de traza con un mensaje normal que muestre datos.
Veamos un ejemplo:

int operando1=10;
int operando2=30;
int resultado=(operando1+50)/(2*operando2);

System.out.println(">>"+resultado);


Con este simple mensaje de traza, nos aseguramos que es el resultado esperado, si necesitamos operar con esa variable es bueno asegurarse de que vamos por el buen camino.



EJERCICIOS

1)Declara dos variables numéricas (con el valor que desees), muestra por consola la suma, resta, multiplicación, división y módulo (resto de la división).
Solución:




2)Declare 2 variables numéricas (con el valor que desee), he indique cual es mayor de los dos. Si son iguales indicarlo también. Van cambiando los valores para comprobar que funciona.
Solución:



3) Declare un String que contenga tu nombre, después muestra un mensaje de bienvenida por consola. Por ejemplo: si introduzco “Juan”, me aparezca “Bienvenido Juan”.
Solución:





4) Modifica la aplicación anterior, para que nos pida el nombre que queremos introducir (recuerda usar JOptionPane).
Solución:




5)Lee un número por teclado y muestra por consola, el carácter al que pertenece en la tabla ASCII. Por ejemplo: si introduzco un 97, me muestre una a.
Solución:





6)Modifica el ejercicio anterior, para que en lugar de pedir un número, pida un carácter (char) y muestre su código en la tabla ASCII.
Solución:




7)Lee un número por teclado que pida el precio de un producto (puede tener decimales) y calcule el precio final con IVA. El IVA será una constante que será del 21%.
Solución:






8)Muestra los números del 1 al 100 (ambos incluidos). Usa un bucle while.

Solución:





9)Hacé el mismo ejercicio anterior con un bucle for.
Solución:






10)Muestra los números del 1 al 100 (ambos incluidos) divisibles entre 2 y 3. Utiliza el bucle que desees.
Solución:






CLASE 7: EJERCICIOS PROPUESTOS

1.Programa Java que lea un número entero por teclado y calcule si es par o impar.

2.Programa que lea un número entero y muestre si el número es múltiplo de 10.

3.Programa que lea un carácter por teclado y compruebe si es una letra mayúscula.

4.2 números enteros y que diga cuál es el menor y cuál es el mayor o si son iguales.



Bueno, hasta acá la clase 7. Vieron que se tocaron muchos temas y fue bastante exhaustivo. Espero puedan resolver los propuestos y como siempre les insto a buscar algo más y practicar. No queda otra que practicar, es la única manera de aprender Java.
A programarrrrrrrr y como siempre....





CLASE 6 <<< IR A LA >>> CLASE 8
0
0
0
0
0No comments yet