在java中我们何时何地使用'static int',它与'int'
的区别答案 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
了解更多相关信息
答案 4 :(得分:1)
static int: 每个应用程序一个变量 无需对象即可访问。
INT: 每个对象一个变量 没有对象就无法访问。
答案 5 :(得分:0)
在类中使用'int'意味着在类的每个实例上都存在一个整数字段。使用'static int'表示类上存在整数字段(而不是在类的每个实例上)
答案 6 :(得分:0)
static int
,无需使用对象即可直接访问。
int
,如果不使用对象,则无法直接访问。