繁体   English   中英

在类级别和方法中声明对象之间的区别

[英]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();
      }
}

那么它们之间有什么区别? 那我该怎么用呢?

情况1

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM