equals()--java11(07/12/2015)

private Account[] accounts;//属性声明为数组

public Customer(String f, String l,Account[] accounts){//构造函数没有声明数组

firstName = f;

lastNameString = l;

this.accounts = new Account[5];//构造函数中的初始化

}'

Object类是所有java类的根父类。

对于符号“==”:

1、基本数据类型。根据基本数据类型的值判断是否相等,相等返回true,否则返回false。

两种数据类型可以不同,在不同的情况下也可以返回true。

2、引用数据类型比较引用类变量的地址是否相等。


重写equals()方法的使用场合:由于==和equals比较的都是两个变量或者对象的地址值,但是有些情况下,我们只需要知道两个对象的内容是否相等就好了,而不必仅通过地址就给其下结论,这个是时候就需要重写equals方法,而不是直接调用object的equals方法。

注:对于集合,有一个接口set,它有一个实现类HashSet,这个集合可以往里面存储元素,但其只能存放相同的元素,而对于元素是否相同的判断,便需要使用equals方法。所以当一个类需要往集合当中存放时,该类一定要重写object的equals方法。

对于equals():

1、只能处理引用类变量

2、在object类,发现equals()仍然比较的是两个引用变量的地址是否相等。

3、像String 包装类 File类 Date类,这些重写object()的equals()方法,比较的是两个对象的“实体内容”是否相等。

4、若想比较两个对象的属性是否相等,则需要重写object()类的equals()方法。              

例如:手动生成

public boolean equals(Object obj){

      if(this == obj){//当前对象的引用与形参是一样的。两个都是一个地址值。

             return true;}

      if(obj instanceof Person){//判断形参obj是否是order的一个实例

               Person p = (Person)obj;

               return this.name == p.name && this.age == p.age;

        }else{

               return false;}

手动生成并不严密,开发的时候,可以自动生成。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 文章作者:Tyan博客:noahsnail.com | CSDN | 简书 CHAPTER3 Method...
    SnailTyan阅读 4,028评论 1 4
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 32,414评论 18 399
  • java笔记第一天 == 和 equals ==比较的比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量...
    jmychou阅读 5,419评论 0 3
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,486评论 11 349
  • 雪 冬季,雪一直不停地飘 在寒冷中,挥洒她的圣洁 在寂静中,抒写她的激情 在梦境之外,在此岸与彼岸之间 翩翩起...
    Love_999阅读 3,382评论 6 8

友情链接更多精彩内容