Date post: | 16-Feb-2015 |
Category: |
Documents |
Upload: | macaria-montejano |
View: | 74 times |
Download: | 2 times |
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)
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.
Los tipos primitivos no son objetos Para poder manipularlos como objetos java.lang
provee clases wrapper para cada tipo primitivo
Todas las clases Wrapper son inmutables (su estado no puede cambiar)
Adicionalmente definen constantes útiles
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");
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
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");
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();
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
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
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"
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.
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
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”
El objeto no puede cambiar La referencia al objeto si puede cambiar
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()
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
Utilizando StringBuffer:
StringBuffer sb = new StringBuffer("abc");sb.append("def");System.out.println("sb = " + sb); // la salida es "sb = abcdef"
public synchronized StringBuffer append(String s)public synchronized StringBuffer insert(int offset,
Stringpublic synchronized StringBuffer reverse()
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.
abs() – retorna el valor absoluto.
ceil() – retorna el redondeo hacia arriba.
floor() – retorna el redondeo hacia abajo.
max() – retorna el máximo
min() – retorna el mínimo
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)
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)
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
Thinking in Java₋ Bruce Eckel
The Java Tutorial₋ http://download.oracle.com/javase/tutorial/