You are on page 1of 63

Fundamentos de Java

4-3:
Tipos de datos y operadores

Copyright 2015, Oracle y/o sus afiliadas. Todos los derechos reservados.
Objetivos

Esta leccin abarca los siguientes temas:


Usar tipos de datos primitivos en cdigo Java
Especificar los literales para los tipos primitivos y Strings
Demonstrar de qu manera se inicializan las variables
Describir el alcance de las reglas de un mtodo
Reconocer cundo una expresin requiere un tipo de
conversin

JF 4-3 Copyright 2015, Oracle y/o sus afiliadas. Todos los derechos reservados. 3
Tipos de datos y operadores
Descripcin general

Esta leccin abarca los siguientes temas:


Aplicar la conversin el cdigo Java
Usar operadores aritmticos
Usar el operador de asignaciones
Usar un mtodo de una clase de matemtica
Acceder al mtodo de una clase de matemtica de la API
de Java

JF 4-3 Copyright 2015, Oracle y/o sus afiliadas. Todos los derechos reservados. 4
Tipos de datos y operadores
Tipos de programacin en Java

Tipos de datos en Java:


Se usan para definir el tipo de datos que se pueden almacenar en una
variable.
Garantizan que se almacenen nicamente los datos correctos.
Pueden ser declarados o inferidos.
El programador puede crearlos.

JF 4-3 Copyright 2015, Oracle y/o sus afiliadas. Todos los derechos reservados. 5
Tipos de datos y operadores
Las variables deben tener tipos de datos

Todas las variables deben tener un tipo de datos por razones


de seguridad.
El programa no se compilar si el usuario intenta almacenar
datos que no sean correctos.
Los programas se deben adaptar a las limitaciones del tipo
para su ejecucin.
Los tipos incorrectos en las expresiones
o datos se marcan como errores en el
tiempo de compilacin.

JF 4-3 Copyright 2015, Oracle y/o sus afiliadas. Todos los derechos reservados. 6
Tipos de datos y operadores
Tipos de datos primitivos

Java contiene ocho tipos de datos primitivos que se usan para


almacenar datos durante el funcionamiento de un programa.
Los tipos de datos primitivos corresponden a un grupo
especial de datos que no usa la palabra clave nueva cuando
se inicializa.
Java los crea como variables automticas que no son
referencias, que estn almacenadas en la memoria con el
nombre de la variable.
Los tipos primitivos ms comunes usados en este curso son
int (enteros) y dobles (decimales).

JF 4-3 Copyright 2015, Oracle y/o sus afiliadas. Todos los derechos reservados. 7
Tipos de datos y operadores
Tipos de datos primitivos

Tipo de datos Tamao Ejemplos de datos Descripcin de datos


Boolean Almacena etiquetas de
1 bit true, false
(booleano) verdadero y falso.

1 byte (8 Almacena enteros de -


byte 12, 128
bits) 128 a 127.

Almacena un carcter
char 2 bytes 'A', '5', '#' Unicode de 16 bits de 0
a 65.535
Short Almacena enteros de
2 bytes 6, -14, 2345
(corto) -32.768 a 32.767.

JF 4-3 Copyright 2015, Oracle y/o sus afiliadas. Todos los derechos reservados. 8
Tipos de datos y operadores
Tipos de datos primitivos

Tipo de datos Tamao Ejemplos de datos Descripcin de datos


Almacena enteros de-
int 4 bytes 6, -14, 2345 2.147.483.648 a
2.147.483.647
Almacena enteros de-
Long 9.223.372.036.854.775.808
8 bytes 3459111, 2 a
(largo)
9.223.372.036.854.775.807
Almacena nmeros
Float decimales positivos o
4 bytes 3.145, .077 negativos de: 1.4023x10-45
(flotante)
a 3.4028x10+38
Almacena nmeros
Double decimales positivos o
8 bytes .0000456, 3.7 negativos de: 4,9406x10-324
(doble)
a 1,7977x10308

JF 4-3 Copyright 2015, Oracle y/o sus afiliadas. Todos los derechos reservados. 9
Tipos de datos y operadores
Declaracin de variables y uso de literales

