初学者 - 从另一个 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();
}
}
我有点懵
我有两个 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();
}
}