2014-01-22 83 views
1

我的教授剛剛完成了可變和不可變的任務,並且給了我們這個編碼練習來完成。 1)創建一個名爲customer的Customer對象,初始值分別爲1和「Cust1」 。想知道如果我正在做這個不變的練習

2)使用toString()方法將客戶對象顯示到屏幕上。

3)創建一個名爲name的String對象引用併爲其指定客戶名稱。

4)將值「Bo Beep」賦值給對象引用名稱。

5)使用toString()方法將客戶對象顯示到屏幕上。

輸出應該是這樣的。

客戶{ID = 1,名稱= Cust1}

客戶{ID = 1,名稱= Cust1}

我現在有2個獨立的階級,他們在這裏。我不確定我是否做得對,我認爲我已經完成了前兩項,但我不確定3-5。

任何輸入是有幫助的,謝謝!

這是我的主類,

package hw01; 


public class Main { 
static Customer customer = new Customer(1, "cust1"); 
static Customer name = new Customer(1, "Bo Peep"); 


public static void main(String[] args) { 
    System.out.println(customer); 
    System.out.print(customer); 

} 
} 

這是我的Customer類。

package hw01; 

public class Customer { 

private int id; 
private String name; 

public Customer() { 
} 

public Customer(int id, String name) { 
    this.id = id; 
    this.name = name; 


} 

public int getId() { 
    return id; 
} 

public String getName() { 
    return name; 
} 

@Override 
public String toString() { 
    return "Customer{" + "id=" + id + ", name=" + name + '}'; 
} 

} 
+0

這看起來像一個_mutability_練習。在4中,你不應該將新值賦給同一個對象嗎? –

+0

對,對不起,我做了3個對嗎?你能解釋4嗎? – Tonno22

回答

1

聽起來像是#3應該是這樣的:

String name = customer.getName(); 

,然後#4是:

name = "Bo Peep"; 

的練習,我想到的目的是演示即使namecustomer.name引用了相同的String對象,因爲String在設置name = "Bo Peep";時是不可變的,因此您不是changi而不是實際的String對象,而是創建並引用一個新的String對象。如果String可變,則第二次打印customer將顯示名稱「Bo Peep」。

+0

是的,但我是否設置了正確的Bo窺視名稱?另外,當它說使用tostring輸出,這是否意味着我必須調用toString或只是打印(客戶); ? – Tonno22

+0

它是不可變的,因爲沒有setter和私有變量是正確的? – Tonno22

+0

噢好吧謝謝你 – Tonno22

相關問題