La palabra clave nueva no se usa cuando se inicializa una


variable de un tipo primitivo.
Por el contrario, se deber asignar un valor literal a cada
variable en el momento de la inicializacin.
Un literal puede ser cualquier nmero, texto u otra
informacin que representa un valor.
Ejemplos de declaracin de una variable y asignacin del
valor literal: boolean result = true;
char capitalC = 'C';
byte b = 100;
short s = 10000;
int i = 100000;

JF 4-3 Copyright 2015, Oracle y/o sus afiliadas. Todos los derechos reservados. 10
Tipos de datos y operadores
Ejemplo de declaracin de variables y uso
de literales

Los valores de d1 y d2 son iguales.


La inicializacin de d2 muestra cmo se puede usar la
notacin cientfica para establecer el valor.
Al total y ss_num se les asigna el mismo valor.
La inicializacin de ss_num muestra que se pueden usar los
subrayados para separar a los nmeros para legibilidad.
long total=999999999;
long ss_num = 999_99_9999;
double d1 = 123.4;
double d2 = 1.234e2;
float f1 = 123.4f;

JF 4-3 Copyright 2015, Oracle y/o sus afiliadas. Todos los derechos reservados. 11
Tipos de datos y operadores
Ejemplos de literales numricos

0x y 0b se usan para denotar un valor literal hexadecimal o un


valor literal binario.
Los literales mejorarn el rendimiento del procesamiento.
long creditCardNumber = 1234_5678_9012_3456L;
long socialSecurityNumber = 999_99_9999L;
float pi = 3.14_15F;
long hexBytes = 0xFF_EC_DE_5E;
long hexWords = 0xCAFE_BABE;
long maxLong = 0x7fff_fff_fff_fffL;
byte nybbles = 0b0010_0101;
long bytes = 0b11010010_01101001_10010100_10010010;

JF 4-3 Copyright 2015, Oracle y/o sus afiliadas. Todos los derechos reservados. 12
Tipos de datos y operadores
Literales binarios de Java SE 7

En Java SE7 y versiones siguientes, los literales binarios se


pueden expresar usando el sistema binario al agregar los
prefijos 0b o 0B al nmero.
Los literales binarios son valores int (enteros) de Java.
Una conversin (cast) seala una conversin (conversion) del tipo.
Si convierte un tipo en otro tipo, estar convirtiendo explcitamente el
elemento de su tipo original al tipo que especifique. Una conversin
(cast) no redondea un nmero decimal, por el contrario, lo trunca.
El siguiente es un ejemplo de conversin de doble a entero:
double x = 5.745
int y = (int)x; //y ahora es igual a 5

JF 4-3 Copyright 2015, Oracle y/o sus afiliadas. Todos los derechos reservados. 13
Tipos de datos y operadores
Literales binarios de Java SE 7

Los valores en bytes y abreviados de Java requieren una


conversin para evitar un error por prdida de precisin del
compilador.

Una conversin (cast) seala una conversin (conversion) del tipo.


Si convierte un tipo en otro tipo, estar convirtiendo explcitamente el
elemento de su tipo original al tipo que especifique. Una conversin
(cast) no redondea un nmero decimal, por el contrario, lo trunca.
El siguiente es un ejemplo de conversin de doble a entero:
double x = 5.745
int y = (int)x; //y ahora es igual a 5

JF 4-3 Copyright 2015, Oracle y/o sus afiliadas. Todos los derechos reservados. 14
Tipos de datos y operadores
Para qu se usan los literales binarios de
Java SE 7?

Los literales binarios se usan para:


Clculos
Comparaciones
Programacin de bajo nivel, como:
controladores de dispositivos de escritura
grficos de bajo nivel
ensamblado de paquetes de protocolos de comunicaciones
decodificacin

JF 4-3 Copyright 2015, Oracle y/o sus afiliadas. Todos los derechos reservados. 15
Tipos de datos y operadores
Por qu usar literales binarios?

El uso de literales binarios para representar valores de


