Java 如何在另一个方法中调用变量?

Java 如何在另一个方法中调用变量?,java,Java,如何在同一类中的另一方法中调用变量 public void example(){ String x='name'; } public void take(){ /*how to call x variable*/ } 首先声明接受参数的方法: public void take(String s){ // } 然后通过它: public void example(){ String x = "name"; take(x); } 使用实例变

如何在同一
类中的另一
方法中调用变量

public void example(){    
    String x='name';
}

public void take(){
    /*how to call x variable*/
}

首先声明接受参数的方法:

public void take(String s){
    // 
}
然后通过它:

public void example(){
    String x = "name";
    take(x);
}


使用实例变量不是一个好的选择,因为它需要在调用
take()
之前调用一些代码来设置值,而
take()
对此没有控制权,这可能会导致错误。而且它也不是线程安全的

因为它们在不同的范围内,所以不能

解决此问题的一种方法是将x设为成员变量,如下所示:

String x;

public void example(){
    this.x = "name";
}

public void take(){
    // Do stuff to this.x
}

将其作为类的实例变量:

public class MyClass
{
    String x;

    public void example(){ x = "name"; } // note the double quotes
    public void take(){ System.out.println( x ); }
}

你能不能解释一下(用文字)为什么这会回答OPs的问题,而不是仅仅发布一个代码片段?这将大大改进您的答案。我不能同意这是“一个不好的选择”。OP已经面临这样一种情况,即“
x
已被设置”,这将是线程安全的(如果有多个线程试图访问它)。这就是他的设计,他在帖子中没有提到线程。实例变量将解决他描述的问题。
public class Test
{

static String x;
public static void method1
{
x="name";
}

public static void method2
{

System.out.println(+x);

}

}