В объектно-ориентированном программировании , А переменный - член (иногда называемый член поля ) является переменным , которая связана с конкретным объектом , и доступным для всех его методов ( функции - членов ).
В программирования на базе классов языков, они разделены на два типа: переменные класса (также называемые статические переменные - члены ), где только одна копия переменной совместно со всеми экземплярами этого класса ; и переменные экземпляра , где каждый экземпляр класса имеет свою собственную независимую копию переменной. [1]
Примеры
C ++
class Foo { int bar ; // Переменная-член public : void setBar ( const int newBar ) { bar = newBar ; } };int main () { Foo rect ; // Локальная переменная возврат 0 ; }
Ява
public class Program { public static void main ( String [] args ) { // Это локальная переменная. Его продолжительность // определяется лексической областью. Foo foo ; } }public class Foo { / * Это переменная-член - новый экземпляр этой переменной будет создаваться для каждого нового экземпляра Foo. Продолжительность жизни этой переменной равна продолжительности жизни «этого» экземпляра Foo * / int bar ; }
Python
класс Foo : def __init__ ( self ): self . _bar = 0 @property def bar ( self ): вернуть себя . _бар @bar . установщик def bar ( self , new_bar ): self . _bar = new_barf = Foo () f . bar = 100 print ( f . bar )
Рубин
/ * Ruby имеет три типа переменных-членов: класс, экземпляр класса и экземпляр. * /класс Dog # Переменная класса определяется в теле класса двумя знаками at # и описывает данные обо всех * собаках * и * породах их производных собак (если есть) @@ sniffs = trueконецmutt = Собака . новый дворняга . класс . нюхает # => правдакласс Пудель < Собака # "Переменная экземпляра класса" определяется в теле класса с помощью единственного знака "at" # и описывает данные только о классе Poodle. Он не заявляет о своем родительском классе # или любом возможном подклассе, производном от Poodle @sheds = false # Когда создается новый экземпляр Poodle, по умолчанию он не обучен. «Обучено» переменная # является локальной по отношению к методу инициализации и используется для установки переменного экземпляра @trained # Переменной экземпляры определяется в пределах метода экземпляра и является членом экземпляра Пуделя Защиты инициализации ( обучено = ложь ) @trained = тренированный конец def has_manners? @ тренированный конецконецp = Пудель . новый р . класс . сараи # => ложный р . has_manners? # => ложь
PHP
phpclass Example { / ** * Пример переменной-члена экземпляра. * * Переменные-члены могут быть общедоступными, защищенными или частными. * * @var int * / public int $ foo ; / ** * Пример статической переменной-члена. * * @var bool * / protected static int $ bar ; / ** * Пример метода конструктора. * * @param int $ foo * / public function __construct ( int $ foo ) { // Устанавливает foo. $ это -> foo = $ foo ; } }// Создаем новый объект Example. // Установите для переменной-члена "foo" значение 5. $ example = new Example ( 5 );// Перезаписываем переменную-член "foo" на 10. $ example -> foo = 10 ;// Выводит 10. echo $ example -> foo ;
Lua
--region example --- @class example_c --- @field foo number Пример "переменной-члена". local example_c = {} местный example_mt = { __index = example_c }--- Создает объект из примера. --- @return example_c функция example_c . new ( foo ) - первый аргумент таблицы - это переменные-члены нашего объекта. - В объекте Lua есть метатаблица, а его переменные-члены представляют собой пары ключ-значение таблицы. вернуть setmetatable ({ foo = foo }, example_mt ) end --endregion- Создайте образец объекта. - Установите для переменной-члена "foo" значение 5. local example = example_c . новый ( 5 )- Замените значение переменной-члена "foo" значением 10. Пример . foo = 10- Печатает 10. print ( пример . Foo )
Смотрите также
Рекомендации
- ^ Ричард Г. Болдуин (1999-03-10). «В - Что такое переменная-член?» . http://www.dickbaldwin.com/ : Учебники по программированию Ричарда Болдуина . Проверено 12 августа 2011 .
Переменная-член - это член класса (переменная класса) или член объекта, созданного из этого класса (переменная экземпляра). Он должен быть объявлен внутри класса, но не в теле метода класса.