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