【发布时间】:2013-10-03 15:49:43
【问题描述】:
我对如何在Java中使用构造函数和setter有点困惑,请看下面的示例代码:
public class Name {
private String name;
public void setName(String name){
this.name=name;
}
public String getName(){
return name;
}
}
public static void main(String[] args) {
Name a=new Name();
a.setName("123");
System.out.println(a.getName());
}
它打印出123,它使用没有构造函数的setter方法,我还在下面写了其他代码:
public class Name {
private String name;
public Name(String nm){
name=nm;
}
public String getName(){
return name;
}
}
public static void main(String[] args) {
Name a=new Name("123");
System.out.println(a.getName());
}
这个也打印出123,使用的是没有setter方法的constructor,这就是为什么我不明白constructor和setter在使用上有什么区别,请指教,加油!
【问题讨论】:
-
在第二个示例中,没有人可以在构造后更改名称(不可变对象);与第一个不同,您可以随时将名称更改为现有对象(可变对象)。
标签: java constructor setter