A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© iceknc 中级黑马   /  2015-9-23 21:56  /  546 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

假设有个类Student,有两个Student对象
Student s1 = new Student("zhangsan", 18);
Student s2 = new Student("zhangsan", 18);
System.out.println(s1.equals(s2));

Student类里有个方法
  1. public boolean equals(Object obj) {
  2.                 if (this == obj)
  3.                         return true;
  4.                 if (!(obj instanceof Student))
  5.                         return false;
  6.                 Student s = (Student) obj;
  7.                 return this.name.equals(s.name) && this.age == s.age;
  8.             //return this.name == s.name && this.age == s.age;
复制代码
最后一行注释掉的跟前一行的输出结果是一样的,也就是用==比较的地址值是相等的,那究竟内存中是存在一个Student对象呢,还是两个?




1 个回复

倒序浏览
你第七行代码后面是this.age==s.age
所以这两行的结果会是相同的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马