java编程题——重写父类方法equals

这篇博客探讨了在Java中如何重写Object类的equals方法,以便在Point类中正确比较两个对象是否具有相同的x和y坐标。示例代码展示了两种不同的实现方式,确保当两个Point对象的坐标相同时返回true,否则返回false。这在进行对象比较时是至关重要的,尤其是在集合操作和自定义比较逻辑中。
摘要由CSDN通过智能技术生成

在类Point中重写Object类的equals方法。使Point对象x和y坐标相同时判定为同一对象。

裁判测试程序样例:

import java.util.Scanner;
class Point {
private int xPos, yPos;
public Point(int x, int y) {
    xPos = x;
    yPos = y;
    }
@Override
/* 请在这里填写答案 */
}
public class Main {
    public static void main(String[] args) {
       Scanner sc = new Scanner(System.in);
       Object p1 = new Point(sc.nextInt(),sc.nextInt());
       Object p2 = new Point(sc.nextInt(),sc.nextInt());
       System.out.println(p1.equals(p2));
      sc.close();
}
}

输入样例:

10 20
10 20

输出样例:

true

解答:

public boolean equals(Object p){
    Point p1 = null;
	if(p instanceof Point){
        p1 = (Point) p;
	}
    if(this.xPos == p1.xPos && this.yPos == p1.yPos){
        return true;
    }
	else{
		return false;
	}
}

方法二:

public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || this.getClass() != o.getClass()) return false;
        Point point = (Point) o;
        return xPos == point.xPos &&
                yPos == point.yPos;
    }
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值