Я понимаю, как показано ниже, и я не говорю, что это на 100% правильно, я могу ошибаться.
Переменная — это то, что вы объявляете, что может по умолчанию изменяться и иметь разные значения, но также может быть явно указано, что оно является окончательным. В Java это будет:
public class Variables {
List<Object> listVariable; // declared but not assigned
final int aFinalVariableExample = 5; // declared, assigned and said to be final!
Integer foo(List<Object> someOtherObjectListVariable) {
// declare..
Object iAmAlsoAVariable;
// assign a value..
iAmAlsoAVariable = 5;
// change its value..
iAmAlsoAVariable = 8;
someOtherObjectListVariable.add(iAmAlsoAVariable);
return new Integer();
}
}
Таким образом, переменная — это все, что объявлено и может содержать значения. Например, вышеприведенный метод foo возвращает переменную. Он возвращает переменную типа Integer, которая содержит адрес памяти нового Integer(); Все остальное, что вы видите выше, также является переменными, listVariable, aFinalVariableExample и объясняется здесь:
Поле — это переменная, область действия которой более ясна (или конкретна). Переменная, возвращаемая из области видимости метода foo, в приведенном выше примере неясна, поэтому я бы не стал называть ее полем. С другой стороны, iAmAlsoVariable — это «локальное» поле, ограниченное областью действия метода foo, а listVariable — это поле «экземпляра», где область действия поля (переменной) ограничена областью действия объектов.
Свойство — это поле, к которому можно получить доступ/изменить. Любое поле, которое предоставляет геттер/сеттер, является свойством.
Я не знаю, что такое атрибут, и я также хотел бы повторить, что это мое понимание того, что такое переменные, поля и свойства.
person
Koray Tugay
schedule
20.12.2016