/*
Object:所有类的超类。
所有对象都具备的方法定义在该类中。
1.equals.
*/
class Demo //extends Object
{
/*
public boolean equals(Object obj)
{
return this == obj;
}
*/
private int num ;
Demo(){}
Demo(int num)
{
this.num = num;
}
/*
比较Demo对象中的num是否相同。既然父类中已经定义了比较元素相同的功能。
那么子类就不需要在重新定义,直接覆盖父类中的方法,定义自己的内容即可。
*/
public boolean equals(Object obj)//Object obj = new Demo(4);
{
if(!(obj instanceof Demo))
return false;//throw new ClassCastException("类型错误!");
Demo d = (Demo)obj;
return this.num == d.num;
}
}
class Person
{
/*
通常一个类都会覆盖toString方法。建立该类自己的对应的字符串表现形式。
*/
public String toString()
{
return "person haha";
}
}
class ObjectDemo
{
public static void main(String[] args)
{
Person p1 = new Person();
Person p2 = new Person();
Class c1 = p1.getClass();//获取person对象所属的字节码文件对象。这个对象的类型Class.
Class c2 = p2.getClass();
System.out.println(c1==c2);
System.out.println(c1.equals(c2));
System.out.println(c1.getName());
System.out.println(Integer.toHexString(p1.hashCode()));//26752749
System.out.println(p1);//Person@19836ed
System.out.println(p1.toString());//Person@19836ed
// String s = p1.toString();
// Demo d1 = new Demo(4);
// Demo d2 = new Demo(4);
// System.out.println(d1.equals(d2));
// Demo d1 = new Demo();
// Demo d2 = new Demo();
// Person p = new Person();
// boolean b = d1.equals(p);
// System.out.println("b="+b);
}
}