Статические данные относятся к данным, что все объекты доли класса и что можно изменить после создания.
Используйте статические данные, чтобы задать счетчики, используемые экземплярами класса или другими данными, которые являются общими для все объекты класса. В отличие от данных об экземпляре, статические данные не варьируются от одного объекта до другого. 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.setgetVara =
[]Добавьте метод как 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®.