You are confusing the term "property" with "instance variable". A property is that which you can set and/or get from outside the class. In Java, a property is created by having a private instance variable used through accessor methods (setter and/or getter). In JavaBeans, you can have private instance variables without a getter or a setter, but that makes it just an instance variable, not a property.
Do all JavaBean properties have to use both getters and setters?
-
30-06-2023 - |
문제
The class properties must be accessible using get, set, is (can be used for boolean properties instead of get), and other methods (so-called accessor methods and mutator methods) according to a standard naming convention.
Doesn't this break the rule of encapsulation? After all if every private property has a getter/setter doesn't that make it not encapsulated?
Or do you have to use at least one for each property? either set, get, or both but never none?
해결책
다른 팁
You must atleast have setter for your property to avoid null value when you access the value.
Yes though the property is private your set/get methods are public and hence you are allowing others to access your property. But in your setter/getter method you can add your own conditions to keep your property encapsulated rather exposing it public to all depending upon your requirement.