Given:
public class Product {
int id;
String name;
public Product(int id, String name) {
this.id = id;
this.name = name;
}
}
And given the code fragment:
public static void main(String[] args) {
Product p1 = new Product(101, "Pen");
Product p2 = new Product(101, "Pen");
Product p3 = p1;
boolean ans1 = p1 == p2;
boolean ans2 = p1.name.equals(p2.name);
System.out.print(ans1 + ":" + ans2);
}
What is the result?
A.
true:true
B.
true:false
C.
false:true
D.
false:false
題解
程式第15行的ans1值,是用「==」運算子來判斷p1和p2所儲存的物件參考是否相同,由於這兩者是不同的物件,因此會是false。
程式第16行的ans2值,是用每個物件都有的「equals」方法來判斷p1和p2的「name」物件變數是否在邏輯上是一樣的,由於p1和p2的「name」變數所參考到的字串皆為「Pen」,因此會是true。