Java中的访问器方法
因此,我对“ setter”和“ getter”方法以及它们的有用与否有疑问。
假设我只是写了一个非常基本的程序,如下所示:
public class Account {
String name;
String address;
double balance;
}
然后,假设我编写了另一个使用此“ Account”类的类,如下所示:
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”类中更改变量“
name”的值。我可以按照自己喜欢的方式随意编写多次代码。但是,引起我注意的是,更好的做法是将“ 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;
}
}
我仍然可以通过创建另一个具有以下内容的类来更改变量“名称”的值:
class UseAccount {
public static void main(String[] args)
{
Account myAccount = new Account();
myAccount.setName("Blah blah");
}
}
我不知道使用此方法有何不同,或者应该防止人们使用此方法更改私有字段的值。有什么帮助吗?
回答:
试试这个面向对象编程的黄金法则。
创建 实例变量。
创建 获取器和设置器以访问那些Instance变量。
。尽管可以以 使用 ,但这在
很重要,就像那些不断变化的行为必须封装在抽象类或接口中。 ***
现在回到主题Getter and Setter ....
Getter和Setter帮助验证实例变量的输入。
假设我有一种分配狗的年龄的方法,现在年龄不能为负,如果我没有设置方法,那么我将无法验证年龄的输入。
private int age;public void setDogAge(int age){
if (age>0){
this.age = age;
}
else{
System.out.println("Please Enter a Valid Age");
}
}
以上是 Java中的访问器方法 的全部内容, 来源链接: utcz.com/qa/431679.html