【发布时间】:2012-07-16 04:53:09
【问题描述】:
所以我有一个关于“setter”和“getter”方法以及它们是否有用的问题。
假设我只写了一个非常基本的程序,如下所示:
public class Account
{
String name;
String address;
double balance;
}
然后,假设我编写了另一个使用此“帐户”类的类,如下所示:
class UseAccount
{
public static void main(String[] args)
{
Account myAccount = new Account();
Account yourAccount = new Account();
myAccount.name = "Blah blah"
}
}
等等等等
当我写myAccount.name = "Blah blah" 时,我正在更改“帐户”类中变量“名称”的值。我可以随意使用按原样编写的代码多次执行此操作。然而,我注意到,最好将“Account”类中的变量设为私有,然后使用“setter”和“getter”方法。因此,如果我写以下内容:
public class Account
{
private String name;
private String address;
private String balance;
public void setName(String n)
{
name = n;
}
public String getName()
{
return name;
}
}
我仍然可以通过创建另一个具有以下内容的类来更改变量“name”的值:
class UseAccount
{
public static void main(String[] args)
{
Account myAccount = new Account();
myAccount.setName("Blah blah");
}
}
我不明白使用此方法有何不同或应该防止人们更改私有字段的值。有什么帮助吗?
【问题讨论】:
-
通过使用“getter”和“setter”方法,您可以确保您的变量仅以您决定的方式设置。在小型的“玩具”程序中,这似乎很愚蠢和不必要:但在大型、复杂的程序中,它可以成为救命稻草。另外:使用“getting”和“setter”方法恰好是 Java bean 的工作方式。