我必须建立一个电视类模型,其中包含电视当前的 channel 号。
public class Television {
private int channel;
public Television(int channel) {
this.channel = channel;
}
之后,我必须为 channel 创建一个 setter。
public void setChannel(int channel) {
this.channel = channel;
}
然后我必须创建一个带有两个构造函数的新类:
第一个没有参数,并将新的 int( channel 限制)设置为 10:
public class ChannelLimit {
int chLimit;
public ChannelLimit() {
chLimit = 10;
}
问题:
第二个将 chLimit 作为参数,并在我设置的 channel 低于 0 或高于 channel 限制时抛出 IllegalArgumentException。
我遇到的问题是:我找不到访问新设置 channel 的简单方法。
我的第一个猜测是使用 getter,但是如果我有多个对象,我是否必须为每个对象编写一个 setter?
最佳答案
是的,您应该为类中的每个属性创建 getter 和 setter,其名称为 1.1.1.5 Encapsulation
Encapsulation describes the ability of an object to hide its data and methods from the rest of the world and is one of the fundamental principles of object-oriented programming.
在您的代码中,channel
是私有(private)的,因此您无法在类之外访问它。
所以有两种方法。
- 将您的访问权限更改为公开,然后您将能够直接访问
channel
。 “这不是一个好主意” - 为您的类中的属性创建 getter 和 setter。
关于Java - 如何为类外变量抛出 IllegalArgumentException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60144554/