Что определяет состояние объекта? - PullRequest
0 голосов
/ 17 января 2020

Согласно Java Книге параллелизма на практике:

Неформально состояние объекта - это его данные, хранящиеся в переменных состояния, таких как поля экземпляра или состояния c.

Насколько я понимаю из Java концепций или вообще, переменные состояния / экземпляра определяют состояние объекта. Насколько я знаю, поля stati c относятся к переменным класса. В каких случаях поля stati c определяют состояние объекта?

Ответы [ 2 ]

2 голосов
/ 17 января 2020

Для меня это звучит несколько двусмысленно - возможно, можно утверждать, что переменные состояния по умолчанию c являются неотъемлемым состоянием объекта, одинаковым для всех объектов данного типа.

Лично я не думаю, что переменные stati c составляют состояние объекта . Эта цитата из Oracle Java учебника , кажется, поддерживает мое понимание.

Иногда вам нужны переменные, которые являются общими для всех объектов. Это достигается с помощью модификатора stati c. Поля, которые имеют в своем объявлении модификатор stati c, называются полями stati c или переменными класса. Они связаны с классом, а не с любым объектом . Каждый экземпляр класса совместно использует переменную класса, которая находится в одном фиксированном месте в памяти. Любой объект может изменить значение переменной класса, но переменными класса также можно манипулировать, не создавая экземпляр класса.

Например, предположим, что вы хотите создать несколько объектов Bicycle и назначить каждому серийный номер. число, начиная с 1 для первого объекта. Этот идентификационный номер уникален для каждого объекта и поэтому является переменной экземпляра. В то же время вам нужно поле для отслеживания того, сколько объектов Bicycle было создано, чтобы вы знали, какой идентификатор назначить следующему. Такое поле относится не к какому-либо отдельному объекту, а к классу в целом .

С учетом сказанного переменные stati c могут отслеживать состояние общее состояние приложения, о котором говорит другой вопрос, основанный на тех же книгах: Состояние объекта в публикации c stati c поля

0 голосов
/ 17 января 2020

Из вики

В объектно-ориентированном программировании также существует концепция статической переменной-члена, которая является "переменной класса" статически определенного класса, то есть переменной-члена данный класс, который является общим для всех экземпляров (объектов) и доступен как переменная-член этих объектов

Поскольку переменная stati c в классе является общей для всех экземпляров (объектов) класс, он играет роль прямо или косвенно в состоянии этого объекта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...