Как называется экземпляр поля? - PullRequest
2 голосов
/ 16 июня 2010

Это может быть странный вопрос, но на самом деле это вызвало у меня некоторую головную боль.

В объектно-ориентированном программировании существуют общепринятые названия ключевых понятий. В нашей модели у нас есть классы с методами и полями . Теперь перейдем к миру данных:

  • Экземпляр класса называется объект .
  • Экземпляр поля называется ... что?

Значение? Разве термин значение не слишком широк для этого? Мне также было предложено "свойство", но не является ли свойство также частью модели, а не данных?

(Это не чисто академическое, я на самом деле кодирую эти понятия.)

Обновлено: позвольте мне привести пример. У меня есть класс "Человек" с полем "возраст". Если я создаю 20 экземпляров Person, каждый такой экземпляр называется объектом. Все идет нормально. Но допустим, я взял Человека «Игорь» и установил его возраст на 20. Какое место хранения, в котором сейчас находится число 20, называется? Это поле, или значение, или что-то еще?

Еще одно обновление: цитата из Павла Фельдмана в этот связанный вопрос описывает другими словами то, что я пытался описать выше:

"Я бы сказал, что в ООП поле на основе класса принадлежит классу и не имеет значения. Это так, когда вы смотрите на отражение в c # или java - у класса есть поля, у поля есть тип, имя и т. Д. И вы можете получить значение поля из объекта. Вы объявляете поле один раз, в классе. У вас есть много объектов с одинаковыми полями, но разными значениями. "

Ответы [ 5 ]

8 голосов
/ 16 июня 2010

Поле не может быть создано. Поле может содержать только значение. Значением может быть либо примитивный / собственный тип, либо ссылка / указатель на экземпляр объекта.


Согласно вашему обновлению: если объект представляет реальный мир, имеющий право , то его часто называют свойство . Под «сущностью реального мира» я подразумеваю что-то личное / человеческое, например Person, Product, Order, Car и т. Д. Если объект не представляет собой что-то личное / человеческое, например, List, String, Map, тогда это чаще называют полем. Это то, что я наблюдал до сих пор.

4 голосов
/ 16 июня 2010

Согласен с BalusC.Однако я думаю, что вы спрашиваете, как назвать поле экземпляра объекта.Помните, что объект содержит как состояние (данные), так и операции (методы), которые можно ссылаться на поле объекта как состояние

2 голосов
/ 16 июня 2010

Поле - это полевая погода, о которой вы говорите в контексте класса или в контексте объекта.

class C {
    int i;       // i is a field
}

и

obj = new C();
obj.i = 7;       // obj.i is a field

В отличие от параметр против аргумент нет различий в терминологии для "созданных" и "необоснованных" полей.

0 голосов
/ 16 июня 2010

Разве это не ответ в принципе, что у нас нет имени для значений полей экземпляра класса (или объекта)?

Это похоже на присвоение имени значению, возвращаемому методом экземпляракласса ...

Я полагаю, что "состояние" является лучшим ответом в любом случае, как предложено "BalusC".

0 голосов
/ 16 июня 2010

Экземпляр класса - это объект, класс может содержать поля, которые указывают на другие экземпляры объектов (или нулевой указатель). Не имеет смысла говорить экземпляр поля, скорее вы можете говорить об объекте, на который указывает конкретное поле, который может быть различным для разных экземпляров. Или вы можете говорить о типе поля (к какому классу оно относится)

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