因此,我在名为 Lotion 的类中创建了一个方法,并将其命名为 read(),该方法接受用户的输入。我的导师告诉我 read() 方法必须是私有(private)的。然而,他说他的演示/测试器类应该能够访问方法 read()。他给了我们一个提示,说我们必须使用构造函数。但不幸的是,我仍然不明白它应该如何工作。有人可以解释一下吗?
提前致谢。
最佳答案
您当前的代码(如评论中发布的)
private void read() {
System.out.println(
"Enter the amount of liquid in the bottle (0-100): ");
volume = keyboard.nextDouble();
if (volume > MAX || volume < MIN) { read(); } }
}
这会通过设置体积
来初始化您的对象。
您可以从类构造函数中调用它:
public Lotion(){
read();
}
这样,当您创建实例时,它会自动要求用户输入并将答案设置到实例字段。
<小时/>一些设计说明(但不要与你的导师争论):
- 像用户输入这样的“繁重工作”可能不应该作为构造函数的一部分来完成。
- 如果您要从构造函数中调用方法,那么将它们设置为私有(private)是一个好主意。否则它们可以被覆盖,然后将在未完全构造的对象实例上调用。
read
可以返回一个double
,而不是直接更新对象状态。
关于JAVA:如何使用构造函数从另一个类访问私有(private)方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28336869/