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允许您创建只读属性,并保护类的内部成员免遭无意的破坏性修改。
所有这些都是将其他应用程序消耗的外部表示与内部实现管道分开。这些是基础。