我试图将一些整数从另一个类中的方法调用到类中
public class Variables
{
public void vary()
{
int DSpr
}
}
public class BattleCalc
{
public static void main(String[] args)
{
Variables v = new Variables();
v.vary();
Scanner spr = new Scanner(System.in);
DSpr = Integer.parseInt(spr.nextLine()); //This line here
}
}
这是我的代码到目前为止,但在DSpr = Integer.parseInt ... eclipse给我一个错误“DSpr无法解析”。为什么不从Variables调用DSpr?
答案 0 :(得分:0)
试试这个:为了访问另一个类的变量,必须将它声明为类变量。
在您的班级变量中:
public class Variables{
int DSpr;
public void vary(){
//do assignment here or operation, if you want to create a method
DSpr = 0;
}
}
然后在你的主要课堂上打电话。
答案 1 :(得分:0)
int DSpr
在vary()
方法中在本地声明,因此无法在该方法之外访问。即使在它的封闭课程Variables
要访问另一个类中的变量,应将其定义为实例字段。 (或类变量/静态变量)
public class Variables
{
public int DSpr;
// OR
// public static int DSpr;
public void vary()
{
}
}
现在,您可以在BattleCalc
课程中访问以下内容:
Variables v = new Variables();
v.DSpr = Integer.parseInt(spr.nextLine());
// OR
// Variables.DSpr = Integer.parseInt(spr.nextLine());
答案 2 :(得分:0)
“将一些整数从另一个类中的方法调用到一个类中”对我来说毫无意义。方法中的变量仅对该方法是局部的
我认为你想要做的就是这样的事情
public class Variables
{
...
public int DSpr;
}
...
v.DSpr = Integer.parseInt(spr.nextLine());
即使DSpr成为Variables类的公共成员变量。
建议您改为使用private
变量并为类外的用户编写setter-getter方法以使用它。
答案 3 :(得分:0)
此处DSpr
变量范围仅限于此方法:
public void vary()
{
int DSpr
}
因此无法在其他任何地方访问。
如果您在其他地方使用,则需要重新声明:
int DSpr = Integer.parseInt(spr.nextLine());
答案 4 :(得分:0)
您想要从另一个类中为DSpr分配一个值。您应该在Variable类中将DSpr声明为成员变量,并通过调用该类中的setter来分配它。
您的代码将是这样的。
public class Variables
{
private int DSpr;
public void setDSPR(int DSpr)
{
this.DSpr=DSpr;
}
}
public class BattleCalc
{
public static void main(String[] args)
{
Variables v = new Variables();
Scanner spr = new Scanner(System.in);
try {
v.setDSPT(Integer.parseInt(spr.nextLine())); //This line here
} catch(NumberFormatException ex) {
System.out.print("Invalid Input.!")
}
}
}
答案 5 :(得分:0)
试试这个..
import java.io.*;
import java.util.*;
class Variables
{
public void vary()
{
int DSpr;
}
}
public class BattleCalc
{
public static void main(String[] args)
{
Variables v = new Variables();
v.vary();
Scanner spr = new Scanner(System.in);
int DSpr = Integer.parseInt(spr.nextLine()); //This line here
}
}
答案 6 :(得分:0)
是您应该在上面的代码中出错,这是我的解决方案 我假设您要更改vary()中的变量值。但是我不确定这个用法,因为你没有在BattleCalc中使用更改的值。 所以获取并设置整数变量,你可以使用getter和sertters但是在这里我会对你的代码进行最少的修改以使其易于理解(所以我不在这里使用getter和setter,尽管它是理想的做法)
public class Variables {
public int DSpr;
public void vary() {
// Change the value of DSpr
DSpr = 10;
}
}
public class BattleCalc {
public static void main(String[] args) {
Variables v = new Variables();
v.vary();
Scanner spr = new Scanner(System.in);
v.DSpr = Integer.parseInt(spr.nextLine()); //This line here
}
}