Java中所有的类都直接或者间接的继承自Object。所以java有一句话是一切接对象。
当我们定义的类没有显示的继承任何类的时候,jvm在编译时会自动默认将该类继承自Object。这个是一个强制性的。所以,通常我们不需要显示的继承Object。
Object方法
clone()方法
equals(Object obj)方法
finalize()方法
getClass()方法
hashCode()方法
wait() notify()方法
toString()方法
toString()方法
public String toString():
在Object中该方法返回的字符串为该对象的“句柄”。格式为"类名@hashcode"。
java定义Object的toString方法,希望我们在需要的时候可以重写。
该方法的真正意图是返回能够描述该对象的一个字符串。
equals方法
比较两个对象内容是否相等。
Object对该方法的实现就是使用"=="实现的。所以毫无意义。
若要判断两个对象内容是否相同,应重写该方法。定义对象内容的比较规则。
"=="与"equals"的区别:
1. "=="比较是否为同一个对象
2. "equals"比较两个对象内容是否一致
重写equals方法,定义内容相同的比较规则
public boolean equals(Object obj) { if(obj == null){ return false; } if(this == obj){ return true; } if(obj instanceof Point){ Point p = (Point)obj; return this.x == p.x && this.y == p.y; } return false; }
hashcode方法
public int hashcode() 返回一个int值。该方法在具有哈希算法的地方非常有用。
两个对象相同时返回相同的hashCode值
两个对象不同时返回不同的hashCode值
clone方法
public Object clone()
该方法返回当前对象的一个副本。渐层复制实现。
wait notify
参考链接:http://developer.51cto.com/art/201508/487488.htm