作者sfp (Fru:z)
看板java
标题[问题] 自订类别继承Object的问题
时间Thu Jun 1 17:58:48 2006
事情是这样的
学到String时 看到一个范例
大概长得像这样
String s1 = new String("hey");
String s2 = new String("hey");
System.out.println(s1 == s2); <-- 这个return false
System.out.println(s1.equals(s2)); <-- 这个return true
以上的东西我都自以为了解了
( == 是在比较是否s1,s2指到同一个物件的instance 而equals()是在比较其内容)
那麽今天 我看到这句话: "物件一律继承Object"
那很巧的 Object里有一个memeber function叫 equals
那我就用我写的很简单的一个object 叫 Ball (参考学习笔记的范例)
Ball.java 长成这样
============================
public class Ball{
private double radius;
private String name;
public Ball(){
this(0.0, "no-name");
}
public Ball(double radius, String name){
this.radius = radius;
this.name = name;
}
public double getRadius(){
return radius;
}
public String getName(){
return name;
}
public void setRadius(double radius){
this.radius = radius;
}
public void setName(String name){
this.name = name;
}
}
===================================================
但是问题来了
当我 Ball b1 = new Ball(18.4, "red ball");
Ball b2 = new Ball(18.4, "red ball");
然後 System.out.println(b1 == b2); <-- 这个false我能理解 毕竟两个不同物件
System.out.println(b1.equals(b2)); <-- 这个false我就不能理解了
它不是比较这两个物件的内容是否相同吗?
这个问题请教版上先进 感谢
--
这个世界多美丽
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.229.71.57