是否所有JavaBean属性都必须同时使用getter和setter?

时间:2014-04-09 00:32:43

标签: java javabeans setter getter getter-setter

  

必须使用get,set,is来访问类属性(可以是   用于布尔属性而不是get)和其他方法   (所谓的存取方法和变异方法)根据a   标准命名惯例。

这是不是打破了封装规则?毕竟,如果每个私人财产都有一个吸气剂/设定器,那么它是否会被封装?

或者你必须为每个房产至少使用一个?无论是设置,获取还是两者都有,但绝不是没有?

2 个答案:

答案 0 :(得分:7)

您将术语“属性”与“实例变量”混淆。您可以在课堂外设置和/或获取属性。在Java中,通过使用访问器方法(setter和/或getter)使用私有实例变量来创建属性。在JavaBeans中,您可以拥有没有getter或setter的私有实例变量,但这使它只是一个实例变量,而不是属性。

答案 1 :(得分:-1)

您必须至少拥有属性的setter,以便在访问该值时避免使用null值。

是的,虽然该属性是私有的,您的set / get方法是公开的,因此您允许其他人访问您的财产。但是在你的setter / getter方法中,你可以添加自己的条件来保护你的属性,而不是根据你的要求将它公开给所有人。