How can we have a variable that is writable within the class but only \"readable\" outside it?
For example, instead of having to do this:
Class
Create a class with public final
fields. Provide constructor where those fields would be initialized. This way your class will be immutable, but you won't have an overhead on accessing the values from the outside. For example:
public class ShortCalendar
{
public final int year, month, day;
public ShortCalendar(Calendar calendar)
{
if (null == calendar)
throw new IllegalArgumentException();
year = calendar.get(Calendar.YEAR);
month = calendar.get(Calendar.MONTH);
day = calendar.get(Calendar.DATE);
}
}