Назад к вопросам
JuniorТеорияЧасто
Что выведет программа?
public class Main {
public static void main(String[] args) {
Counter a = new Counter();
new Counter();
System.out.println(Counter.count + " " + a.id);
}
}
class Counter {
static int count;
int id;
Counter() { id = ++count; }
}2 1
- Ждать
1 1: полеstaticодно на весь класс, поэтому каждыйnewприбавляет к тому жеcount, и он доходит до 2. - Ждать
2 2:id = ++countодин раз копирует текущее значение в объект, и дальнейшие измененияcountдоa.idне доходят.
- Почему статический метод может прочитать
count, но неid? - Что станет с программой, если объявить
countбезstatic?