什么是Object类
Object类是所有类根类,其中也有很多方法。
Object类中的方法:
equals方法:
对象1.equals(对象2) ————比较的是两个对象的内存地址是否相同,返回boolean发现其实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));
}
}
toString方法:
对象.toString()————返回对象的所属类@地址哈希值
同样如果想让toString方法是我们想要的一些方法,也可以进行重载
以上仅仅是Object类中的一些方法而已。更多的参阅API
getClass方法:
对象.getClass()————返回是Class类型的对象。表示这个对象的所属类,如n1的所属类是Num;
这里的Class类是一种新的类,具体见下文。
Class类:
在Java中,当我们编写一个类,编译完成后,会生成.class文件,而这些class文件也同样有共性(如他们都有名称,都有方法等等),我们把它抽取出来定义一个叫Class类。其中Class类中有一个方法叫做getName().顾名思义返回对象的名称,具体用法见下:
首先为了调用这个Class类中的方法,必然要建立Class类的对象,通过Object的getClass方法可以与我们自己建立的类联系起来:
Num n1=new Num(4);
Class c=n1.getClass();
System.out.println(c.getName()); //返回的是Num