如何访问;“内部变量”;来自Java中的对象?

如何访问;“内部变量”;来自Java中的对象?,java,oop,variables,Java,Oop,Variables,我想知道如何从Java中的对象(构造后声明的变量)访问内部变量。我尝试了以下代码: public class test1 { public test1(int bigNumber, int smallNumber) { int result = bigNumber - smallNumber; } } class invoke { public static void main(String[] args) { test1 t1

我想知道如何从Java中的对象(构造后声明的变量)访问内部变量。我尝试了以下代码:

public class test1 {
    public test1(int bigNumber, int smallNumber) {

        int result = bigNumber - smallNumber;

    }
}

class invoke {

    public static void main(String[] args) {

        test1 t1 = new test1(10, 5);
        System.out.println(t1.result); //this was an invalid statement

    }

}
在代码中,语句

System.out.println(t1.result);
这是无效的。为什么我不能检索对象的内部状态?有什么办法吗


提前感谢。

结果当前是一个局部变量,仅在包含方法的范围内可见。相反,将
result
设为实例变量

例如:

class test1 {
    int result;
    public test1(int bigNumber, int smallNumber) {
        result = bigNumber - smallNumber;
    }
}

result
未在
test1
实例的范围内定义。
它在
test1
构造函数的范围内定义。
要能够访问方法或构造函数中的变量,必须将其定义为字段,并且还应提供访问该变量的方法(允许其成为
私有
字段),例如:

public class test1 {
    private int result;
    public test1(int bigNumber, int smallNumber) {
       result = bigNumber - smallNumber;
    }
    public int getResult(){  
      return result;
    }
}
您可以通过以下方式了解对
结果的访问:

test1 t1 = new test1(10, 5);
System.out.println(t1.getResult());
请注意,
test1
不遵守java命名约定。
类名必须以大写开头:
Test1
更好