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

时间:2015-03-10 13:01:41

标签: java class methods

我有点困惑。

我有两个java文件,一个是ApplicationXXX.java(Main),另一个是readInput.java。现在我的目标是从主类中的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();

    }
    }

当有人可以帮助我时会很棒。 当您需要进一步的信息时,只需评论它。

1 个答案:

答案 0 :(得分:6)

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

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中 - 一个类应该以大写字母(强约定)开头,因此应该将类(和构造函数)重命名为ReadInput

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

编辑:以下是一些小型重构建议:

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();

   }
}