Java基础回顾:覆写equals()方法

覆写equals()方法需要注意的问题:

├ . 不能与一个null值进行比较,否则会报NullPointerException异常

├ . 类型不同时,不能进行比较,否则会报ClassCastException异常

├ . 当与自己进行比较时,应该直接返回true,不应该再对其参数一一比较

★ . String类的equals()方法已经覆写好了,不需要再手动进行覆写.


下面看一下equals方法的覆写代码:

TestDemo.java

package example;

class Book{
	private String title;
	private double price;
	
	public Book(String title,double price){
		this.title = title;
		this.price = price;
	}
	
	//setter/getter方法...
	
	public boolean equals(Object obj){
		//首先判断是否为空
		if(obj != null){
			//自己和自己比较时,直接返回true
			if(obj == this){
				return true;
			}
			//判断是否是同类型的对象进行比较
			if(obj instanceof Book){
				Book book = (Book)obj;
				if(book.title == this.title && book.price == this.price){
					return true;
				}
			}
		}
		return false;
	}
}

public class TestDemo {
	public static void main(String[] args) {
		Book b1 = new Book("Java开发",1.5);
		Book b2 = new Book("Java开发",1.5);
		System.out.println(b1==b2);
		System.out.println(b1.equals(b2));
		
	}
	
}


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值