public static void main(String[] args) {
Cat cat1 = new Cat();
Cat cat2 = new Cat();
Cat cat3 = new Cat();
Cat cat4 = new Cat();
Cat cat5 = new Cat();
Cat cat6 = new Cat();
Cat cat7 = new Cat();
Cat cat8 = new Cat();
Cat cat9 = new Cat();
Cat cat10 = new Cat();
System.out.println (Cat.catCount);
}
public static class Cat {
public static int catCount = 0;
public Cat() {
Cat.catCount = catCount+1;
}
}
}
Результат :
10
В сравнении с этим :
public static void main(String[] args) {
Cat cat1 = new Cat();
System.out.println (Cat.catCount);
Cat cat2 = new Cat();
System.out.println (Cat.catCount);
Cat cat3 = new Cat();
System.out.println (Cat.catCount);
Cat cat4 = new Cat();
System.out.println (Cat.catCount);
Cat cat5 = new Cat();
System.out.println (Cat.catCount);
Cat cat6 = new Cat();
System.out.println (Cat.catCount);
Cat cat7 = new Cat();
System.out.println (Cat.catCount);
Cat cat8 = new Cat();
System.out.println (Cat.catCount);
Cat cat9 = new Cat();
System.out.println (Cat.catCount);
Cat cat10 = new Cat();
System.out.println (Cat.catCount);
}
public static class Cat {
public static int catCount = 0;
public Cat() {
Cat.catCount = catCount+1;
}
}
}
Результат :
1
2
3
4
5
6
7
8
9
10
Просто хочу понять, как работают конструкторы без параметров, то есть если их нет, то объект берет все что есть в конструкторе, без разбора?
А у cat6 будет значение, 6, или переменная идет отдельно от объектов?
Или она хранит каждое значение в каждом объекте, что то вроде счетчика?