日期:2014-05-20  浏览次数:20583 次

不是说equals只能用于Object对象引用吗?那这是为什么呀
public   boolean   equals(Object   obj)  
的参数不是一个Object   吗?
为什么下面的代码会print     true.     why????

Integer   a   =   new   Integer(45);
System.out.println(a.equals(45));       //true
 
Double   b   =   new   Double(45.0);
System.out.println(b.equals(45.0));       //true
System.out.println(b.equals(45));       //false

不是说equals只能用于Object对象引用吗?

    who能帮我解答一下吗?thank   you

------解决方案--------------------
哪里不明白啊?
equals确实是Object类的方法,其返回值为boolean型,所以当你从一个对象上调用equals时,它返回的要么是true,要么是false。
------解决方案--------------------
JDK1.5开始,有时候可以用int代替Integer、double代替Double
------解决方案--------------------
Integer a = new Integer(45);
System.out.println(a.equals(45)); //true

45做为参数传递过去时,由于形参声明为一个Object
45会自动装箱成一个Integer对象。
------解决方案--------------------
简单来说这里的Integer 和Double就是对象类型了 明白了吗
------解决方案--------------------
自动装箱拆箱。。。