qué es java.lang? clase object wrapper classes utilidades de conversión de tipos clase string...

38

Upload: macaria-montejano

Post on 16-Feb-2015

87 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Qué es java.lang? Clase Object Wrapper Classes Utilidades de Conversión de tipos Clase String Clase StringBuffer Clase Math
Page 2: Qué es java.lang? Clase Object Wrapper Classes Utilidades de Conversión de tipos Clase String Clase StringBuffer Clase Math
Page 3: Qué es java.lang? Clase Object Wrapper Classes Utilidades de Conversión de tipos Clase String Clase StringBuffer Clase Math

Qué es java.lang? Clase Object Wrapper Classes Utilidades de Conversión de tipos Clase String Clase StringBuffer Clase Math

Page 4: Qué es java.lang? Clase Object Wrapper Classes Utilidades de Conversión de tipos Clase String Clase StringBuffer Clase Math

Se importa automáticamente en tiempo de compilación.

Contiene a la clase Object y las Wrapper

Provee objetos para interactuar con la JVM

Contiene clases que proveen:₋ los streams de entrada, salida y error (System), ₋ manejo de cadena de caracteres (String, StringBuffer) ₋ funciones matemáticas (Math)

Page 5: Qué es java.lang? Clase Object Wrapper Classes Utilidades de Conversión de tipos Clase String Clase StringBuffer Clase Math
Page 6: Qué es java.lang? Clase Object Wrapper Classes Utilidades de Conversión de tipos Clase String Clase StringBuffer Clase Math

Método Descripción

boolean equals(Object o) Define si dos objetos son equivalentes.

void finalize() Llamado por el Garbage Collector, cuando el Garbage Collector detecta que un objeto no puede ser referenciado.

int hashCode() Retorna un código para un objeto, para que el objeto pueda ser usado en una clase Collection que utilice un Hashtable, HashMap o HashSet.

final void notify() Activa un hilo que esta esperando para obtener el bloqueo de un objeto.

final void notifyAll() Activa todos los hilos que están esperando para obtener el bloqueo de un objeto.

final void wait() Provoca que el hilo actual espere hasta que otro hilo ejecute el método notify o notifyAll.

String toString() Retorna una “Representación de texto” del objeto.

Page 7: Qué es java.lang? Clase Object Wrapper Classes Utilidades de Conversión de tipos Clase String Clase StringBuffer Clase Math

Los tipos primitivos no son objetos Para poder manipularlos como objetos java.lang

provee clases wrapper para cada tipo primitivo

Page 8: Qué es java.lang? Clase Object Wrapper Classes Utilidades de Conversión de tipos Clase String Clase StringBuffer Clase Math

Todas las clases Wrapper son inmutables (su estado no puede cambiar)

Adicionalmente definen constantes útiles

Page 9: Qué es java.lang? Clase Object Wrapper Classes Utilidades de Conversión de tipos Clase String Clase StringBuffer Clase Math

Todas las clases wrapper a excepción de Character tienen 2 constructores:

₋ Uno que recibe el tipo primitivo que se quiere construir

₋ Otro que recibe la representación en String del tipo que se quiere construir

Integer i1 = new Integer(42);Integer i2 = new Integer("42");oFloat f1 = new Float(3.14f);Float f2 = new Float("3.14f");

Page 10: Qué es java.lang? Clase Object Wrapper Classes Utilidades de Conversión de tipos Clase String Clase StringBuffer Clase Math

La clase Character provee un solo constructor que recibe un char: Character c1 = new Character('c');

El constructor del objeto Boolean recibe un boolean o un string (case insensitive) con el valor “true” o “false”

El objeto Boolean no puede ser usado en una condición:Boolean b = new Boolean(“true”);

if (b) { …} // No compila, espera un boolean y no un Boolean

Page 11: Qué es java.lang? Clase Object Wrapper Classes Utilidades de Conversión de tipos Clase String Clase StringBuffer Clase Math

Los métodos estáticos valueOf( ) presentes en la mayoría de las clases wrapper, proveen otra forma de construir estos objetos:

valueOf(String arg0, int base) // convierte 101011 a 43 y

// asigna el valor 43 a i2 Integer i2 = Integer.valueOf("101011", 2);

valueOf(String arg0) // asigna 3.14 a f2 Float f2 = Float.valueOf("3.14f");

