在 Java 中计数为静态和非静态时的计数差异
Difference in the number of count when count is static and non static in Java
我正在尝试下面的程序
class Car1
{
static int count;
Car1()
{
System.out.println("Car instance has been created...");
}
Car1(int arg) {
System.out.println("Car instance has been created...");
}
Car1(double arg) {
System.out.println("Car instance has been created...");
}
Car1(int arg1, double arg2) {
System.out.println("Car instance has been crreated...");
}
{
count++;
}
}
public class MainClass10
{
public static void main(String[] args) {
System.out.println("Program Started");
new Car1(11);
new Car1(11, 12.11);
for (int i = 0; i<9; i++)
{
new Car1();
}
Car1 c1 = new Car1(11.12);
System.out.println("Total number of cars: " + c1.count);
System.out.println("Program Ended");
}
}
计数的输出是12
当我通过将计数变量更改为非静态来尝试此操作时 'number of count is 1'.
谁能帮我理解一下?
静态意味着计数器将在 Car1
class 的所有实例之间共享。
另一方面,如果您不使用静态计数器,则 Car class 的每个实例(每次您执行 new Car1(...)
)都会有自己的计数器。它不是共享的。
因此,您只会打印实例 c1 的计数器。
如果您不明白,请查看 this post 以获取其他解释。
我正在尝试下面的程序
class Car1
{
static int count;
Car1()
{
System.out.println("Car instance has been created...");
}
Car1(int arg) {
System.out.println("Car instance has been created...");
}
Car1(double arg) {
System.out.println("Car instance has been created...");
}
Car1(int arg1, double arg2) {
System.out.println("Car instance has been crreated...");
}
{
count++;
}
}
public class MainClass10
{
public static void main(String[] args) {
System.out.println("Program Started");
new Car1(11);
new Car1(11, 12.11);
for (int i = 0; i<9; i++)
{
new Car1();
}
Car1 c1 = new Car1(11.12);
System.out.println("Total number of cars: " + c1.count);
System.out.println("Program Ended");
}
}
计数的输出是12 当我通过将计数变量更改为非静态来尝试此操作时 'number of count is 1'.
谁能帮我理解一下?
静态意味着计数器将在 Car1
class 的所有实例之间共享。
另一方面,如果您不使用静态计数器,则 Car class 的每个实例(每次您执行 new Car1(...)
)都会有自己的计数器。它不是共享的。
因此,您只会打印实例 c1 的计数器。
如果您不明白,请查看 this post 以获取其他解释。