Given the code fragment:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | public class Employee { String name; boolean contract; double salary; Employee() { // line n1 } public String toString() { return name + ":" + contract + ":" + salary; } public static void main(String[] args) { Employee e = new Employee(); // line n2 System.out.print(e); } } |
Which two modifications, when made independently, enable the code to print joe:true:100.0?
A.
Replace line n2 with:
1 2 3 | e.name = "Joe"; e.contract = true; e.salary = 100; |
B.
Replace line n2 with:
1 2 3 | this.name = "Joe"; this.contract = true; this.salary = 100; |
C.
Replace line n1 with:
1 2 3 | this.name = new String("Joe"); this.contract = new Boolean(true); this.salary = new Double(100); |
D.
Replace line n1 with:
1 2 3 | name = "Joe"; contract = TRUE; salary = 100.0f; |
E.
Replace line n1 with:
1 | this("Joe", true, 100); |
題解
由於name、contract和salary都是Employee物件的物件變數,需要先實體化之後透過物件參考才可以存取,因此選項A是可以的。
選項B由於main方法是屬於類別(靜態)方法,並沒有實體,無法使用this關鍵字。
選項C是在Employee物件的建構子內直接修改其物件變數的值,因此是正確的。
選項D並沒有「TRUE」這個boolean值。
選項E並沒有實作「this(String name, boolean contract, double 100)」這樣的建構子。
留言