在java中,如何重载一个类的相等操作和打印操作?
就像在 python 中一样,你可以通过做def __eq__(self):
or来做到这一点def __str__(self):
,但是如何在 java 中做到这一点呢?
我知道您可以手动创建一个方法并调用它之类的equals
东西,但我想知道是否有一个实际的方法可以与==
运算符和System.out.print()
函数一起使用。
有人知道吗?
谢谢。
在java中,如何重载一个类的相等操作和打印操作?
就像在 python 中一样,你可以通过做def __eq__(self):
or来做到这一点def __str__(self):
,但是如何在 java 中做到这一点呢?
我知道您可以手动创建一个方法并调用它之类的equals
东西,但我想知道是否有一个实际的方法可以与==
运算符和System.out.print()
函数一起使用。
有人知道吗?
谢谢。
Java 不支持运算符重载。==
将始终测试参考相等性。
System.out.print()
用于Object.toString()
生成其输出。toString
你可以在你的类中覆盖。
并且您对重写该equals
方法有一个警告是正确的:如果您要重写该equals
方法,则还应该重写该hashCode
方法,以便您的对象在使用HashSet
s 等时可以正确运行。hashCode
关于和之间的合同的详细信息equals
可以在我链接到的文档中找到。
/编辑
public class Point {
private int x;
private int y;
public Point(int x, int y) {
this.x = x;
this.y = y;
}
@Override
public String toString() {
return "(" + x + ", " + y + ")";
}
public static void main(String[] args) {
System.out.println(new Point(1, 2));
}
}