黑马程序员技术交流社区

标题: instanceof 和equals [打印本页]

作者: CrazyProgram    时间: 2013-4-8 23:00
标题: instanceof 和equals
本帖最后由 CrazyProgram 于 2013-4-9 10:21 编辑

instanceof 是对象比较的时候用的么?
equals是数据类型比较时候才用的么?
老是分不清,想搞清楚点

作者: ㄨ____陌生    时间: 2013-4-8 23:07
1、instanceof:用法:
int  boolean  是值数据类型      而instanceof  只能 用于 对象 类型
  例如
正确:
Integer i;
      if(i instanceof Integer)
         System.out.println("i 是 Integer类型");
错误:
  int i;
    if(i instanceof int)
       System.out.println("i 是 int类型");

2、equals()方法是从object类中继承过来的。

equals()方法在object类中定义如下:

public boolean equals(Object obj) {

return (this == obj);
}
很明显是对两个对象的地址值进行的比较(即比较引用是否相同)。当String 、Math、还有Integer、Double。。。。等这些封装类在使用equals()方法时,已经覆盖了object类的equals()方法。是进行的内容比较,而已经不再是地址的比较。依次类推Double、Integer、Math。。。。等等这些类都是重写了equals()方法的,从而进行的是内容的比较。



作者: arthur    时间: 2013-4-8 23:24
instanceof 可以理解为判断你是否是我其中的一个.
equals比较的是地址值中的内容是否相同.
作者: HM刘俊    时间: 2013-4-9 00:09
本帖最后由 HM刘俊 于 2013-4-9 00:14 编辑

把概念记好就容易分辨了。
instanceof关键字
  A:用于判断某个对象是否是某种类型。
  B:格式
   对象名 instanceof 子类(实现)名
equals只能用于比较引用数据类型的。
  Object提供的equals是用于比较对象地址值是否相同。
   

基础总结大全.rar

90.32 KB, 下载次数: 121

自己有时间记住


作者: 王川    时间: 2013-4-9 00:17
intanceof用于判断是不是某个类的实例
equal用于判断值是不是相等
作者: 黄玉昆    时间: 2013-4-9 08:02
如果问题未解决,请继续追问,如果没有问题了,请将帖子分类 改为“已解决”,谢谢
作者: CrazyProgram    时间: 2013-4-9 10:18
嗯,好的,非常感谢
作者: 董维明    时间: 2013-4-9 16:56
arthur 发表于 2013-4-8 23:24
instanceof 可以理解为判断你是否是我其中的一个.
equals比较的是地址值中的内容是否相同. ...


instanceof 是判断 你 是否 是人类 的一员。不应该理解为 某个人是你的一员吧?




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2