Java - 如何在导入主类时使用方法中的变量

时间:2014-01-26 15:14:47

标签: java eclipse class variables methods

我正在尝试使用我在主要部分的另一个类中创建的方法中的变量。

例如:

public class test {

public static int n;

public void getLower(){

    int p = 12;
}


public static void main(String[] args) {

    test example = new test();

    example.getLower();

    System.out.println(p);



}

}

但是,我收到错误消息'p无法解析为变量'。

我正在尝试做什么?

提前致谢!

4 个答案:

答案 0 :(得分:1)

  

我正在尝试做什么?

不,除非您声明p的方式与声明n的方式相同。

在您的示例中,n变量在getLower()方法中仅存在 ,其他方法无法访问它,因此您必须在类级别声明它:

public class test {

    public static int n;
    public static int p = 12;

    //.......
    public static void main(String[] args) {
        System.out.println(p);
    }
}

public class test {

    public static int n;
    public int p = 12;

    //.......
    public static void main(String[] args) {
        test t = new test();
        System.out.println(t.p);
    }
}

Read more about variable scope

答案 1 :(得分:1)

pgetLower方法中的本地变量。你没有“导入”这个方法 - 你只是在调用它。当方法返回时,变量甚至不再存在。

您可以考虑从方法中返回p的值:

public int getLower() {
    int p = 12;
    // Do whatever you want here
    return p;
}

然后将返回值分配给main中的局部变量:

int result = example.getLower();
System.out.println(result);

您应该阅读Java tutorial on variables以获取有关不同类型变量的更多信息。

答案 2 :(得分:0)

变量P在方法getLower中定义,因此它是局部变量,无法在main方法中访问。您需要全局定义变量,以便方法都可以访问它。所以可以使其成为静态或简单变量

答案 3 :(得分:0)

p是一个方法变量,也就是说,一旦方法返回就会被垃圾收集,所以你无法得到它,你可以只返回它的值并将它分配给调用函数中的局部变量