I thought you can't change the value of a String once it has already been initialized to a value? Well apparently I can in my program below.
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();
}
}
My output:
Pekka Mikkola
040-123123
Pekka Mikkola number: 040-123123
Pekka Mikkola number: 000-0001
So I can apparently change the value of the string number as many times as I want. How come? I can change the value of the variable "number" in the changeNumber method even though it has already been initialized? I thought Strings in Java once initialized can't be changed?