如何访问;“内部变量”;来自Java中的对象?
我想知道如何从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
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
更好