如何从单独的类中的方法调用我的整数

时间:2012-12-27 06:06:17

标签: java eclipse

我试图将一些整数从另一个类中的方法调用到类中

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?

7 个答案:

答案 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 DSprvary()方法中在本地声明,因此无法在该方法之外访问。即使在它的封闭课程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
    }
}