[問題] 自訂類別繼承Object的問題
事情是這樣的
學到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
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 3 篇):
java 近期熱門文章
PTT數位生活區 即時熱門文章