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

时间:2015-05-31 16:05:07

标签: java class variables

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

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

3 个答案:

答案 0 :(得分:1)

<案例1

testObj是一个类级变量。

<案例2

testObj是一个局部变量。 局部变量是在方法或构造函数中声明的变量。

类级变量和局部变量之间的一个重要区别是访问说明符只能应用于类级变量而不能应用于局部变量。

答案 1 :(得分:0)

如果在某些方法运行之间共享此对象,则应使用第一个选项。在其他情况下(临时对象),您应该使用第二个。

答案 2 :(得分:0)

A的实例/对象范围内的两个声明之间的区别。

在第一种情况下,可以从类testObj的所有方法访问Test 在第二种情况下,只能从类testObj的{​​{1}}方法访问main()。虽然Test方法终止main()也从内存中删除了。

你必须使用它取决于具体情况。假设在某些情况下,您在testObj类的所有类中都需要A(即testObj)的实例 - 意味着类Test的几个方法使用相同的实例Test。然后在类A的所有方法之外声明testObj - 即作为实例变量。

当类Test的不同方法需要Test的不同实例时,您可以使用方法局部变量,如案例2所示。