Object类

xiaoxiao2021-02-28  11

 Object类

A.所属包   java.lang

B.声明   public class Object

C.概述   是所有类的父类

D.构造方法:   Object()

E.常用成员方法   a.protected Object clone()     创建并返回该对象的一个副本,需要实现Cloneable接口重写此方法   b.public boolean equals(Object obj)      判断两个对象地址值是否相等,如果子类想要判断内容是否相等需要重写此方法   c.protected void finalize()      当垃圾回收器确定不存在该对象的更多引用时,由对象的垃圾回收器调用此方法回收对象,但回收时间不确定   d.public Class<?> getClass()      返回该对象所在类的字节码文件对象   e.public int hashCode()      返回该对象的哈希码值   f.public String toString()      返回该对象的字符串表示,即:      this.getClass().getName()+"@"+Integer.toHexString(this.hashCode())

Java初高级一起学习分享,共同学习才是最明智的选择,喜欢的话可以我的学习群64弍46衣3凌9,或加资料群69似64陆0吧3

F.注意事项   a.Object类时所有类的父类   b.子类如果没有重写equals()方法默认比较的是地址值   c.直接输出一个对象名,其实默认是调用该对象所在类的toString()方法   d.==和equals的区别?      ==用于基本类型是比较值,用于引用类型是比较地址值      euqals只能用于引用类型,默认比较地址值   e.关于hashCode()与equals()      1.如果两个对象equals,Java运行时环境会认为他们的hashcode一定相等      2.如果两个对象不equals,但hashcode可能相等      3.如果两个对象hashcode相等,但不一定equals      4.如果两个对象hashcode不相等,肯定不equals   G.示例

class MyObject implements Cloneable//这里实现了Cloneable接口,重写了clone()方法 { protected Object clone() { return this; } } class MyObjectTest { public static void main(String[] args) { MyObject mobj1=new MyObject(); MyObject mobj2=new MyObject(); System.out.println(mobj1==mobj1.clone());//true System.out.println(mobj1.equals(mobj2));//false System.out.println(mobj1.hashCode());//697960108(每个人可能相同) System.out.println(mobj1.toString());//object.MyObject@299a06ac(每个人可能不相同) } }

转载请注明原文地址: https://www.6miu.com/read-2650341.html

最新回复(0)