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

回到顶部