comparaciones y clculos es sustancialmente ms rpido que
el uso de valores del tipo de datos real.
Los procesadores de alto rendimiento modernos
generalmente realizan clculos en enteros tan rpido como
con los literales binarios, por eso, por qu usar literales?
Se recomienda usar literales para energa y rendimiento
general, porque utilizan menos recursos.

JF 4-3 Copyright 2015, Oracle y/o sus afiliadas. Todos los derechos reservados. 16
Tipos de datos y operadores
Ejemplo de conversin

// An 8-bit 'byte' value: El siguiente es un


byte aByte = (byte)0b00100001; ejemplo de conversin.
En este ejemplo el valor
// A 16-bit 'short' value: binario se convierte en
short aShort = (short)0b1010_0001_0100_0101; un tipo de byte.
// Some 32-bit 'int' values:
int anInt1=0b1010_0001_0100_0101_1010_0001_0100_0101;
int anInt2=0b101;
int anInt3=0B101; //The B can be upper or lower case

JF 4-3 Copyright 2015, Oracle y/o sus afiliadas. Todos los derechos reservados. 17
Tipos de datos y operadores
Reglas para nombres variables

Debe seguir las reglas siguientes cuando elija el nombre de


una variable:
No use una palabra clave o una palabra reservada de Java.
No use un espacio en el nombre de la variable.
Use una combinacin de letras o una combinacin de letras y nmeros.
No puede comenzar por un nmero.
Los nicos smbolos permitidos son el subrayado ( _ ) y el signo pesos
($).

JF 4-3 Copyright 2015, Oracle y/o sus afiliadas. Todos los derechos reservados. 18
Tipos de datos y operadores
Convenciones para nombres variables

Mientras que las convenciones no se consideran reglas, la


mayora de los programadores de Java respetan estas
convenciones:
Usar palabras completas en lugar de abreviaturas crpticas.
No use variables de una sola letra. Si todas las variables contienen una
sola letra, es posible que el cdigo parezca muy confuso.
La excepcin a esta convencin corresponde a las variables de control de
bucles, que generalmente son las letras i, j o k
Si el nombre de una variable consta de una palabra, deletree esa
palabra en letras minsculas.
Si el nombre de una variable consta de ms de una palabra, use las
minsculas estilo CamelCase.

JF 4-3 Copyright 2015, Oracle y/o sus afiliadas. Todos los derechos reservados. 19
Tipos de datos y operadores
Convenciones de nomenclatura adicionales
para nombres variables

Convenciones de nomenclatura adicionales:


Si una variable ser un valor constante, use todas letras maysculas y
palabras separadas con el subrayado.
Use nombres que expresan el propsito de la variable.
En el siguiente ejemplo, PI es un buen ejemplo para designar a este
nmero porque le permite recordar qu representa la variable.

int PI = 3.14159;

JF 4-3 Copyright 2015, Oracle y/o sus afiliadas. Todos los derechos reservados. 20
Tipos de datos y operadores
mbito de las variables

El mbito se usa para describir el bloque de cdigo donde


existe una variable en un programa.
Es posible que existan variables mltiples con el mismo
nombre en un programa Java.
En la mayora de los casos, la variable interior tiene precedencia.
Existe una variable nicamente dentro del bloque de cdigo
en la que se declara.
Una vez que se llega al ltimo corchete del bloque "}":
La variable sale del mbito.
Ya no se reconoce como una variable declarada.

JF 4-3 Copyright 2015, Oracle y/o sus afiliadas. Todos los derechos reservados. 21
Tipos de datos y operadores
Ejemplo 1 del mbito de las variables

En el siguiente ejemplo, el nombre no se imprimir porque


deja de existir una vez que llega al corchete identificado como
Punto B.
public void someMethod()
{
if(gameOver && score>highScore)
{
String name; //Point A
System.out.println("Please enter your name:");
name=reader.next();
} //Point B

System.out.println("Thank you " + name + ", ");


System.out.println("your high score has been saved.");
}

JF 4-3 Copyright 2015, Oracle y/o sus afiliadas. Todos los derechos reservados. 22
Tipos de datos y operadores
Ejemplo 2 del mbito de las variables

En este ejemplo, el nombre de la variable ha sido movido


