[英]difference between declaring an object on class level and in methods
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();
}
}
那么它们之间有什么区别? 那我该怎么用呢?
testObj是一个类级别的变量。
testObj是局部变量。 局部变量是在方法或构造函数中声明的变量。
类级变量和局部变量之间的一个重要区别是, 访问说明符只能应用于类级变量,而不能应用于局部变量。
如果此对象应在某些方法运行之间共享,则应使用第一个选项。 在其他情况下(临时对象),应使用第二个。
这两个声明之间的区别在于A
的实例/对象的范围。
在第一种情况下,可从Test
类的all方法访问testObj
;在第二种情况下,仅可从Test
类的main()
方法访问testObj
。 当main()
方法终止时, testObj
也从内存中删除。
您必须使用什么取决于情况。 假设在你需要的情况下有些情况下A
(即testObj
在所有)在您的Test
类-指类的几种方法Test
使用相同的实例A
。 然后,在Test
类的所有方法之外声明testObj
,即将其作为实例变量。
当类Test
不同方法需要A
不同实例时,可以像情况2一样使用方法局部变量。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.