Object类是一个比较特殊的类,是所有类的超级父类,java中如果一个类没有用 extends关键字 明确指出继承于某个类,那么它默认继承Object类。这里主要总结Object类中的三个常用方法:getClass()、toString()、equals()。
getClass()
public class Dome { @SuppressWarnings("deprecation") public static void main(String[] args) { Object[] arr=new Object[4]; arr[0]= new Object(); arr[1]= new String("ddd"); arr[2]= new Integer(22); arr[3]= new Dome(); for (Object object : arr) { System.out.println(object.getClass()); } } }
首先是我先创建了object类的一个长度为4的数组,也传入了一写常见的实例。
toString()
如果不重写类的toString方法,就会默认的输入类的16进制的哈希码
public class Dome { @SuppressWarnings("deprecation") public static void main(String[] args) { Object[] arr=new Object[4]; arr[0]= new Object(); arr[1]= new String("ddd"); arr[2]= new Integer(22); arr[3]= new Dome(); for (Object object : arr) { System.out.println(object.toString()); } } }
上面为什么能输出来 ddd和22呢,因为String类和Integer默认的重写了它们的toString方法。
equals()
我个人对equals方法和 “==”的之前理解是俩种的含义是一样的,可是运用到代码中发现截然不同,equals比较的是俩个值是否一样, 而俩个等于号是 比较的俩个对比的内存是否一致~
如:
>class Value { int i; } public class EqualsMethod2 { public static void main(String[] args) { Value v1 = new Value(); Value v2 = new Value(); v1.i = v2.i = 100; System.out.println(v1.equals(v2));//(1)flase System.out.println(v1 == v2);//(2)true } }
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/219645.html原文链接:https://javaforall.net