fuera del bloque de la sentencia "si", para permitir el uso del
nombre con este mtodo.
public void someMethod()
{
String name; //Point A
if(gameOver && score>highScore)
{
System.out.println("Please enter your name:");
name=reader.next();
} //Point B
System.out.println("Thank you " + name + ", ");
System.out.println("your high score has been saved.");
}

JF 4-3 Copyright 2015, Oracle y/o sus afiliadas. Todos los derechos reservados. 23
Tipos de datos y operadores
Ejemplo 3 del mbito de las variables

Java permite una variable de clases y una variable de


mtodos con el mismo nombre en un programa. Puede
predecir qu imprimir este programa?
public class Counting{
public static int counter=5;
public static void main(String[] args)
{
System.out.println("At the start of this program, counter is "+ counter);
count();
System.out.println("At the end of this program, counter is "+ counter);
}//end of main
public static void count()
{
int counter=10;
System.out.println("At the end of this method, counter is "+ counter);
}//end of count()
}//end of class

JF 4-3 Copyright 2015, Oracle y/o sus afiliadas. Todos los derechos reservados. 24
Tipos de datos y operadores
Solucin del ejemplo 3 del mbito de las
variables

Solucin: 5, 10, 5
El programa comienza con main() e imprime el contador de la
variable de la clase global.
Se invoca el mtodo count() y se crea un nuevo contador de
variable local para la invocacin de ese mtodo.
Se le otorga un valor de 10 y luego se imprime.

JF 4-3 Copyright 2015, Oracle y/o sus afiliadas. Todos los derechos reservados. 25
Tipos de datos y operadores
Solucin del ejemplo 3 del mbito de las
variables

Al llegar al corchete al final de count(), la variable local sale


del mbito (deja de existir).
El programa regresa al mtodo main() e imprime el contador
de la variable global que no ha cambiado su valor.

JF 4-3 Copyright 2015, Oracle y/o sus afiliadas. Todos los derechos reservados. 26
Tipos de datos y operadores
Operadores aritmticos

Java cuenta con varios operadores aritmticos


para realizar operaciones de matemticas.
Smbolo Descripcin del operador
+ Operador de suma
- Operador de resta
* Operador de multiplicacin
/ Operador de divisin (encuentra el cociente)
% Operador modular (encuentra el resto)
Operador de incremento (suma uno). Es un
++
operador unario.
Operador de decremento (resta uno). Es un
--
operador unario.

JF 4-3 Copyright 2015, Oracle y/o sus afiliadas. Todos los derechos reservados. 27
Tipos de datos y operadores
Precedencia de operadores aritmticos

Todas las expresiones matemticas se evalan siguiendo el


orden de precedencia:
En primer lugar se manejan las expresiones entre parntesis.
A continuacin, todas las operaciones de multiplicacin, divisin y
modulares se manejan trabajando de izquierda a derecha.
Finalmente, todas las operaciones de sumas y restas se manejan
trabajando de izquierda a derecha.

JF 4-3 Copyright 2015, Oracle y/o sus afiliadas. Todos los derechos reservados. 28
Tipos de datos y operadores
Incrementos y Decrementos

Los incrementos y decrementos se manejan primero para


notacin pre incremento y, por ltimo, para notacin post
incremento.
En Java, incremento significa agregar uno al valor de la
variable.
En Java, decremento significa restar uno a la variable.
Notacin pre incremento:
++x;
Notacin post incremento:
x++;
JF 4-3 Copyright 2015, Oracle y/o sus afiliadas. Todos los derechos reservados. 29
Tipos de datos y operadores
Ejemplo de precedencia de incremento y
decremento

Notacin pre incremento:


int x = 3;
++x; //x es igual a 4
z = ++x; //x es igual a 5, ENTONCES z es igual a 5

Notacin post incremento:


int x = 3;
x++; //x es igual a 4
z = x++; //z es igual a 4, ENTONCES x es igual a 5

JF 4-3 Copyright 2015, Oracle y/o sus afiliadas. Todos los derechos reservados. 30
Tipos de datos y operadores
Operador de asignaciones

Java usa = (signo igual) como operador de asignaciones.


