初学者 - 从另一个 class 打开一个方法

Beginner - Open a method from another class

我有点懵

我有两个 java 文件,一个是 ApplicationXXX.java(主要),另一个是 readInput.java。现在我的目标是从 main class 中的 readInput 执行方法。我知道像这样的实例的方法:

readInput read = new readInput();

这样我只能访问方法的值,但是方法还包括输入字段,我要缩短 readInput 的内容,因为它包括很多合理性检查。第一次我只想打开方法来读取值,而不返回任何变量。我也在 ApplicationXXX.java 中导入包。

package application.test;

import java.io.bufferedeader;

    public class readInput {

    public String var1;
    public String var2;

    public readInput();

    BufferedReader input = new BufferedReader(new InputStreamReader(
    System.in));

    System.out.println("Enter Var 1:");
    this.var1 = input.readLine();

    System.out.println("Enter Var 2:");
    this.var2 = input.readLine();

    }
    }

如果有人能帮助我,那就太好了。 当您需要更多信息时,只需发表评论即可。

您没有在这里声明任何方法,以下块应该在方法或构造函数中:

BufferedReader input = new BufferedReader(new InputStreamReader(
System.in));

System.out.println("Enter Var 1:");
this.var1 = input.readLine();

System.out.println("Enter Var 2:");
this.var2 = input.readLine();

我怀疑你想在构造函数中使用这个块,然后你应该更改行

public readInput();

   public readInput() { 

    BufferedReader input = new BufferedReader(new InputStreamReader(
    System.in));

    System.out.println("Enter Var 1:");
    this.var1 = input.readLine();

    System.out.println("Enter Var 2:");
    this.var2 = input.readLine();

    }

作为旁注,在 java 中 - class 应以大写字母开头(严格约定),因此 class(和构造函数)应重命名为 ReadInput.

您还应该重新考虑 class 的名称(它不应该是一个动词),并且这项工作可能应该在方法中完成 - 而不是在构造函数中。

编辑: 这里有一个小的重构建议:

public class InputReader { //not a verb, upper case

   public String var1;
   public String var2;

   // removed the default constructor, there is no need for it
   public void readInput() { //this is a method! not constructor!

      BufferedReader input = new BufferedReader(new InputStreamReader(System.in));

      System.out.println("Enter Var 1:");
      this.var1 = input.readLine();

      System.out.println("Enter Var 2:");
      this.var2 = input.readLine();

   }
}