В объектно-ориентированного программирования с классами , переменная экземпляра является переменная , определенная в (т.е. класса переменной - члена ), для которого каждый проиллюстрированный объект класса имеет отдельную копию или экземпляр. Переменная экземпляра имеет сходство с переменным классом , [1] , но не является статическим. Переменная экземпляра - это переменная, которая объявлена в классе, но вне конструкторов, методов или блоков. Переменные экземпляра создаются при создании экземпляра объекта и доступны для всех конструкторов, методов или блоков в классе. Модификаторы доступа могут быть присвоены переменной экземпляра.
Переменная экземпляра не является переменной класса, хотя есть сходства. Это тип атрибута класса (или свойства класса, поля или члена данных). Та же дихотомия между членами экземпляра и класса применима и к методам («функциям-членам»); класс может иметь как методы экземпляра и методы класса .
Каждая переменная экземпляра живет в памяти на протяжении жизни объекта, которым она принадлежит. [2]
Переменные - это свойства, которые объект знает о себе. Все экземпляры объекта имеют свои собственные копии переменных экземпляра, даже если значение одинаково от одного объекта к другому. Один экземпляр объекта может изменять значения своих переменных экземпляра, не затрагивая все остальные экземпляры. Переменные экземпляра могут использоваться всеми методами класса, если метод не объявлен как статический. [3]
Пример
struct Request { статический int count1 ; // имя переменной не важно int number ; Запрос () { число = счетчик1 ; // изменяет переменную экземпляра this-> number ++ count1 ; // изменяет переменную класса Request :: count1 }};int Request :: count1 = 0 ;
В этом примере C ++ переменная экземпляра Request::number
является копией переменной класса, Request::count1
где каждому созданному экземпляру присваивается последовательное значение count1
до его увеличения . Поскольку number
это переменная экземпляра, каждый Request
объект содержит свое собственное значение; напротив, Request::count1
для всех экземпляров с одинаковым значением доступен только один объект .
Рекомендации
- ^ «Учебник по Java, переменные» . docs.oracle.com . Oracle. Архивировано из оригинального 23 октября 2014 года . Проверено 23 октября 2014 года .
- ^ «Учебники по Java, понимание членов класса» . docs.oracle.com . Oracle. Архивировано из оригинального 11 октября 2014 года . Проверено 23 октября 2014 года .
- ^ Матушек, Давид. «Статический» . cis.upenn.edu . Пенсильванский университет. Архивировано из оригинального 23 октября 2014 года . Проверено 23 октября 2014 года .