La evaluacin de la expresin de la derecha se asigna a la
ubicacin de la memoria de la izquierda.
int x = 4;
int y = 5;
int z = 10;
int total = 12;

X Y Z Total

4 5 10 12

JF 4-3 Copyright 2015, Oracle y/o sus afiliadas. Todos los derechos reservados. 31
Tipos de datos y operadores
Ejemplo 1 del operador de asignaciones

Cuando se ejecuta esta lnea del cdigo, cambia el valor del


total.
Los cuadros muestran qu contiene cada ubicacin de
memoria para x, y, z y el total.
Ahora, el total de la ubicacin de memoria se asigna al valor
de 4 + 5 * 10, que es 54.
int x = 4, y = 5, z = 10;
int total = x + y * z;
X Y Z Total

4 5 10 54

JF 4-3 Copyright 2015, Oracle y/o sus afiliadas. Todos los derechos reservados. 32
Tipos de datos y operadores
Ejemplo 2 del operador de asignaciones

Piense en el operador de la asignacin como una flecha que


apunta a la izquierda.
Todo lo que se encuentra a la derecha se dirigir a la
ubicacin de memoria de la izquierda.
Cmo cambiar la memoria cuando se ejecute este cdigo?
int x = 4, y = 5, z = 10;
int total = x + y * (z x);

X Y Z Total

4 5 10 ??

JF 4-3 Copyright 2015, Oracle y/o sus afiliadas. Todos los derechos reservados. 33
Tipos de datos y operadores
Solucin del ejemplo 2 del operador de
asignaciones

La respuesta indica que el total se asignar al valor de la


expresin.
Esto significa que el valor de la expresin se almacenar en la
direccin de la memoria asociado con el total de la variable.
int x = 4, y = 5, z = 10;
int total = x + y * (z x);

X Y Z Total

4 5 10 34

JF 4-3 Copyright 2015, Oracle y/o sus afiliadas. Todos los derechos reservados. 34
Tipos de datos y operadores
Truncamiento y divisin de enteros

La divisin de dos enteros SIEMPRE producir un entero.


Por ejemplo, la frmula para el volumen de un cono de
geometra es:
V = r2 h
Si 1/3 se usa en una expresin de Java, se evala como 0, como
consecuencia de la divisin del entero.
El resultado de la divisin del entero es el cociente sin decimales.

El truncamiento es el concepto del redondeo del nmero hacia abajo


hasta el entero ms cercano menor que el valor. Por ejemplo, el
truncamiento de 7,8 producira un resultado de 7.

JF 4-3 Copyright 2015, Oracle y/o sus afiliadas. Todos los derechos reservados. 35
Tipos de datos y operadores
Truncamiento y divisin de enteros
Divisor
Ejemplos de divisin de enteros:
5 quotient
Cociente
16 / 3 = 5 (Truncamiento)
3 16
Dividendo
dividend 10 / 3 = 3 (Truncamiento)
15
1 16 % 3 = 1
Resto
12 % 3 = 0
11 % 3 = 2

Para calcular un cociente sin truncamiento (resultados decimales),


convierta el dividendo el divisor en un decimal. Por ejemplo:
11 / 5,0 = 2,2 y, del mismo modo, 11,0 / 5 = 2,2

JF 4-3 Copyright 2015, Oracle y/o sus afiliadas. Todos los derechos reservados. 36
Tipos de datos y operadores
Ejemplo 1 de truncamiento y divisin de
enteros

Qu se imprime cuando se ejecuta el siguiente cdigo?


int x = 4, y = 5, z = 10;
int total = z / (x * y);

System.out.println("The total is " + total + ".");

La respuesta es 0. Por qu no se visualiza 0,5?


Dado que el total es un entero, el sistema almacenar un
valor entero como el resultado del clculo.
La porcin decimal de la respuesta est truncada no
redondeada para producir la respuesta del entero final de 0.

JF 4-3 Copyright 2015, Oracle y/o sus afiliadas. Todos los derechos reservados. 37
Tipos de datos y operadores
Ejemplo 2 de truncamiento y divisin de
enteros

Un programador podra escribir el siguiente cdigo para crear


