必须使用get,set,is来访问类属性(可以是 用于布尔属性而不是get)和其他方法 (所谓的存取方法和变异方法)根据a 标准命名惯例。
这是不是打破了封装规则?毕竟,如果每个私人财产都有一个吸气剂/设定器,那么它是否会被封装?
或者你必须为每个房产至少使用一个?无论是设置,获取还是两者都有,但绝不是没有?
答案 0 :(得分:7)
您将术语“属性”与“实例变量”混淆。您可以在课堂外设置和/或获取属性。在Java中,通过使用访问器方法(setter和/或getter)使用私有实例变量来创建属性。在JavaBeans中,您可以拥有没有getter或setter的私有实例变量,但这使它只是一个实例变量,而不是属性。
答案 1 :(得分:-1)
您必须至少拥有属性的setter,以便在访问该值时避免使用null值。
是的,虽然该属性是私有的,您的set / get方法是公开的,因此您允许其他人访问您的财产。但是在你的setter / getter方法中,你可以添加自己的条件来保护你的属性,而不是根据你的要求将它公开给所有人。