我认为一旦String初始化为某个值,你就无法改变它的值?显然,我可以在我的程序中。
public class Pekka {
public static void main (String[] args){
Person p = new Person("Pekka Mikkola", "040-123123");
System.out.println(p.getName());
System.out.println(p.getNumber());
System.out.println(p);
p.changeNumber("000-0001");
System.out.println(p);
}
}
class Person {
private String name, number;
Person(String name, String number){
this.name = name;
this.number = number;
}
public String getName(){
return name;
}
public String getNumber(){
return number;
}
public void changeNumber(String newNumber){
number = newNumber;
}
@Override
public String toString() {
return getName() + " number: " + getNumber();
}
}
我的输出:
Pekka Mikkola
040-123123
Pekka Mikkola number: 040-123123
Pekka Mikkola number: 000-0001
所以我显然可以根据需要多次更改字符串数字的值。怎么会?我可以改变变量" number"的值。在changeNumber方法中,即使它已经被初始化了?我认为Java中的字符串一旦初始化就无法改变?