un programa para calcular el volumen.
El programa Java calcular la respuesta como 0 de manera
incorrecta.
Al trabajar de izquierda a derecha, el programa divide 1 por 3.
Java considera 1 y 3 como enteros literales y realiza la divisin
de los enteros donde ,33... se trunca en 0. De qu manera
corregira esto? double height = 4, radius = 10, volume;
volume = 1 / 3 * 3.14 * radius * radius * height;
System.out.println("The volume is" + volume + ".");

JF 4-3 Copyright 2015, Oracle y/o sus afiliadas. Todos los derechos reservados. 38
Tipos de datos y operadores
Comprensin de tipos y conversiones

Existen pocas maneras de forzar una frmula para no truncar


un valor:
mover la fraccin hasta el final, de modo que Java siempre usar un
doble y un entero y convertir implcitamente la respuesta en un doble,
no truncado.
double volume = 3.14 * radius * radius * height * 1 / 3;

hacer uno de los enteros literales un doble literal, de modo que Java
siempre usar un doble y un entero e implcitamente convertir la
respuesta en un doble, no truncado.
double volume = 1 / 3.0 * 3.14 * radius * radius * height;

JF 4-3 Copyright 2015, Oracle y/o sus afiliadas. Todos los derechos reservados. 39
Tipos de datos y operadores
Conversiones de tipo implcito

En el ejemplo anterior, Java realiz conversiones de tipo


implcito.
Esto ocurre siempre que un tipo de datos ms pequeo
(como int) se ubica en un tipo ms grande (como doble).
Java descubre que los tipos son diferentes y se los convierte
al tamao ms grande automticamente.
Sin embargo, Java no convertir un tamao ms grande
(como el doble) a uno ms pequeo (como int)
automticamente.

JF 4-3 Copyright 2015, Oracle y/o sus afiliadas. Todos los derechos reservados. 40
Tipos de datos y operadores
Uso de la conversin de tipos

Al usar el mtodo aleatorio de la librera Matemtica,


podemos generar un nmero aleatorio de 1 a 10.
El mtodo aleatorio genera un doble entre 0 y (sin incluir) 1.
Se podran generar valores como 0, 0,4567 o 0,901306.
int number;
number = Math.random() * 10;
System.out.println("The random number is " + number + ".");

JF 4-3 Copyright 2015, Oracle y/o sus afiliadas. Todos los derechos reservados. 41
Tipos de datos y operadores
Uso de la conversin de tipos

Al multiplicar estos valores por 10 y luego truncar el valor


extra se podran obtener los valores 0, 4 o 9.
Sin embargo, Java no permitir que este programa se compile
en su estado actual.
Los datos se pierden al ir de un valor mayor (doble) a un valor
ms pequeo (ent).
De este modo, se requiere la conversin de tipos para la
conversin de este tipo.
int number;
number = Math.random() * 10;
System.out.println("The random number is " + number + ".");

JF 4-3 Copyright 2015, Oracle y/o sus afiliadas. Todos los derechos reservados. 42
Tipos de datos y operadores
Operador de conversin de tipos

Para convertir un valor doble a un ent, use (int) en frente del


valor.
Para obtener el resultado doble de una frmula para dirigirse
al contenedor de enteros, use el operador de conversin de
tipos (int) en frente del valor.
La conversin el el tipo de datos int truncar el valor.
De este modo, al convertir el literal doble 4,567 a int se
obtendr 4, y 9,01306 se convertir en 9.
int number;
number = (int)(Math.random() * 10);
System.out.println("The random number is " + number + ".");

JF 4-3 Copyright 2015, Oracle y/o sus afiliadas. Todos los derechos reservados. 43
Tipos de datos y operadores
Conversin de tipos de datos

Puede convertir un tipo de datos (primitivo o referencia) en


otro tipo de datos, simplemente al colocar el nombre del tipo
de datos entre parntesis, en frente del valor o variable,
como se indica en el siguiente ejemplo.
int number;
Object o;
char firstInitial = 'A';
number = (int)firstInitial;
o = (Object)firstInitial;

JF 4-3 Copyright 2015, Oracle y/o sus afiliadas. Todos los derechos reservados. 44
Tipos de datos y operadores
Conversin de tipos de datos String

Observe que la conversin no funciona en todas las


circunstancias.
Por ejemplo, al convertir un char a un String se obtiene un
error del compilador.
En situaciones como esta, necesitar recurrir a la conversin
de tipos de otra manera.
Existen mtodos en la librera java.lang para convertir
caracteres en strings.

JF 4-3 Copyright 2015, Oracle y/o sus afiliadas. Todos los derechos reservados. 45
Tipos de datos y operadores
Uso de las conversiones de tipos

El uso de las conversiones de tipos es otra opcin para


arreglar el problema de truncamiento con la frmula de
volumen que mostramos anteriormente.
Use la conversin de tipos para que uno de los enteros
literales se convierta en un doble.

double volume = (double) 1 / 3 * 3.14 * radius * radius * height;

JF 4-3 Copyright 2015, Oracle y/o sus afiliadas. Todos los derechos reservados. 46
Tipos de datos y operadores
Comprensin de tipos y conversiones

Cuando Java convierte un tipo primitivo ms pequeo a un


tipo primitivo ms grande, la conversin es implcita.

Conversin
double int
implcita
(doble)

double d1 = 5;

JF 4-3 Copyright 2015, Oracle y/o sus afiliadas. Todos los derechos reservados. 47
Tipos de datos y operadores
Comprensin de tipos y conversiones

Sin embargo, cuando Java convierte un tipo primitivo ms


grande en un tipo primitivo ms pequeo, la conversin debe
ser explcita mediante la conversin de tipos.
Java no convertir implcitamente un tipo ms grande a un
tipo ms pequeo, por falta de precisin.

Se requiere una
Double int x = (int)12.95;
int conversin
explcita
(doble)

JF 4-3 Copyright 2015, Oracle y/o sus afiliadas. Todos los derechos reservados. 48
Tipos de datos y operadores
Bsqueda a travs de la API de Java

Los ejemplos y ejercicios de este curso requerirn el uso de


mtodos en las clases de Matemtica y String de Java.
Puede encontrar una descripcin de todos los mtodos de
Java en la API de Java en lnea.
Al comprender cmo navegar en esta amplia librera de
mtodos y clases estndar podr escribir programas en Java y
volver a utilizar los bloques de cdigo que ya han sido
creados por otros.

JF 4-3 Copyright 2015, Oracle y/o sus afiliadas. Todos los derechos reservados. 49
Tipos de datos y operadores
Por qu utilizar la API de Java?

Un beneficio importante de tener acceso a la API de Java es


un concepto comn para los programadores, denominado
reutilizacin del cdigo.
En lugar de codificar los elementos en exceso, puede usar la
API para detectar cmo acceder al cdigo existente que hace
exactamente lo que usted desea.
Se perder menos tiempo en reproducir el cdigo existente y
podr programar de manera ms eficiente.

JF 4-3 Copyright 2015, Oracle y/o sus afiliadas. Todos los derechos reservados. 50
Tipos de datos y operadores
Revisin de la API de Java

Regrese a la API de Java utilizando un motor de bsqueda


para buscar esta interfaz.
Hay varias ediciones.
Revisin de la Edicin Estndar para Java 7:
http://docs.oracle.com/javase/7/docs/api/
Examine la clase de Matemtica.
Observe si puede encontrar un valor para PI y un mtodo
para calcular la raz a cuadrada de un nmero.

JF 4-3 Copyright 2015, Oracle y/o sus afiliadas. Todos los derechos reservados. 51
Tipos de datos y operadores
La clase de Matemtica y la API de Java

La versin de frame de la API contiene ventanas para los


paquetes, clases y especificaciones.
Paquetes
Especificaciones
detalladas

Clases

JF 4-3 Copyright 2015, Oracle y/o sus afiliadas. Todos los derechos reservados. 52
Tipos de datos y operadores
Prctica de tipos de datos y operadores
En una hoja, evale las siguientes sentencias Java y registre el
resultado.
double x = 3.25;
double y = -4.5;
int m = 23;
int n = 9;
System.out.println(x + m * y - (y + n) * x);
System.out.println(m / n + m % n);
System.out.println(5 * x - n / 5);
System.out.println(Math.sqrt(Math.sqrt(n)));
System.out.println((int)x);
System.out.println(Math.round(y));
double x = 3.25;
double y = -4.5;
int m = 23;
int n = 9;
System.out.println((int)Math.round(x) + (int)Math.round(y));
System.out.println(m + n);
System.out.println(1-1-((1-(1-(1-n)))));