Page 12: Qué es java.lang? Clase Object Wrapper Classes Utilidades de Conversión de tipos Clase String Clase StringBuffer Clase Math

Una funcionalidad importante de los wrappers es convertir tipos de datos

xxxValue()

Cuando se quiera convertir un wrapper a un tipo primitivo se puede utilizar alguno de los métodos xxxValue()

Integer i2 = new Integer(42); // crea un nuevo objeto wrapper

byte b = i2.byteValue(); // convierte el valor de i2 a un byteshort s = i2.shortValue(); // otro de los métodos xxxValue double d = i2.doubleValue();

Page 13: Qué es java.lang? Clase Object Wrapper Classes Utilidades de Conversión de tipos Clase String Clase StringBuffer Clase Math
Page 14: Qué es java.lang? Clase Object Wrapper Classes Utilidades de Conversión de tipos Clase String Clase StringBuffer Clase Math
Page 15: Qué es java.lang? Clase Object Wrapper Classes Utilidades de Conversión de tipos Clase String Clase StringBuffer Clase Math
Page 16: Qué es java.lang? Clase Object Wrapper Classes Utilidades de Conversión de tipos Clase String Clase StringBuffer Clase Math

Ambos reciben un String como argumento

Lanzan una NumberFormatException si el String no tiene la forma esperada

Pueden convertir Strings en bases diferentes

La diferencia es que:₋ parseXxx() retorna un tipo primitivo₋ valueOf retorna un objeto wrapper

Page 17: Qué es java.lang? Clase Object Wrapper Classes Utilidades de Conversión de tipos Clase String Clase StringBuffer Clase Math

La clase Object tiene el método toString(), heredado por todas las demás clases

La idea del método es dar una representación del objeto que tenga cierto sentido

Adicionalmente los wrappers agregan un toString estático que recibe el tipo primitivo correspondiente y retorna el String que lo representa

Page 18: Qué es java.lang? Clase Object Wrapper Classes Utilidades de Conversión de tipos Clase String Clase StringBuffer Clase Math

Las clases Integer y Long permiten convertir números en base 10 a otras bases

Estos métodos toXxxString toman un int o un long y retornan un String que lo representa:

String s3 = Integer.toHexString(254); // convierte 254 a hexaSystem.out.println("254 in hex = " + s3); // el resultado es "254 in hex = fe"String s4 = Long.toOctalString(254); // convierte 254 a octalSystem.out.println("254 in octal = "+ s4); // el resultado es "254 in octal =

376"

Page 19: Qué es java.lang? Clase Object Wrapper Classes Utilidades de Conversión de tipos Clase String Clase StringBuffer Clase Math

Problema (versiones previas a J2SE5.0)

₋ Pasar de un tipo primitivo a tipo wrapper y viceversa.

₋ La forma de hacerlo era:Integer j = new Integer(12);Int I = j.intValue();

₋ Problemas: por ejemplo al manejar colecciones con tipos primitivos. Estas solo aceptan objetos.

Page 20: Qué es java.lang? Clase Object Wrapper Classes Utilidades de Conversión de tipos Clase String Clase StringBuffer Clase Math

Solución – El compilador trabaja por nosotros:

Byte byteObj = 22; // Autoboxing conversionint i = byteObj // Unboxing conversion

ArrayList<Integer> al = new ArrayList<Integer>();al.add(22); // Autoboxing conversion

Page 21: Qué es java.lang? Clase Object Wrapper Classes Utilidades de Conversión de tipos Clase String Clase StringBuffer Clase Math

Los Strings son objetos inmutables.

Cada carácter en un String es un char Unicode de 16 bits.

En Java los Strings son objetos

String s = new String();

s = “abcdef”

Variantes

String s = new String(“abcdef”);

String s = “abcdef”

Page 22: Qué es java.lang? Clase Object Wrapper Classes Utilidades de Conversión de tipos Clase String Clase StringBuffer Clase Math

El objeto no puede cambiar La referencia al objeto si puede cambiar

