通过另一种方法获取方法的局部变量

Jan*_*amu 2 java oop

如何在不使用java中的参数的情况下获取在另一个方法中声明和初始化的值?

public class Value {
    void method1()
    {
        int demo=10;
        System.out.println("methd 1"+demo);
    }
    void method2()
    {
        System.out.println("method 2"+demo);
    }

    public static void main(String[] args) {
        Value obj = new Value ();
        obj.method1();
        obj,method2();
    }
}
Run Code Online (Sandbox Code Playgroud)

这里变量demo在method1中声明并且现在分配了一个值我需要在方法2中获取demo的值,这可能没有任何参数,全局声明和没有getter setter方法吗?

T.J*_*der 6

不,这是不可能的,因为demo一旦method1返回就不存在了.这是一个局部变量method1.

...没有任何参数,全局声明和没有getter setter方法?

如果通过"全局声明"你的意思是创建demo一个实例字段(这不是一个全局的,但我认为这就是你的意思),这几乎可以排除一切.

但为了完整性,这里demo是一个实例字段:

public class Value {
    private int demo;

    void method1()
    {
        this.demo = 10;
        System.out.println("method 1" + this.demo);
    }
    void method2()
    {
        System.out.println("method 2" + this.demo);
    }

    public static void main(String[] args) {
        Value obj = new Value ();
        obj.method1();
        obj.method2();
    }
}
Run Code Online (Sandbox Code Playgroud)

你不要求使用this.访问它的时候,但这样做清楚它是一个实例字段,不是一个局部变量.