Страницы

Поиск по вопросам

среда, 22 января 2020 г.

Поле и/или переменная? Вот в чем вопрос. (Java)

#java #ооп #переменные


По ходу моего обучения языка java термин "поле" не дает мне покоя. Я ни в книгах,
ни в сети не нашел понятного объяснения этого явления. Кто-то говорит, что "поле" -
это "переменная", просто название другое (для примера: объект и экземпляр). В других
источниках - это разные вещи. 

Так вот, что такое "поле"? Дополнил примером. Он верный?

class MyClass{

int weigth = 50; //---поле
int height = 100; //---поле 
String str; //---поле

int myMethod(){

    int a; //---локальная переменная (НЕ поле)
    int b; //---локальная переменная (НЕ поле)
    str = "Это строка"; //---полю присваивается значение

    ...
}}

    


Ответы

Ответ 1



Понятие "поле" отнюдь не является чем-то новым в Java. Оно скорее переехало из других языков, существовавших задолго до Java. Так для меня "поле" всегда ассоциировалось с названием колонки в таблице. В Java объекты имеют определенный тип, который может быть классом, интерфейсом, или перечисляемым типом. Внутри этих объектов мы можем определять переменные, которые определяют состояние этих объектов. И наподобие с таблицами, которые имею названия полей для каждой записи, мы имеем названия переменных для каждого объекта класса. Не исключено, что внутри класса вы можете создавать другие переменные, например локальные переменные, или переменные параметры, которые видны в пределах блока или метода и тем самым не могут повлиять на состояние объекта. Такие переменные не являются полями. Более подробно можно почитать здесь. Понятие "поле" также имеет широкий спектр значений принятых в информатике и означает место, где находятся данные.

Ответ 2



На английском языке 2 разных терминов: field - для атрибута (переменной) в классе, array - для агрегатной переменной (переменной с многими значениями, доступными через индекс). Оба эти термины переводятся как поле. И так ваш пример может быть верным или нет - но в его контексте можно его считать верным.

Комментариев нет:

Отправить комментарий