一个类的公共成员如何在java中造成破坏?有人可以用例子解释一下吗?我试图创造这种情况,但不能成功.我只是发现它们等同于'protected'访问修饰符.
它允许无效值,打破封装.
public class Clock {
public int hours;
public int minutes;
}
Run Code Online (Sandbox Code Playgroud)
然后,在不相关的代码中......
Clock clock = new Clock();
clock.hours = 42;
clock.minutes = 99;
Run Code Online (Sandbox Code Playgroud)
将它们与setter和getter方法保密,允许封装强制执行适当的值.
public class Clock {
private int hours;
private int minutes;
public void setHours(int hours) {
if (hours < 0 || hours > 23) throw new IllegalArgumentException("bad range");
this.hours = hours;
}
// Likewise for "setMinutes" method.
}
Run Code Online (Sandbox Code Playgroud)
类的字段可以是只读的或只写的.
类可以完全控制其字段中存储的内容.
类的用户不知道类如何存储其数据.类可以更改字段的数据类型,并且类的用户不需要更改任何代码.