Bueno, antes que nada conviene saber que en Java hay un montón de clases ya definidas y utilizables.
Éstas vienen en las bibliotecas estándar:
- java.lang - clases esenciales, números, strings, objetos, compilador, runtime, seguridad y threads (es el único paquete que se incluye automáticamente en todo programa Java)
- java.io - clases que manejan entradas y salidas
- java.util - clases útiles, como estructuras genéricas, manejo de fecha, hora y strings, número aleatorios, etc.
- java.net - clases para soportar redes: URL, TCP, UDP, IP, etc.
- java.awt - clases para manejo de interface gráfica, ventanas, etc.
- java.awt.image - clases para manejo de imágenes
- java.awt.peer - clases que conectan la interface gráfica a implementaciones dependientes de la plataforma (motif, windows)
- java.applet - clases para la creación de applets y recursos para reproducción de audio.
Para que se den una idea, los números enteros, por ejemplo, son "instancias" de una clase no redefinible,
Integer, que desciende de la clase
Number e implementa los siguientes atributos y métodos:
public final class java.lang.Integer extends java.lang.Number {
Atributos
public final static int MAX_VALUE;
public final static int MIN_VALUE;
Métodos Constructores
public Integer(int value);
public Integer(String s);
Más Métodos
public double doubleValue();
public boolean equals(Object obj);
public float floatValue();
public static Integer getInteger(String nm);
public static Integer getInteger(String nm, int val);
public static Integer getInteger(String nm, Integer val);
public int hashCode();
public int intValue();
public long longValue();
public static int parseInt(String s);
public static int parseInt(String s, int radix);
public static String toBinaryString(int i);
public static String toHexString(int i);
public static String toOctalString(int i);
public String toString();
public static String toString(int i);
public static String toString(int i, int radix);
public static Integer valueOf(String s);
public static Integer valueOf(String s, int radix);
}
Mucho, no?
Esto también nos da algunas ideas:
- la estructura de una clase
- caramba, hay métodos repetidos!
De la estructura enseguida hablaremos; en cuanto a los métodos repetidos (como parseInt
por ejemplo), al llamarse al método el compilador decide cuál de las implementaciones del mismo usar basándose en la cantidad y tipo de parámetros que le pasamos. Por ejemplo, parseInt("134") y parseInt("134",16), al compilarse, generarán llamados a dos métodos distintos.