JAVA:如何使用构造函数从另一个类访问私有(private)方法?

标签 java

因此,我在名为 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/

相关文章:

java - iText 中的 PdfPageEventHelper

java - 如何获得自定义标题 View ?

java - 在Java中,可以发现当前执行的方法是什么?

java - 如何等待单选按钮在失去焦点事件中被选中

java - 我自己的 android 库的单元测试框架

java - 包括生成 jar 并在 Intellij 上使用 java -jar 执行的库

java/Swing : drag and drop with a list of strings

java - 如何将值从一个列表复制到具有不同对象的另一个列表

java - 具有三个实体的 Hibernate 约束

java - 如何使用 java 自动执行 Citrix Netscaler 网关登录