
Object es la superclase base de todas las clases de Java; toda clase definida en Java hereda de la clase Object y en consecuencia toda variable referencia a una clase se convierte, automáticamente, al tipo Object.
Ejemplo
Object g;
String cd = new String(«Manual Java»);
Integer y = new Integer(72); // objeto inicializado a 72
g = cd; // g referencia al mismo objeto que cd
g = y; // g ahora referencia a un objeto Integer
La clase Object tiene dos métodos importantes: equals() y toString(). Generalmente, se redefinen en las clases para especializarlos.
equals()
Compara el objeto que hace la llamada con el objeto que se pasa como argumento, devuelve true si son iguales.
boolean equals(object k);
El siguiente ejemplo compara dos objetos, la comparación es true si contienen la misma cadena.
String argumento = new String(«Feliz dia papa»);
String a = «Vida bella»;
if(argumento.equals(a)) // no se cumple, devuelve false
toString()
Este método construye una cadena que es la representación del objeto, devuelve la cadena. Normalmente se redefine en las clases para así dar detalles explícitos de los objetos de la clase.
String toString();
En el siguiente ejemplo un objeto Double llama al método toString() y asigna la cadena a una variable.
Double r = new Double(2.5);
String respuesta;
respuesta = r.toString();
Operador instanceof
Con frecuencia se necesita conocer la clase de la que es instancia un objeto. Se tiene que tener en cuenta que en las jerarquías de clases se dan conversiones automáticas entre clases derivadas y su clase base, en particular, cualquier referencia de tipo clase se puede convertir a una variable de tipo Object.
Con el operador instanceof se determina la clase a la que pertenece un objeto, tiene dos operandos, el primero un objeto y el segundo una clase. Evalúa la expresión a true si el primer operando es una instancia del segundo. La siguiente función tiene un argumento de tipo Object, por consiguiente puede recibir cualquier referencia y selecciona la clase a la que pertenece el objeto transmitido (String, Vector, . . .):
public hacer(Object g){
if(g instanceof String)
. . .
else if (g instanceof Vector)
. . .
A recordar
El operador instanceof se puede considerar un operador relacional, su evaluación da como resultado un valor de tipo boolean.