Итак, это настоящий вопрос для начинающих, но я постараюсь объяснить его настолько просто, насколько это возможно, так как это может быть трудно обернуть, когда вы начинаете.
Когда вы делаете
Example obj1 = new Example(5);
Example obj2 = new Example(10);
Вы делаете два объекта в оперативной памяти вашего компьютера.
Каждый из них получает индивидуальный адрес памяти и занимает столько места, сколько им нужно.
Вы можете видеть Объект в вашей оперативной памяти как дом на улице.
Example Benny = new Example(5);
Example Jacob = new Example(10);
Улица теперь имеет два дома. Бенни и Джейкоб.
Номер дома Бенни 105
Номер дома Иакова 42
Их дома были построены точно так же. Разница лишь в том, что Бенни может принять 5 гостей, а Джейкоб может принять 10 гостей.
Когда приходит такси, чтобы добавить гостя, он получает команду, добавляет гостя на улицу № 105. Такси едет на улицу № 105, игнорирует все дома, не являющиеся номером 105, и добавляет гостя в этот дом. .
Затем он возвращается к диспетчеру и получает команду, добавляет гостя на улицу № 42. Затем он едет на улицу № 42, добавляет гостя в этот дом.
В связи с тем, что у них разные адреса, никогда не происходит путаницы в отношении того, какие гости добавлены в какой дом. Дома не разделяют гостевые места в этой настройке.
Я добавил диаграмму ниже, чтобы показать, что у них разные списки и разные потоки.
* * 1030
Надеюсь, это немного поможет вам понять, как это работает.