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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 林海东 中级黑马   /  2015-7-30 23:20  /  487 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1、关于==做比较的问题

基本类型的比较:比较的是具体的值
引用类型的比较:比较的是对象的地址值
------------------------------------------------------------------------------------------------------------------
2、实现对象的成员变量数据的比较

compare方法的三步改进代码
A  :
public boolean compare(int age1,int age2)
{
     return age1 == age2;
}
//在main方法中的调用方式
boolean b1 = s1.compare( s1.getAge() , s2.getAge() );
B:
public boolean compare ( Student s1, Student s2)
{
     return s1.age == s2.age;
}
//在main函数中的调用方式
boolean bl = s1.compare( s1 , s2 );
C:
public boolean compare ( Student s)
{
     return this.age == s.age;
}
//在main函数中的调用方式
boolean bl = s1.compare( s2 );
------------------------------------------------------------------------------------------------------------------
3、Object类的equals方法_理解

在比较两个对象时为什么要重写 equals 方法?
因为该方法底层默认比较的还是地址值,而同一个类中的不同对象,地址值肯定不同
所以Object类中的equals 方法没有意义,所以我们需要重写它,比较的是对象当中的属性.
Student s=(Student)obj;
重写equals一般就是为了比较某个类的多个对象的所有成员变量值是否相同;
如果成员变量是基本类型,就用==比较;
如果成员变量是引用类型,就用该变量对应的引用类型的equals()方法;
return this.age==s.age&&this.name.equals(s.name);
------------------------------------------------------------------------------------------------------------------
4、String类的equals()方法详细解析
理解:其实字符串在底层是一个字符数组的形式存在的
String类的equals的方法的思路:
1、判断对象是否属于String类;
2、判断字符数组的长度是否相同;
3、比较字符串中的值是否对应相同;

3 个回复

倒序浏览
好详细的说
回复 使用道具 举报
学习了,谢谢
回复 使用道具 举报
学习了,谢谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马