Page 23: Qué es java.lang? Clase Object Wrapper Classes Utilidades de Conversión de tipos Clase String Clase StringBuffer Clase Math
Page 24: Qué es java.lang? Clase Object Wrapper Classes Utilidades de Conversión de tipos Clase String Clase StringBuffer Clase Math
Page 25: Qué es java.lang? Clase Object Wrapper Classes Utilidades de Conversión de tipos Clase String Clase StringBuffer Clase Math
Page 26: Qué es java.lang? Clase Object Wrapper Classes Utilidades de Conversión de tipos Clase String Clase StringBuffer Clase Math

public char charAt(int index) public String concat(String s) public boolean equalsIgnoreCase(String s) public int length() public String replace(char old, char new) public String substring(int begin) public String substring(int begin, int end) public String toLowerCase() public String toUpperCase() public String trim()

Page 27: Qué es java.lang? Clase Object Wrapper Classes Utilidades de Conversión de tipos Clase String Clase StringBuffer Clase Math

Utilizada cuando se deben realizar muchas modificaciones a una cadena de caracteres

Si bien los Strings son inmutables, el StringBuffer puede ser modificado sin dejar una gran cantidad de Strings inutilizados en memoria

Page 28: Qué es java.lang? Clase Object Wrapper Classes Utilidades de Conversión de tipos Clase String Clase StringBuffer Clase Math

Utilizando StringBuffer:

StringBuffer sb = new StringBuffer("abc");sb.append("def");System.out.println("sb = " + sb); // la salida es "sb = abcdef"

Page 29: Qué es java.lang? Clase Object Wrapper Classes Utilidades de Conversión de tipos Clase String Clase StringBuffer Clase Math

public synchronized StringBuffer append(String s)public synchronized StringBuffer insert(int offset,

Stringpublic synchronized StringBuffer reverse()

Page 30: Qué es java.lang? Clase Object Wrapper Classes Utilidades de Conversión de tipos Clase String Clase StringBuffer Clase Math

Utilizada para realizar operaciones matemáticas.

Define aproximaciones para las constantes matemáticas pi y e₋ public final static double Math.PI₋ public final static double Math.E

Todos los métodos definidos en Math son static.

Page 31: Qué es java.lang? Clase Object Wrapper Classes Utilidades de Conversión de tipos Clase String Clase StringBuffer Clase Math

abs() – retorna el valor absoluto.

ceil() – retorna el redondeo hacia arriba.

floor() – retorna el redondeo hacia abajo.

Page 32: Qué es java.lang? Clase Object Wrapper Classes Utilidades de Conversión de tipos Clase String Clase StringBuffer Clase Math

max() – retorna el máximo

min() – retorna el mínimo

Page 33: Qué es java.lang? Clase Object Wrapper Classes Utilidades de Conversión de tipos Clase String Clase StringBuffer Clase Math

random()₋ Retorna un double entre 0.0 y 1.0

round()₋ Redondea al valor más cercano₋

sin()₋ representa un ángulo en radianes. Los grados pueden convertirse

a radianes utilizando Math.toRadians(double g)

Page 34: Qué es java.lang? Clase Object Wrapper Classes Utilidades de Conversión de tipos Clase String Clase StringBuffer Clase Math

cos() – función coseno tan() - función tangente sqrt() – función raíz cuadrada

₋ Retorna NaN (“Not a Number”) en lugar de un resultado complejo₋ public static double sqrt(double a)

toDegrees() ₋ Recibe un argumento representando un ángulo en radianes₋ public static double toDegrees(double a)

toRadians()₋ Recibe un argumento representando un ángulo en grados₋ public static double toRadians(double a)

Page 35: Qué es java.lang? Clase Object Wrapper Classes Utilidades de Conversión de tipos Clase String Clase StringBuffer Clase Math
Page 36: Qué es java.lang? Clase Object Wrapper Classes Utilidades de Conversión de tipos Clase String Clase StringBuffer Clase Math
Page 37: Qué es java.lang? Clase Object Wrapper Classes Utilidades de Conversión de tipos Clase String Clase StringBuffer Clase Math

Qué es java.lang? Clase Object y sus características Wrapper Classes: qué son? Cómo se usan? Utilidades de Conversión de tipos Clase String: características Clase StringBuffer: características Clase Math: características

Page 38: Qué es java.lang? Clase Object Wrapper Classes Utilidades de Conversión de tipos Clase String Clase StringBuffer Clase Math

Thinking in Java₋ Bruce Eckel

The Java Tutorial₋ http://download.oracle.com/javase/tutorial/