TutorJava Nivel Básico

La clase Object est� situada en la parte m�s alta del �rbol de la herencia en el entorno de desarrollo de Java. Todas las clases del sistema Java son descendentes (directos o indirectos) de la clase Object. Esta clase define los estados y comportamientos b�sicos que todos los objetos deben tener, como la posibilidad de compararse unos con otros, de convertirse a cadenas, de esperar una condici�n variable, de notificar a otros objetos que la condici�n varible a cambiado y devolver la clase del objeto.

.�El m�todo equals()

equals() se utiliza para comparar si dos objetos son iguales. Este m�todo devuelve true si los objetos son iguales, o false si no lo son. Observe que la igualdad no significa que los objetos sean el mismo objeto. Consideremos este c�digo que compara dos enteros.

Integer uno = new Integer(1), otroUno = new Integer(1);

if (uno.equals(otroUno))
    System.out.println("Los objetos son Iguales");

Este c�digo mostrar� Los objetos son Iguales aunque uno y otroUno referencian a dos objetos distintos. Se les considera iguales porque su contenido es el mismo valor entero.

Las clases deber�an sobreescribir este m�todo proporcionando la comprobaci�n de igualdad apropiada. Un m�todo equals() deber�a comparar el contenido de los objetos para ver si son funcionalmente iguales y devolver true si es as�.

.�El m�todo getClass()

El m�todo getClass() es un m�todo final (no puede sobreescribirse) que devuelve una representaci�n en tiempo de ejecuci�n de la clase del objeto. Este m�todo devuelve un objeto Class al que se le puede pedir varia informaci�n sobre la clase, como su nombre, el nombre de su superclase y los nombres de los interfaces que implementa. El siguiente m�todo obtiene y muestra el nombre de la clase de un objeto.

void PrintClassName(Object obj) {
    System.out.println("La clase del Objeto es " +
		obj.getClass().getName());
}

Un uso muy manejado del m�todo getClass() es crear un ejemplar de una clase sin conocer la clase en el momento de la compilaci�n. Este m�todo de ejemplo, crea un nuevo ejemplar de la misma clase que obj que puede ser cualquier clase heredada desde Object (lo que significa que podr�a ser cualquier clase).

Object createNewInstanceOf(Object obj) {
    return obj.getClass().newInstance();
}

.�El m�todo toString()

Este m�todo devuelve una cadena de texto que representa al objeto. Se puede utilizar toString para mostrar un objeto. Por ejemplo, se podr�a mostrar una representaci�n del Thread actual de la siguiente forma.

System.out.println(Thread.currentThread().toString());
System.out.println(new Integer(44).toString());

La representaci�n de un objeto depende enteramente del objeto. El String de un objeto entero es el valor del entero mostrado como texto. El String de un objeto Thread contiene varios atributos sobre el thread, como su nombre y prioridad. Por ejemplo, las dos l�neas anteriores dar�an la siguiente salida.

Thread[main,5,main]
4

El m�todo toString() es muy �til para depuraci�n y tambi�n puede sobreescribir este m�todo en todas las clases.

.�Otros m�todos de Object cubiertos en otras lecciones o secciones

La clase Object proporciona un m�todo, finalize() que limpia un objeto antes de recolectar la basura. Este m�todo se explica en la lecci�n Eliminar Objetos no Utilizados. Tambi�n en: Escribir un M�todo finalize() puedes ver c�mo sobreescribir este m�todo para manejar las necesidades de finalizaci�n de las clases

La clase Object tambi�m proporciona otros cinco m�todos.

  • notify()
  • notifyAll()
  • wait() (tres versiones)

que son cr�ticos cuando se escriben programas Java con m�ltiples thread. Estos m�todos ayudan a asegurarse que los thread est�n sincronizados y se cubren en Threads de Control.

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP