Статические данные относятся к данным, что все объекты доли класса и что можно изменить после создания.
Используйте статические данные, чтобы задать счетчики, используемые экземплярами класса или другими данными, которые являются общими для все объекты класса. В отличие от данных об экземпляре, статические данные не варьируются от одного объекта до другого. MATLAB® обеспечивает несколько способов задать статические данные, в зависимости от ваших требований.
Классы могут использовать персистентную переменную, чтобы хранить статические данные. Задайте статический метод или локальную функцию, в которой вы создаете персистентную переменную. Метод или функция обеспечивают доступ к этой переменной. Используйте этот метод, когда это необходимо, чтобы сохранить одну или две переменные.
Сохранение объекта класса, задающего персистентную переменную, не сохраняет статические данные, сопоставленные с классом. Чтобы сохранить ваши статические данные в объекте или задать более обширные данные, используют статический метод объекта данных Статический Объект данных
StoreData
класс задает статический метод, который объявляет персистентную переменную Var
. setgetVar
метод обеспечивает набор, и получите доступ к данным в персистентной переменной. Поскольку setgetVar
метод имеет открытый доступ, можно установить и хранить данные в персистентной переменной глобально. Управляйте осциллографом доступа путем установки метода Access
атрибут.
classdef StoreData methods (Static) function out = setgetVar(data) persistent Var; if nargin Var = data; end out = Var; end end end
Установите значение переменной путем вызова setgetVar
с входным параметром. Метод присваивает входное значение персистентной переменной:
StoreData.setgetVar(10);
Получите значение переменной путем вызова setgetVar
без входного параметра:
a = StoreData.setgetVar
a =
10
Очистите персистентную переменную путем вызова clear
на StoreData
класс:
clear StoreData
a = StoreData.setgetVar
a = []
Добавьте метод как setgetVar
к любому классу, в котором вы хотите поведение статического свойства.
Чтобы хранить более обширные данные, задайте класс Handle с публичными свойствами. Присвойте объект класса к постоянному свойству класса, который использует статические данные. Этот метод полезен, когда это необходимо, для:
Добавьте больше свойств или методов, которые изменяют данные.
Сохраните объекты класса данных и перезагрузите статические данные.
SharedData
класс является классом Handle, который позволяет вам сослаться на те же данные объектов от нескольких переменных указателя:
classdef SharedData < handle properties Data1 Data2 end end
UseData
класс является заглушкой класса, который использует данные, хранимые в SharedData
класс. UseData
класс хранит указатель на SharedData
объект в постоянном свойстве.
classdef UseData properties (Constant) Data = SharedData end % Class code here end
Data
свойство содержит указатель SharedData
объект. MATLAB создает SharedData
возразите при загрузке UseData
класс. Все впоследствии созданные экземпляры UseData
класс относится к тому же SharedData
объект.
Инициализировать SharedData
свойства объектов, загрузка theUseData
класс путем ссылки на постоянное свойство.
h = UseData.Data
h = SharedData with properties: Data1: [] Data2: []
Используйте указатель на SharedData
возразите, чтобы присвоить данные значениям свойств:
h.Data1 = 'MyData1'; h.Data2 = 'MyData2';
Каждый экземпляр UseData
класс относится к тому же объекту указателя:
a1 = UseData; a2 = UseData;
Сошлитесь на данные с помощью переменной объекта:
a1.Data.Data1
ans = MyData1
Присвойте новое значение свойствам в SharedData
объект:
a1.Data.Data1 = rand(3);
Все новые и существующие объекты UseData
доля класса тот же SharedData
объект. a2
теперь имеет rand(3)
данные, которые были присвоены a1
на предыдущем шаге:
a2.Data.Data1
ans = 0.8147 0.9134 0.2785 0.9058 0.6324 0.5469 0.1270 0.0975 0.9575
Чтобы повторно инициализировать постоянное свойство, очистите все экземпляры UseData
класс и затем очищает класс:
clear a1 a2 clear UseData
Чтобы сохранить постоянные значения, которые не изменяются, присвойте данные постоянному свойству. Все экземпляры класса совместно используют то же значение для того свойства. Управляйте осциллографом доступа к постоянным свойствам путем установки свойства Access
атрибут.
Единственный способ изменить значение постоянного свойства состоит в том, чтобы изменить определение класса. Используйте постоянные свойства как общедоступные итоговые статические поля на Java®.