Как создать в конструкторе объекта счётчик, который будет вписывать в поле объекта номер его создания? То есть первый объект имеет номер 1, следующий-- 2...
Попробуйте так
class MyClass {
private static int counter;
public MyClass() {
//...
counter++;
}
public static int getNumOfInstances() {
return counter;
}
}
Отсюда
class Counted {
private static final AtomicInteger COUNTER = new AtomicInteger(1);
private final int id;
public Counted() {
id = COUNTER.getAndIncrement();
}
public int getId() {
return id;
}
}
public static void main(String... args) {
System.out.println(new Counted().getId()); //1
System.out.println(new Counted().getId()); //2
System.out.println(new Counted().getId()); //3
}
Использование AtomicInteger гарантирует атомарность инкремента и предотвращает различные ошибки при многопоточном использовании.
Используй static переменные, в то время когда у каждого объекта свои личные нестатические переменные, static переменные существуют на уровне класса, т.е к ним можно обращаться без создания объекта, соответсвенно что для всех объектов они будут одинаковыми.
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники