Possible Duplicate:
Are Getters and Setters evil?
  Why use getters and setters?




我已经问了自己一段时间了,但是为什么我们实际上使用Getters和Setter方法呢?有人可以解释,它们占用了我们代码中的额外空间。为了更好的理解,我在下面发布了一些代码。

public class Test2
{
   public int _ChangeThis = 0;
}


- - 另一种方式 - -

public class Test1
{
    public int _ChangeThis = 0;

    public setChangeThis(int ChangeThis)
    {
        _ChangeThis = ChangeThis;
    }


}

-主要代码-

Test2 testclass = new Test2();

//What is the difference and why do we use the setter? I cannot understand the advantage.
testclass.setChangeThis(1);
testclass._ChangeThis = 1;

最佳答案

Getter和Setter是对象实现周围的抽象包装。您可能拥有一个对象的属性,该对象实际上(作为示例)是基于其他字段成员的值计算的,但并未存储或持久化在类中,因此,获取器会产生一种幻想,即该属性本身是该类的本机,虽然其实现方式大不相同。同样,不带setter的getter允许您创建只读属性,并保护类的内部成员免遭无意的破坏性修改。

所有这些都是将其他应用程序消耗的外部表示与内部实现管道分开。这些是基础。

07-24 12:51