Java - How to use a variable from a method when imported into the main class

我们两清 提交于 2020-01-06 13:26:33

问题


I am trying to use a variable from a method I created in another class in the main section.

For example:

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);



}

}

However, I get the error message 'p cannot be resolved to a variable'.

Is what I'm trying to do possible?

Thanks in advance!


回答1:


p is a local variable within the getLower method. You're not "importing" the method - you're just calling it. When the method has returned, the variable no longer even exists.

You could consider returning the value of p from the method:

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

Then assign the return value to a local variable in main:

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

You should read the Java tutorial on variables for more information about the different kinds of variables.




回答2:


Is what I'm trying to do possible?

No, unless you declare p the same way you are declaring n.

In your example, the n variable exists only in the getLower() method, it's not accessible by other methods, so you have to declare it at class-level:

public class test {

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

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

or

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




回答3:


varaiable P is defined in the method getLower so it is local variable which cant be accessed in main method.You need to define the variable globally so that both the method can access it.So can make it static or simple variable




回答4:


p is a method variable, that means, it is garbage collected as soon as the method returns, so you can't get it, you can just return it's value and assign it to a local variable in the caller function



来源:https://stackoverflow.com/questions/21365098/java-how-to-use-a-variable-from-a-method-when-imported-into-the-main-class

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!