为什么鼓励使用处理程序的私有变量?

Cha*_*ake 0 java theory android

可能重复:
Getters和Setters是邪恶的吗?

我找不到一个带有getter和setter的私有变量背后的逻辑原因,除了直接处理优先于拥有公共变量的值之外什么都不做.

我错过了什么吗?

use*_*305 5

因为,

验证是一个原因.将字段名称保留在公共API之外还允许您稍后更改它而不会破坏API.并且它允许您稍后以其他方式更改类,例如将字段移动到其他类(以便公共setter将在不同的类中调用setter).调用setter还允许您执行其他操作,例如,通知感兴趣的其他组件更改值.如果直接访问该字段,则无法做到这一点.