想知道我是否正确地进行了这种不变性运动

时间:2014-01-22 16:56:10

标签: java immutability

我的教授刚刚接受了可变和不可改变的事情,并完成了编码练习。 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);

}
}

这是我的客户类。

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 + '}';
}

}

1 个答案:

答案 0 :(得分:1)

听起来像#3应该是这样的:

String name = customer.getName();

然后#4将是:

name = "Bo Peep";

我认为练习的目的是证明即使namecustomer.name引用相同的String对象,因为String在设置{时name = "Bo Peep";是不可变的{1}}您没有更改实际的String对象,而是创建和引用新的String对象。如果String是可变的,那么第二次打印customer会显示名称“Bo Peep”。