equals练习

equals练习

package com.sgg.Order;

/*
 * 编写Order类,有int型的orderId,String型的orderName,
 * 相应的getter()和setter()方法,两个参数的构造器,
 * 重写父类的equals()方法:public boolean equals(Object obj);
 * 并判断测试类中创建的两个对象是否相等。
 * 
 */
public class OrderTest {
	public static void main(String[] args) {
		Order order1 = new Order(1001,"AA");
		Order order2 = new Order(1001,new String("BB"));
		
		System.out.println(order1.equals(order2)); // false
		
		Order order3 = new Order(1001,"BB");
		System.out.println(order2.equals(order3)); // true
		
		String s1 = "BB";
		String s2 = "BB";
		System.out.println(s1 == s2); // true
	}
}
class Order {
	
	private int orderld;
	private String orderName;
	
	public int getOrderld() {
		return orderld;
	}
	public void setOrderld(int orderld) {
		this.orderld = orderld;
	}
	public String getOrderName() {
		return orderName;
	}
	public void setOrderName(String orderName) {
		this.orderName = orderName;
	}
	
	public Order(int orderld, String orderName) {
		super();
		this.orderld = orderld;
		this.orderName = orderName;
	}

	@Override
	public boolean equals(Object obj) {
		if(this == obj) {
			return true;
		}
		if(obj instanceof Order) {
			Order order = (Order)obj;
			// 正确的:
			return this.orderld == order.orderld && 
					this.orderName.equals(order.orderName);
			// 错误的:
//			return this.orderld == order.orderld && 
//					this.orderName == order.orderName;
		}
		return false;
	}
}

package com.sgg.Order;

public class MyDateTest {

	public static void main(String[] args) {
		MyDate m1 = new MyDate(14,3,1976);
		MyDate m2 = new MyDate(14,3,1976);
		
		if(m1 == m2) {
			System.out.println("m1==m2");
		} else {
			System.out.println("m1 != m2"); // m1 != m2
		}
		
		if(m1.equals(m2)) {
			System.out.println("m1 is equal to m2"); // m1 is equal to m2
		} else {
			System.out.println("m1 is not equal to m2");
		}
	}

}
/*
 * 请根据以下代码自行定义能满足需要的MyDate类,在MyDate类中覆盖
 * equals方法,使其判断当两个MyDate类型对象的年月日都想同时,结
 * 果为true,否则为false。 public boolean equals(Object o)
 * 
 */
class MyDate {
	private int day;
	private int month;
	private int year;
	
	
	public MyDate(int day, int month, int year) {
		super();
		this.day = day;
		this.month = month;
		this.year = year;
	}

	public int getDay() {
		return day;
	}

	public void setDay(int day) {
		this.day = day;
	}

	public int getMonth() {
		return month;
	}

	public void setMonth(int month) {
		this.month = month;
	}

	public int getYear() {
		return year;
	}

	public void setYear(int year) {
		this.year = year;
	}

	@Override
	public boolean equals(Object obj) {
		if(this == obj) {
			return true;
		}
		if(obj instanceof MyDate) {
			MyDate myDate = (MyDate)obj;
			return this.day == myDate.day && this.month == myDate.month 
					&& this.year == myDate.year;
		}
		return false;
	}
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值