如果在java中将一个方法的变量声明为该类的成员变量,那么我可以在另一个方法中访问该方法的变量的值吗?
如果在java中将一个方法的变量声明为该类的成员变量,那么我可以在另一个方法中访问该方法的变量的值吗如果在java中将一个方法的变量声明为该类的成员变量,那么我可以在另一个方法中访问该方法的变量的值吗?,java,class,variables,methods,Java,Class,Variables,Methods,如果在java中将一个方法的变量声明为该类的成员变量,那么我可以在另一个方法中访问该方法的变量的值吗 class xxx{ public int[]yyy; private boolean handleMessage{ ... int[]yyy = (int[]) msg.obj; } private zzz{ int[]sval= yyy; } } yyy的值是否结转到sval?否,该值在方法范围内创建一
class xxx{
public int[]yyy;
private boolean handleMessage{
...
int[]yyy = (int[]) msg.obj;
}
private zzz{
int[]sval= yyy;
}
}
yyy
的值是否结转到sval
?否,该值在方法范围内创建一个新变量,该变量在方法结束后即消失。类级别成员仍然为空
你需要做的是改变
int[]yyy = (int[]) msg.obj;
到
但是请记住,如果未调用
handleMessage
,而zzz
为,则sval
仍将为null否,这将在方法范围内创建一个新变量,该变量在方法结束后即消失。类级别成员仍然为空
你需要做的是改变
int[]yyy = (int[]) msg.obj;
到
但请记住,如果未调用handleMessage
,而zzz
为,则sval
仍将为空
我可以在另一个方法中访问一个方法的变量值吗
如果我在java中将它声明为类的成员变量
class xxx{
public int[]yyy;
private boolean handleMessage{
...
int[]yyy = (int[]) msg.obj;
}
private zzz{
int[]sval= yyy;
}
}
不,你不能。方法局部变量yyy
在其声明的方法中有一个作用域。您不能以任何方式在该方法之外访问它
实例变量yyy
与方法局部变量yyy
没有任何关系。两者都是两码事
我可以在另一个方法中访问一个方法的变量值吗
如果我在java中将它声明为类的成员变量
class xxx{
public int[]yyy;
private boolean handleMessage{
...
int[]yyy = (int[]) msg.obj;
}
private zzz{
int[]sval= yyy;
}
}
不,你不能。方法局部变量yyy
在其声明的方法中有一个作用域。您不能以任何方式在该方法之外访问它
实例变量
yyy
与方法局部变量yyy
没有任何关系。两者都是不同的。你说得对。。。这就是成员变量的用途
然而,您的列表中有一个小错误。
您已经定义了两个不同的yyy引用,一个在类级别,另一个在方法级别
您的赋值应该是这样的(无需在方法中再次创建新变量):
你是对的。。。这就是成员变量的用途 然而,您的列表中有一个小错误。 您已经定义了两个不同的yyy引用,一个在类级别,另一个在方法级别 您的赋值应该是这样的(无需在方法中再次创建新变量):
由于在方法handleMessage()内创建了另一个变量
yyy
,因此它具有方法作用域。除非您手动将其传递给其他方法,否则它不会携带到方法外部
在这种情况下,如果您刚刚在方法handleMessage()中为yyy
赋值,而不是创建一个,那么您将在yyy
中获得分配给sval
的值,如下代码所示
class xxx{
public int[]yyy;
private boolean handleMessage{
...
yyy = (int[]) msg.obj;
}
private zzz{
int[]sval= yyy;
}
}
由于在方法handleMessage()内创建了另一个变量
yyy
,因此它具有方法作用域。除非您手动将其传递给其他方法,否则它不会携带到方法外部
在这种情况下,如果您刚刚在方法handleMessage()中为yyy
赋值,而不是创建一个,那么您将在yyy
中获得分配给sval
的值,如下代码所示
class xxx{
public int[]yyy;
private boolean handleMessage{
...
yyy = (int[]) msg.obj;
}
private zzz{
int[]sval= yyy;
}
}