java:"=="和equal(2)练习题

练习一

public class Order {

	int orderId;
	String OrderName;
	//两个参数的构造器
	public  Order(int orderId,String OrderName){
		this.orderId=orderId;
		this.OrderName=OrderName;
	}
	public int getOrderId() {
		return orderId;
	}

	public void setOrderId(int orderId) {
		this.orderId = orderId;
	}

	public String getOrderName() {
		return OrderName;
	}

	public void setOrderName(String orderName) {
		OrderName = orderName;
	}

	// 重写快捷键:alt+"/"
	@Override
	public boolean equals(Object obj) {
		boolean flag = false;
		if (obj instanceof Order) {
			Order o = (Order) obj;

			if (this.orderId == o.orderId && this.OrderName.equals(o.OrderName)) {
				flag = true;
			}
		}

		return flag;
	}
       Order o1=new Order(123,"abc");
		Order o2=new Order(123,"abc");
		Order o3=new Order(123,"abcd");
	
		System.out.println(o1.equals(o2));//ture
		System.out.println(o1.equals(o3));//false

第二个练习里面用了另一种方法
在这里插入图片描述

public class MyDate {

	int year;
	int month;
	int day;

	public MyDate(int year, int month, int day) {
		this.day = day;
		this.month = month;
		this.year = year;

	}

	@Override
	public boolean equals(Object obj) {
		int flag=1;
		if(obj instanceof MyDate){
			MyDate o=(MyDate) obj;
			flag=0;
			if(this.year!=o.year){
				flag+=1;
			}
			if(this.day!=o.day){
				flag+=1;
			}
			if(this.month!=o.month){
				flag+=1;
			}	
			
		}
	
	
	if(flag==0){
		return true;
	}
	else{
		return false;
	}

	}
	
}
public static void main(String[] args) {
	
	
	MyDate t1=new MyDate(5, 2, 5);
	MyDate t2=new MyDate(5, 2, 5);
	MyDate t3=new MyDate(4, 2, 5);
	System.out.println(t1.equals(t2));//true
	System.out.println(t1.equals(t3));//false
}
发布了45 篇原创文章 · 获赞 12 · 访问量 1123

猜你喜欢

转载自blog.csdn.net/weixin_46037153/article/details/104444392