ome*_*ega 0 python java overloading operator-overloading
在java中,如何重载类的相等操作和打印操作?
就像在python中一样,你可以通过做def __eq__(self):或者这样做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));
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1440 次 |
| 最近记录: |