Object类是所有类根类,其中也有很多方法。
发现其实equals方法有时候并不是我们想要的,我们想要的可能是比较两个不同对象之间的数据是否相同。
因此我们可以对equals在子类中进行重载,如下
class Num { int num; Num(int num) { this.num=num; } public boolean equals(Object obj) //这里是个多态特性,向上转型 { if(obj instanceof Num) { Num x=(Num)obj; //要和Num类内数据比较要强转成Num类,向下转型 return this.num==x.num; } else return false; } } class ObjectDemo { public static void main(String[] args) { Num n1=new Num(4); Num n2=new Num(6); System.out.println(n1.equals(n2)); } }
对象.getClass()————返回是Class类型的对象。表示这个对象的所属类,如n1的所属类是Num;
这里的Class类是一种新的类,具体见下文。
其中Class类中有一个方法叫做getName().顾名思义返回对象的名称,具体用法见下:
首先为了调用这个Class类中的方法,必然要建立Class类的对象,通过Object的getClass方法可以与我们自己建立的类联系起来:
Num n1=new Num(4); Class c=n1.getClass(); System.out.println(c.getName()); //返回的是Num
原文:http://blog.csdn.net/wknlm0001/article/details/18274741