Given:
class Book {
int id;
String name;
public Book(int id, String name) {
this.id = id;
this.name = name;
}
public boolean equals(Object obj) { //line n1
boolean output = false;
Book b = (Book) obj;
if (this.name.equals(b.name)) {
output = true;
}
return output;
}
}
and the code fragment:
Book b1 = new Book(101, "Java Programing");
Book b2 = new Book(102, "Java Programing");
System.out.println(b1.equals(b2)); //line n2
Which statement is true?
A. The program prints true.
B. The program prints false.
C. A compilation error occurs. To ensure successful compilation, replace line n1 with:
boolean equals (Book obj) {
D. A compilation error occurs. To ensure successful compilation, replace line n2 with:
System.out.println (b1.equals((Object)b2));
題解
Book類別覆寫了equals方法,當兩個Book物件的name欄位邏輯相同時,則這兩個物件也符合邏輯上的相同。
所以b1和b2變數所參考到的Book物件,有邏輯上的相同,會輸出「true」。