class MyClass
{
static int num;
MyClass(int num)
{
this.num = num;
}
}
public class test
{
public static void main(String[]args)
{
MyClass a = new MyClass(100);
MyClass b = new MyClass(100);
if(a.equals(b))
{
System.out.println("Objects have the same values");
}
else
{
System.out.println("Objects have the different values");
}
}
}打印结果是a b不等
但是我认为a b 都是MyClass类的引用,为什么就不相等呢
{
static int num;
MyClass(int num)
{
this.num = num;
}
}
public class test
{
public static void main(String[]args)
{
MyClass a = new MyClass(100);
MyClass b = new MyClass(100);
if(a.equals(b))
{
System.out.println("Objects have the same values");
}
else
{
System.out.println("Objects have the different values");
}
}
}打印结果是a b不等
但是我认为a b 都是MyClass类的引用,为什么就不相等呢
MyClass a = new MyClass(100);
MyClass b = new MyClass(100);
上述代码中的a、b是按图施工得到的两个产品实际是不同的equals方法在Object类中与==等价的,如果你想使它有真正的作用,要重写MyClass类中的equals方法,推荐同时改写hashCode()