Clase Object
La clase Object es la clase raíz de todo el árbol de la jerarquía de clases Java, y proporciona un cierto número de métodos de utilidad general que pueden utilizar todos los objetos.
Los métodos de la clase Object en Java
Los métodos públicos y protegidos de la clase Object son:
-public boolean equals(Object obj): compara si dos objetos son iguales, por defecto un objeto es igual solamente a si mismo.
if (uno.equals(otroUno)) System.out.println("Los objetos son Iguales");
-public int hashCode(): Devuelve un valor de código hash para el objeto. Este método se apoya en beneficio de tablas hash tales como los proporcionados por java.util.Hashtable.
public static void main(String[] args) { Demo demoA = new Demo(20); Demo demoB = new Demo(20); System.out.println(demoA.equals(demoB)); System.out.println(demoA.hashCode()); System.out.println(demoB.hashCode()); }
-protected Object clone() throws CloneNotSuportedException: devuelve una copia binaria del objeto, al parecer al hacer la copia hace referencia a una nueva posición de memoria.
import java.util.GregorianCalendar; public class ObjectDemo { public static void main(String[] args) { // create a gregorian calendar, which is an object GregorianCalendar cal = new GregorianCalendar(); // clone object cal into object y GregorianCalendar y = (GregorianCalendar) cal.clone(); // print both cal and y System.out.println("" + cal.getTime()); System.out.println("" + y.getTime()); } }
-public final Class getClass(): devuelve el objeto del tipo Class que representa dicha clase durante la ejecución, es decir devuelve el tipo de clase al que pertenece.
void PrintClassName(Object obj) { System.out.println("La clase del Objeto es " + obj.getClass().getName()); }
-protected void finalize() throws Throwable: se usa para finalizar el objeto, es decir, se avisa al administrador de la memoria que ya no se usa dicho objeto, y se puede ejecutar código especial antes de que se libere la memoria.
public class ObjectDemo extends GregorianCalendar { public static void main(String[] args) { try { // create a new ObjectDemo object ObjectDemo cal = new ObjectDemo(); // print current time System.out.println("" + cal.getTime()); // finalize cal System.out.println("Finalizing..."); cal.finalize(); System.out.println("Finalized."); } catch (Throwable ex) { ex.printStackTrace(); } } }
-public String toString():devuelvo una cadena describiendo el objeto.
System.out.println(Thread.currentThread().toString()); System.out.println(new Integer(44).toString());las dos líneas anteriores darían la siguiente salida. Thread[main,5,main]
-void nativa public final notify(): Se despierta un solo hilo que está esperando en el monitor de este objeto. Un subproceso espera en el monitor de un objeto llamando a uno de los de espera métodos.
import java.lang.reflect.*; public class ClassDemo { public static void main(String[] args) { // class object associated with class Long Class cls = Long.class; Method[] m = cls.getMethods(); for(int i = 0; i < m.length; i++) { // returns te declaring class Class dec = m[i].getDeclaringClass(); // displays all methods System.out.println("Method = " + m[i].toString()); System.out.println(" Declaring class: " + dec.toString()); } } }
-final public void wait (): Espera que se le notifique por otro subproceso de un cambio en este objeto.
public class ThreadA { public static void main(String[] args) { ThreadB b = new ThreadB(); b.start(); System.out.println("Total is: " + b.total); } } class ThreadB extends Thread { int total; @Override public void run() { for (int i = 0; i < 100; i++) { total += i; } } }http://java-white-box.blogspot.com.es/2013/12/javaplayer-la-clase-object-en-java-los.html
http://dis.um.es/~bmoros/Tutorial/parte5/cap5-10.html
http://www.javahispano.org/certificacion/2011/9/28/genericos-y-colecciones-parte-1-sobreescribiendo-equals-y-ha.html
http://www.tutorialspoint.com/java/lang/object_clone.htm
http://www.tutorialspoint.com/java/lang/object_finalize.htm