JF 4-3 Copyright 2015, Oracle y/o sus afiliadas. Todos los derechos reservados. 53
Tipos de datos y operadores
Clase de Matemtica

Encuentre la clase de Matemtica en la ventana del frame de


clases.

Desplcese para ver una


lista de campos y mtodos
disponibles en esta clase.

JF 4-3 Copyright 2015, Oracle y/o sus afiliadas. Todos los derechos reservados. 54
Tipos de datos y operadores
Campo PI

Desplcese para encontrar el campo PI.


Para usar PI en un programa, especifique el nombre de la
clase (Matemtica) y PI separado por el operador punto.
Por ejemplo, este campo producir un clculo de volumen
ms preciso en nuestro ejemplo anterior si se usa de la
siguiente manera:
double volume = (double) 1 / 3 * Math.PI * radius * radius * height;

Campo PI con una descripcin

JF 4-3 Copyright 2015, Oracle y/o sus afiliadas. Todos los derechos reservados. 55
Tipos de datos y operadores
Clculo de races cuadradas
Desplcese para encontrar el mtodo para calcular las races
cuadradas.

Para calcular la raz cuadrada de 625, use el nombre de la


clase y el mtodo separados nuevamente por el operador
punto.
double answer = Math.sqrt(625);

El mtodo sqrt requiere un doble. Por qu el entero literal


625 no da error?

JF 4-3 Copyright 2015, Oracle y/o sus afiliadas. Todos los derechos reservados. 56
Tipos de datos y operadores
Solucin del clculo de races cuadradas

Pregunta: El mtodo sqrt requiere un doble.


Por qu el entero literal 625 no da error?
Solucin: Conversin implcita.
El int 625 se convierte implcitamente en un doble y de este
modo no se produce ningn error.

JF 4-3 Copyright 2015, Oracle y/o sus afiliadas. Todos los derechos reservados. 57
Tipos de datos y operadores
Terminologa

Los trminos clave usados en esta leccin son los siguientes:


operador aritmtico
operador de asignaciones
booleano
char
convenciones
declaracin

JF 4-3 Copyright 2015, Oracle y/o sus afiliadas. Todos los derechos reservados. 58
Tipos de datos y operadores
Terminologa

Los trminos clave usados en esta leccin son los siguientes:


doble
flotante
inicializacin
int. (entero)
literales
largo
orden de operacin
tipos de datos primitivos
JF 4-3 Copyright 2015, Oracle y/o sus afiliadas. Todos los derechos reservados. 59
Tipos de datos y operadores
Terminologa

Los trminos clave usados en esta leccin son los siguientes:


mbito
corto
truncamiento
Conversin (casting) de tipos
Conversin (conversion) de tipos
Variables

JF 4-3 Copyright 2015, Oracle y/o sus afiliadas. Todos los derechos reservados. 60
Tipos de datos y operadores
Resumen

En esta leccin, habr aprendido a:


Usar tipos de datos primitivos en cdigo Java
Especificar los literales para los tipos primitivos y Strings
Demostrar de qu manera se inicializan las variables
Describir el alcance de las reglas de un mtodo
Reconocer cundo una expresin requiere un tipo de
conversin

JF 4-3 Copyright 2015, Oracle y/o sus afiliadas. Todos los derechos reservados. 61
Tipos de datos y operadores
Resumen

En esta leccin, habr aprendido a:


Aplicar la conversin el cdigo Java
Usar operadores aritmticos
Usar el operador de asignaciones
Usar un mtodo de una clase de matemtica
Acceder al mtodo de una clase de matemtica de la API
de Java

JF 4-3 Copyright 2015, Oracle y/o sus afiliadas. Todos los derechos reservados. 62
Tipos de datos y operadores

You might also like