Casting Java

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 43

Casting en Java

[Programación Orientada a Objetos]


Computación
Mónica D. Gómez Rios

diciembre de 2022 mgomezr@ups.edu.ec 1


Uso de tipos de datos en java

Objetivos:

– Explicar las conversiones entre tipos de datos(casting).


– Usar los operadores aritméticos, relacionales, lógicos, incrementales
en java.
– Ejercicios prácticos.
En qué consiste?

– Consiste en pasar un tipo de dato a otro.


– En Java es posible transformar el tipo de una variable u objeto en otro
diferente al original con el que fue declarado.
– Este proceso se denomina "conversión", "moldeado" o "tipado".
– La conversión se lleva a cabo colocando el tipo destino entre paréntesis, a
la izquierda del valor que queremos convertir de la forma siguiente:
– int numero; // declaración
– numero = 20; // Asignación
– float varFlotante=(float) numero; // Cambio de tipo
Variables en coma flotante
– Las variables del tipo float o double (coma flotante) se usan para guardar
números en memoria que tienen parte entera y parte decimal.

– float a=12.5f;
– float b=7f;
– double c=7.0;
– double d=7d;

– En la primera línea 12.5 lleva el sufijo f, ya que por defecto 12.5 es double. En
la segunda línea 7 es un entero y por tanto 7f es un número de tipo float. Y así
el resto de los ejemplos.
Valores constantes

– Cuando se declara una variable de tipo final, se ha de inicializar y


cualquier intento de modificarla en el curso de la ejecución del
programa da lugar a un error en tiempo de compilación.

– Normalmente, las constantes de un programa se suelen poner en


letras mayúsculas, para distinguirlas de las que no son constantes. He
aquí ejemplos de declaración de constantes.

– final double PI=3.141592653589793;


– final int MAX_DATOS=150;
Valores por defecto de los tipos de datos
primitivos
CASTING

– El proceso de convertir un tipo de dato a otro, se denomina CAST.


– Existen 2 formas de realizar un CAST:
– - de forma implícita y
– - de forma explicita.

– Implícito: no se necesita escribir código para que se lleve a cabo. Ocurre cuando se
realiza una conversión ancha (widening casting), es decir, cuando se coloca un valor
pequeño en un contenedor grande.

– Explícito: sí es necesario escribir código. Ocurre cuando se realiza una conversión


estrecha (narrowing casting), es decir, cuando se coloca un valor grande en un
contenedor pequeño. Son susceptibles de pérdida de datos (ojo, Java no se
responsabiliza del resultado obtenido).
Para que sirve el Casting primordialmente?
– Sirve para poder trabajar con los datos u operaciones que se trabajan
con una interfaz gráfica, debido a que la interfaz gráfica recibe y
entrega variables de tipo texto(String).
Ejemplo Casting Implícito
public class Practica{
public static void main(String args[]){
byte num1=10;
short num2=3000;
long num3=3000000000;
float num4= 256.5f; Este código tiene algún error?

char num5 = '6';


double num6 = num5;
System.out.println(num1);
System.out.println(num2);
System.out.println(num3);
System.out.println(num4);
System.out.println(num5);
System.out.println(num6);
}}
– Por ejemplo, en Java, los tipos de datos numéricos son
compatibles entre sí, pero no se admite la conversión
automática de tipo numérico a char o boolean. Además, char y
boolean no son compatibles entre sí.
Pasar de Entero a String
Ejemplo de Casting con caracteres
Ejemplo de casting explícito:
Anteponemos el tipo al cual
deseemos convertir y desde luego
guardarlo en una variable de ese tipo
al cual voy a convertir
Otro ejemplo de casting explícito
Otra forma de declarar una variable tipo float
Cuadro de conversiones de tipo en JAVA

(*) posible truncamiento de valor.


Otra forma de hacer Casting
– Para pasar una variable tipo float a String:

Este código da error?


Otra forma de hacer Casting
– Para pasar una variable tipo int a String:

– Para pasar una variable tipo double a String:


Otra forma de hacer Casting
– Para pasar una variable tipo int a String:

– Para pasar una variable tipo double a String:


