你提供的例子并不合适,至少不是表格和你提到的名字.
我会尝试一些更好的例子:
塞特斯
您可能希望主要使用它们进行验证.作为示例,setDate(日期d)可以检查数据是否在某个范围内,例如,未来不超过20年等(取决于您的要求).
吸气剂
如果那些包含的不仅仅是简单的逻辑,它们可能代表虚拟属性,即没有底层字段但是在运行中计算的属性.
让我们以getAmount()为例:可能没有任何字段数量,或者由于某种原因,数量可能以美分(或更小)存储(例如没有精度问题).因此getAmount()可能如下所示:
public double getAmount() {
return amountInCents / 100.0;
}
请注意,名称getAmount()可能会产生误导,因此最好使用getAmountInUSD()等名称.
一般
在大多数情况下,使用Java中的getter和setter是可以建议的,因为您可以执行以下操作(列表未完成):
>添加验证逻辑(给设置者)
>为虚拟属性添加转换逻辑(setter,getters)
>定义访问权限,即只读意味着没有公共设置者
>使用基于Java Beans规范的库(需要使用setter和getter)
>解耦getter / setter的客户端/调用者,即,如果在某个时刻你想要添加通过setter进行字段访问的验证,则不需要客户端更改(除非需要处理验证错误)等.
>使用setter和getter进行调试,例如通过在方法中放置一个断点并查看堆栈跟踪以查看谁调用它(由dsp_user提及)