我有点困惑。
我有两个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();
}
}
当有人可以帮助我时会很棒。 当您需要进一步的信息时,只需评论它。
答案 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();
}
}