作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我必须建立一个电视类模型,其中包含电视当前的 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
。 “这不是一个好主意”关于Java - 如何为类外变量抛出 IllegalArgumentException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60144554/
我是一名优秀的程序员,十分优秀!