使用getter和setter的优点是什么 - 只能获取和设置 - 而不是简单地使用公共字段来存储这些变量?
如果getter和setter做的不仅仅是简单的get/set,我可以非常快地解决这个问题,但我并不是100%清楚如何:
public String foo;
Run Code Online (Sandbox Code Playgroud)
更糟糕的是:
private String foo;
public void setFoo(String foo) { this.foo = foo; }
public String getFoo() { return foo; }
Run Code Online (Sandbox Code Playgroud)
而前者需要很少的样板代码.
可能重复:
为什么要使用getter和setter?
这是一个新手问题.是否非常有必要使用getmethods来访问属性值?分配值后,可以获取值目录.例如,在下面的代码中,displayName()可以显示firstName值而无需任何getter方法的帮助.或者它是一个标准的编码标准,必须有getter和setter方法或任何其他方法给出该值?
class Test{
private String firstName;
public void setName(String fname){
firstName = fname;
}
public void displayName() {
System.out.println("Your name is " + firstName);
}
}
Run Code Online (Sandbox Code Playgroud) 我总是被告知从类中封装任何和所有属性......
这是正确的:
private string propertyName;
public string PropertyName
{
get { return propertyName; }
set { propertyName = value; }
}
Run Code Online (Sandbox Code Playgroud)
这是错的
Public string PropertyName;
Run Code Online (Sandbox Code Playgroud)
我看不出需要封装的地方......对我来说,第一个代码就是无用的冗余代码......不需要封装那个字段......
因此,如果任何人都可以证明这个场景的封装是正确的.(我可以理解其他情况).
我认为可以自动生成持有者类,只有attritutes的类,获取方法和set方法.我知道Eclipse现在是一个事实上的"标准"Java IDE.Eclipse会这样做吗?做其他IDE吗?
我猜测制作专用数据保持类而不是使用HashMaps的唯一原因是以更加可见/更好的方式使用混合数据类型,以及在插入或检索数据时想要对数据执行某些操作的情况.思考?