Переменная экземпляра - Instance variable

В объектно-ориентированного программирования с классы, переменная экземпляра это переменная определен в классе (т.е. переменная-член ), для которого каждый экземпляр объект класса имеет отдельную копию или экземпляр. Переменная экземпляра имеет сходство с переменная класса,[1] но является нестатической. Переменная экземпляра - это переменная, которая объявлена ​​в классе, но вне конструкторов, методов или блоков. Переменные экземпляра создаются при создании экземпляра объекта и доступны для всех конструкторов, методов или блоков в классе. Модификаторы доступа могут быть присвоены переменной экземпляра.

Переменная экземпляра не является переменная класса хотя есть сходство. Это тип атрибут класса (или свойство класса, поле или член данных). Та же дихотомия между пример и класс члены обращается к методы («функции-члены»); в классе могут быть оба методы экземпляра и методы класса.

Каждая переменная экземпляра живет в памяти на протяжении жизни объекта, которым она принадлежит.[2]

Переменные - это свойства, которые объект знает о себе. Все экземпляры объекта имеют свои собственные копии переменных экземпляра, даже если значение одинаково от одного объекта к другому. Один экземпляр объекта может изменять значения своих переменных экземпляра, не затрагивая все остальные экземпляры. Переменные экземпляра могут использоваться всеми методами класса, если метод не объявлен как статический.[3]

пример

структура Запрос {    статический int count1; // имя переменной не важно    int количество;    Запрос() {        количество = count1; // изменяет переменную экземпляра this-> number        ++count1; // изменяет переменную класса Request :: count1    }};int Запрос::count1 = 0;

В этом примере C ++ переменная экземпляра Номер запроса копия переменной класса Запрос :: count1 где каждому построенному экземпляру присваивается последовательное значение count1 прежде чем это увеличенный. поскольку количество переменная экземпляра, каждый Запрос объект содержит собственное уникальное значение; напротив, есть только один объект Запрос :: count1 доступны для всех экземпляров с одинаковым значением.

использованная литература

  1. ^ "Учебник по Java, переменные". docs.oracle.com. Oracle. Архивировано из оригинал 23 октября 2014 г.. Получено 23 октября 2014.
  2. ^ «Учебники по Java, понимание членов класса». docs.oracle.com. Oracle. Архивировано из оригинал 11 октября 2014 г.. Получено 23 октября 2014.
  3. ^ Матушек, Давид. "Статический". cis.upenn.edu. Пенсильванский университет. Архивировано из оригинал 23 октября 2014 г.. Получено 23 октября 2014.