java中'static int'和'int'之间的区别

时间:2010-02-04 10:20:51

标签: java

在java中我们何时何地使用'static int',它与'int'

的区别

7 个答案:

答案 0 :(得分:9)

看看这里:Understanding Instance and Class Members

  

当从同一个类蓝图创建多个对象时,它们每个都有自己不同的instance variables副本。 (...)

     

有时,您希望拥有所有对象共有的变量。这是通过静态修改器完成的。在声明中具有静态修饰符的字段称为静态字段或class variables

答案 1 :(得分:4)

好。

在声明成员变量时使用它,而static指的是您是否需要给定类的实例来访问它。

通常,static用于常量或“辅助”函数或变量。如果你有太多,如果你最终在一个类中组合静态和非静态变量,它最终会暗示不好的设计(尽管不是所有的时间)。

如果变量是static,则它的值在所有用法之间共享(即在对象的所有实例之间)。也就是说,如果您更改它,所有其他访问都将看到更改。

非静态变量每个实例都有一个唯一值(因为只能访问 per 实例)。

答案 2 :(得分:2)

static表示它不是特定于实例的。它属于class。通常它与最终结果一致。

public static final int MAX = 10000;  // Defined in MyClass

// Somewhere else you could do
int max = MyClass.MAX;  // notice no instance of MyClass needed.

编辑:它不一定是最终的,只要一个人小心,非最终变量就可以了。

答案 3 :(得分:2)

修饰符 static 将变量定义为类变量,这意味着只有一个变量。 没有它,变量是一个可实例化的变量,因此每个Object都存在这个变量。

例如:

class Test {
  static int i;
  int j;
}

class Test 2 {
   public static void main(String args[])  {
     Test test1 = new Test();
     Test test2 = new Test();
     test1.i = 1;
     test1.j = 2;
     test2.i = 3;
     test2.j = 4;
     System.out.println("test1.i: "+test1.i);
     System.out.println("test1.j: "+test1.j);
     System.out.println("test2.i: "+test2.i);
     System.out.println("test2.j: "+test2.j);
   }
}

如果您创建 Test 类的2个对象,则两个对象将“共享” i 变量。 但是每个对象都有自己的 j 变量。

在上面的例子中,输出将是

test1.i: 3
test1.j: 2
test2.i: 3
test2.j: 4

您可以在The Java Tutorials - Variables

了解更多相关信息

答案 4 :(得分:1)

static int: 每个应用程序一个变量 无需对象即可访问。

INT: 每个对象一个变量 没有对象就无法访问。

答案 5 :(得分:0)

在类中使用'int'意味着在类的每个实例上都存在一个整数字段。使用'static int'表示类上存在整数字段(而不是在类的每个实例上)

答案 6 :(得分:0)

static int,无需使用对象即可直接访问。 int,如果不使用对象,则无法直接访问。