我正在尝试使用我在主要部分的另一个类中创建的方法中的变量。
例如:
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无法解析为变量'。
我正在尝试做什么?
提前致谢!
答案 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);
}
}
答案 1 :(得分:1)
p
是getLower
方法中的本地变量。你没有“导入”这个方法 - 你只是在调用它。当方法返回时,变量甚至不再存在。
您可以考虑从方法中返回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是一个方法变量,也就是说,一旦方法返回就会被垃圾收集,所以你无法得到它,你可以只返回它的值并将它分配给调用函数中的局部变量