Operadores Aritméticos
//Observar las salida de este código
Incrementos y decrementos unitarios
– ++op1: En primer lugar realiza un incremento (en una unidad) de op1
y después ejecuta la instrucción en la cual esta inmerso.
– op1++: En primer lugar ejecuta la instrucción en la cual esta inmerso y
después realiza un incremento (en una unidad) de op1.
– --op1: En primer lugar realiza un decremento (en una unidad) de op1y
después ejecuta la instrucción en la cual esta inmerso.
– op1--: En primer lugar ejecuta la instrucción en la cual esta inmerso y
después realiza un decremento (en una unidad) de op1.
Observaciones:
– La diferencia entre la notación prefija y la postfija no tiene importancia en
expresiones en las que únicamente existe dicha operación:
– ++contador; es equivalente a: contador++;
– --contador; contador--;
– Es importante no emplear estos operadores en expresiones que contengan
mas de una referencia a la variable incrementada, puesto que esta practica
puede generar resultados erróneos fácilmente.
– La diferencia es apreciable en instrucciones en las cuales están incluidas
otras operaciones.
– Por ejemplo:
Probemos el siguiente código
Operadores relacionales
Los operadores relacionales actúan sobre valores enteros, reales y
caracteres (char); y devuelven un valor del tipo boolean (true o false).
Operadores Lógicos

Estos operadores actúan sobre operadores o expresiones lógicas, es


decir, aquellos que se evalúan a cierto o falso (true / false).
Operadores de asignación
Ejemplo de Operadores de Asignación:
Las Matemáticas y Java
– Ya habíamos visto las operaciones matemáticas básicas: suma, resta,
división, multiplicación.
– Pero existen otras operaciones matemáticas que son muy habituales:
raíces cuadradas, potencias, logaritmos, funciones trigonométricas
(seno, coseno, tangente), generación de números al azar... Todas estas
posibilidades están accesibles a través de la clase java.lang.Math.
– Vamos a comentar alfabéticamente las más importantes y luego
veremos un ejemplo de su uso:
También hay disponibles dos constantes: PI (relación entre el diámetro de una
circunferencia y su longitud) y E (base de los logaritmos naturales).

Ejemplos:
System.out.print( "2+3 es ");
System.out.println( 2+3 );
System.out.print( "2*3 es ");
System.out.println( 2*3 );
System.out.print( "2-3 es ");
System.out.println( 2-3 );
System.out.print( "3/2 es ");
System.out.println( 3/2 );
System.out.print( "3,0/2 es ");
System.out.println( 3.0/2 );
System.out.print( "El resto de dividir 13 entre 4 es ");
System.out.println( 13%4 );
– System.out.print( "Un número al azar entre 0 y 1: ");
– System.out.println( Math.random() );
– System.out.print( "Un número al azar entre 50 y 150: ");
– System.out.println( (int)(Math.random()*100+50) );
– System.out.print( "Una letra minúscula al azar: ");
– System.out.print( "Una letra mayúscula al azar: ");
– System.out.println( (char)(Math.random()*(90-65+1)+65) );
– System.out.println( (char)(Math.random()*26+'a') );
– System.out.print( "Coseno de PI radianes: ");
– System.out.println( Math.cos(Math.PI) );
– System.out.print( "Seno de 45 grados: ");
– System.out.println( Math.sin(Math.toRadians(45)) );
– System.out.print( "Arco cuya tangente es 1: ");
– System.out.println( Math.toDegrees(Math.atan(1)) );
– System.out.print( "Raíz cuadrada de 36: ");
– System.out.println( Math.sqrt(36) );
– System.out.print( "Cinco elevado al cubo: ") ;
– System.out.println( Math.pow(5.0,3.0) );
– System.out.print( "Exponencial de 2: ") ;
– System.out.println( Math.exp(2) );
– System.out.print( "Logaritmo de 2,71828: ") ;
– System.out.println( Math.log(2.71828) );
– System.out.print( "Mayor valor entre 2 y 3: ");
– System.out.println( Math.max(2,3) );
– System.out.print( "Valor absoluto de -4,5: ");
– System.out.println( Math.abs(-4.5) );
– System.out.print( "Menor entero más cercano a -4,5: ");
– System.out.println( Math.floor(-4.5) );
– System.out.print( "Mayor entero más cercano a -4,5: ");
– System.out.println( Math.ceil(-4.5) );
– System.out.print( "Redondeando -4,5 con ROUND: ");
– System.out.println( Math.round(-4.5) );
– System.out.print( "Redondeando 4,5 con ROUND: ");
– System.out.println( Math.round(4.5) );
– System.out.print( "Redondeando -4,6 con RINT: ");
– System.out.println( Math.rint(-4.6) );
– System.out.print( "Redondeando -4,5 con RINT: ");
– System.out.println( Math.rint(4.5) )
El operador ternario ?: en Java
Tarea:
– Probar cada uno de los ejemplos de Casting y operaciones de la clase
Math y el operador ternario “?”
Autores del contenido

– Ing. Mónica Gómez R


(mgomezr@ups.edu.ec)

diciembre de 2022

mgomezr@ups.edu.ec 42
diciembre de 2022 mgomezr@ups.edu.ec 43

También podría gustarte