![](/img/trans.png)
[英]How to access a variable which is declared in a method belonging to another Java class?
[英]Can i access the value of a variable of one method in another method if i have declared it as a member variable of the class in java?
如果已将其声明为Java中类的成员变量,是否可以访问另一个方法中一个方法的变量值?
class xxx{
public int[]yyy;
private boolean handleMessage{
...
int[]yyy = (int[]) msg.obj;
}
private zzz{
int[]sval= yyy;
}
}
yyy
的值会延续到sval
吗?
不,这会在方法范围内创建一个新变量,该变量将在方法结束时终止。 类级别成员仍然为null。
您需要做的就是改变
int[]yyy = (int[]) msg.obj;
至
yyy = (int[]) msg.obj;
但是请handleMessage
,如果不调用handleMessage
,而调用zzz
,则sval
仍为null
如果我已将其声明为Java中类的成员变量,是否可以访问另一个方法中一个方法的变量值?
不,你不能。 方法局部变量yyy
在声明的方法内部具有作用域。 您不能以任何方式在该方法之外访问它。
而且实例变量yyy
与方法局部变量yyy
没有任何关系。 两者是两个不同的。
您是对的...这就是成员变量的目的。
但是,您的清单中有一个小错误。 您已经定义了两个不同的yyy引用,一个在类级别,一个在方法级别。
您的分配应如下所示(无需在方法中再次创建新变量):
yyy = (int[]) msg.obj;
由于您在handleMessage()方法内创建了另一个变量yyy
,因此它具有方法范围。 除非您手动将其传递给其他方法,否则它不会携带到方法之外。
如果您只是在方法handleMessage()中为yyy
分配了值而不是创建一个值,则可以像下面的代码那样在yyy
获得分配给sval
的值。
class xxx{
public int[]yyy;
private boolean handleMessage{
...
yyy = (int[]) msg.obj;
}
private zzz{
int[]sval= yyy;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.