Está en la página 1de 18

23/01/2009

CONVERSIONES EN JAVA
Lic. Jorge Guerra Guerra

23/01/2009

CONVERSIONES DE TIPOS
Hay situaciones en las cuales se tiene un valor de
un tipo dado y se desea almacenar ese valor en
una variable de un tipo diferente.
 En
algunos tipos es posible almacenar
simplemente el valor sin una conversin de tipos; lo
que se denomina conversin automtica.
 Esto slo es posible en algn lenguaje de
programacin, si el compilador reconoce que la
variable destino tiene la suficiente precisin para
contener el valor origen.


Lic. Jorge Guerra

23/01/2009

TIPOS BSICOS EN JAVA

Lic. Jorge Guerra

23/01/2009

CONVERSIONES

Lic. Jorge Guerra

23/01/2009

FUNCIONES TOXXXSTRING


Los contenedores de datos int y long, permiten


cambiar de base los valores contenidos:


Lic. Jorge Guerra

Mtodos estticos
Retornan un String con el valor convertido a la base
deseada

String s3 = Integer.toHexString(254);
String s4 = Long.toOctalString(254);

23/01/2009

CONVERSIONES

Lic. Jorge Guerra

23/01/2009

OBJETOS CONTENEDORES DE DATOS

Lic. Jorge Guerra

23/01/2009

USO DE WRAPPERS


Todos los wrappers, excepto la clase Character,


proveen dos constructores.


Lic. Jorge Guerra

Uno que recibe el dato en su forma primitiva.


Uno que recibe el dato en String

Integer i1 = new Integer(42);


Integer i2 = new Integer("42");
Float f1 = new Float(3.14f);
Float f2 = new Float("3.14f");
Character c1 = new Character('c');
Boolean b = new Boolean("false");

23/01/2009

MTODOS XXXVALUE
xxxValue define una familia de mtodos sin
argumentos y que devuelven un tipo de dato
primitivo (36 en total).
 tiles cuando se desea convertir un nmero a
diferentes tipo de datos primitivos.
Integer i2 = new Integer(42);
byte b = i2.byteValue();
short s = i2.shortValue();
double d = i2.doubleValue();
Float f2 = new Float(3.14f);
short s = f2.shortValue(); //s=3 truncado


Lic. Jorge Guerra

23/01/2009

FUNCIONES PARSEXXX





Lic. Jorge Guerra

Familia de mtodos que reciben un String y lo


pasan a un tipo de dato primitivo. Estn presentes
en cada clase wrapper (6 en total).

double d4 = Double.parseDouble("3.14");
long L2 = Long.parseLong("101010", 2);

10

10

23/01/2009

FUNCIN VALUEOF


Son mtodos estticos que se proveen en la


mayora de las clases de wrappers.

Su funcin es interpretar un argumento String como


un objeto.
Algunas clases de wrappers tienen esta funcin con un
argumento adicional que indica la base de conversin.

Lic. Jorge Guerra

Integer i2 = Integer.valueOf("101011", 2); //43 en base 2


Float f2 = Float.valueOf("3.14f");

11

11

23/01/2009

FORMAS DE CONVERSIN


Conversin de String a tipo de dato primitivo:




Si falla arroja una excepcin:

NumberFormatException.

Se puede hacer la conversin mediante el constructor, o


llamando un mtodo esttico que provee cada clase.
Cual es ms optimo?

Lic. Jorge Guerra

Integer objInt = new Integer("42");


int i = objInt.getIntValue();
Int i = Integer.parseInt(42);
12

12

23/01/2009

CONVERSIONES

Lic. Jorge Guerra

13

13

23/01/2009

CONVERSIONES

Lic. Jorge Guerra

14

14

23/01/2009

FUNCIONES TOSTRING


Existen dos tipos de funciones toString en los


contenedores de datos:
toString que sobre escribe el mtodo toString de la
clase padre Object.
public String toString(){}
 Requiere instanciacin
 Devuelve la representacin en String del valor del tipo de dato
primitivo


Lic. Jorge Guerra

public static String toString(String str):


sobrecarga de la funcion toString original, slo que no requiere
instanciacin.
 Existe una sobrecarga que recibe como segundo argumento
la base para la conversin.


15

15

23/01/2009

Lic. Jorge Guerra

16

16

23/01/2009

Lic. Jorge Guerra

17

17

23/01/2009

CONVERSION DE OBJETOS
Utiliza instanceof para verificar el tipo de objeto.
 Restablecer la funcionalidad total de un objeto
mediante una conversin.
 Comprobar la conversin apropiada con:
 La conversin hacia clases superiores en la
jerarqua se hace implcitamente (con una
asignacin).


Lic. Jorge Guerra

18

18