这是1段比较类中数据是否相同的代码
我发现在Demo中定义a的时候如果加上了static修饰符,那么在创建对象的时候即使2个对象中的a赋的值是不同的,但是返回结果仍然是true。如何2个数都被判断为相等了
去掉static的话程序就正常了
请问这是为什么?
下面附上代码:
class Demo
{
private static int a;
Demo(int a)
{
this.a=a;
}
public boolean equals(Object obj)
{
if(!(obj instanceof Demo))
{
return false;
}
else
{
Demo b=(Demo)obj;
return this.a==b.a;
}
}
}
class Aquals
{
public static void main(String[] args)
{
Demo d=new Demo(12);
Demo d1=new Demo(2);
System.out.println(d.equals(d1));
}
}
|