为什么我们可以使用getter和setter将变量设置为私有?

时间:2015-12-06 05:51:50

标签: java getter-setter private-members

我无法理解将变量设为私有的概念,因为我们可以使用getter和setter方法在类外部访问它们。

那么这些私有变量如何保持私有。

2 个答案:

答案 0 :(得分:0)

在Java中getterssetters是完全普通的函数。唯一让他们成为吸气者或者设定者的是convention。 foo的getter被称为getFoo,setter被称为setFoo。在布尔值的情况下,getter被称为isFoo。他们还必须有一个特定的声明,如name的getter和setter示例所示:

class Dummy
{
private String name;

public void Dummy() {}

public void Dummy(String name) {
    this.name = name;
}

public String getName() {
    return this.name;
}

public void setName(String name) {
    this.name = name;
}
}

使用getter和setter而不是让你的成员公开的原因是它可以在不改变界面的情况下改变实现。此外,许多使用反射来检查对象的工具和工具包只接受具有getter和setter的对象。例如,JavaBeans必须具有getter和setter以及其他一些要求。

此外,需要将实例变量声明为私有,以便程序的不同部分无法直接访问它们或错误地修改它们,这可能导致disaster中的real world programs

考虑阅读Why Use Getters and Setters?

答案 1 :(得分:-1)

因为那时其他人没有人删除tchem,甚至经常改变他们的价值,但他们仍然可以知道他们的价值。