在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方法,以便您的对象在使用HashSets 等时可以正确运行。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));
}
}