当我们在java中有一个私有变量的setter方法时,将变量设为私有的目的是什么?
我们有私有变量来限制用户不直接访问实例的状态.但有时,我们有相应的setter和getter方法来访问和更改私有变量的状态.如果是这样,那么我们为什么要将变量设为私有?我们可以只使用公共变量吗?
Bri*_*new 13
理由是您隐藏了实现.你打电话的时候
setX(23);
Run Code Online (Sandbox Code Playgroud)
您的相应变量x对客户端类隐藏,无法直接观察或修改.
为什么这样好?
x在以后更改为(例如)a string,a double等,并且您的客户端代码不必更改.x甚至可能会消失,调用setX()实际上会执行一些不同但相当的功能.x为无效(例如负值)值.x,将存在一个对应的getX()/ setX()(或isX()如果它是a boolean).通过遵守惯例,您的类将与这些框架很好地互操作.注意,有些参数没有setter,而是实现了不可变对象(所以你只需要通过构造函数设置你的值).这使得对象线程安全,并且更容易调试/推理关于对象状态.
| 归档时间: |
|
| 查看次数: |
1501 次 |
| 最近记录: |