A
是测试之外的另一个类
案例1:
public class Test{
A testObj;
public static void main(String[] args){
testObj=new A();
testObj.methodInsideClassA();
}
}
案例2:
public class Test{
public static void main(String[] args){
A testObj = new A();
testObj.methodInsideClassA();
}
}
那么他们之间有什么区别?我该怎么用?
答案 0 :(得分:1)
testObj是一个类级变量。
<案例2testObj是一个局部变量。 局部变量是在方法或构造函数中声明的变量。
类级变量和局部变量之间的一个重要区别是访问说明符只能应用于类级变量而不能应用于局部变量。
答案 1 :(得分:0)
如果在某些方法运行之间共享此对象,则应使用第一个选项。在其他情况下(临时对象),您应该使用第二个。
答案 2 :(得分:0)
A
的实例/对象范围内的两个声明之间的区别。
在第一种情况下,可以从类testObj
的所有方法访问Test
在第二种情况下,只能从类testObj
的{{1}}方法访问main()
。虽然Test
方法终止main()
也从内存中删除了。
你必须使用它取决于具体情况。假设在某些情况下,您在testObj
类的所有类中都需要A
(即testObj
)的实例 - 意味着类Test
的几个方法使用相同的实例Test
。然后在类A
的所有方法之外声明testObj
- 即作为实例变量。
当类Test
的不同方法需要Test
的不同实例时,您可以使用方法局部变量,如案例2所示。