我知道静态方法中无法访问非静态的变量或方法。
但现在我就是想完成这一操作
在静态方法中如何访问非静态方法中的局部变量呢?
如:
class A
{
public void method()
{
final int b = 8;
}
public static void method2()
{
//在这里怎么去访问 b = 8 呢?
}
} 作者: 阳春烟景 时间: 2014-3-30 12:19
直接访问肯定是不可以的,但通过在静态方法的内部创建对象(或形式参数来传递的对象)来间接访问是完全可以的.
你说的这个 我知道 我想的是怎么拿去 b 而不是去调用方法作者: 刘望望 时间: 2014-3-30 13:36
想要拿到b,只能在method方法中返回b,然后在method2方法中调用method方法获取返回值。
class A
{
public int method()
{
final int b = 8;
return b;
}
public static void method2()
{
//在这里怎么去访问 b = 8 呢?
A a = new A();
int b = a.method();
}
}
或者修改method2方法接收int类型参数,在method方法中调用method2方法,将b传进去
class A
{
public void method()
{
final int b = 8;
A.method2(b);
}
public static void method2(int b)
{
//在这里怎么去访问 b = 8 呢?
int b = b;
}
}
如果要想把b直接拿过来用是不现实的,因为b本身就是一个局部变量,作用域只限于该方法内,和是不是在静态方法内无关作者: 向阳泪无痕 时间: 2014-3-30 14:01