Attribute Descriptions (Описания атрибутов)
Список поддерживаемых атрибутов смотри в разделах:
w Class Attributes (Атрибуты класса);
w Specifying Property Attributes (Спецификация атрибутов свойств);
w Method Attributes (Атрибуты методов);
w Event Attributes (Атрибуты событий).
SpecifyingAttributeValues (Спецификация значений атрибутов)
Когда вы специфицируете значения атрибутов, все компоненты, содержащиеся внутри определяемого блока, поддерживают только эту спецификацию. Например, рассмотрим следующие наборы атрибутов свойств:
w Атрибут SetObservable свойства AccountBalance есть true (истина, да);
w Атрибут Hidden свойств SSNumber и CreditCardNumber есть true, а их атрибут SetAccess – private.
Следуя вышесказанному, ясно, что определения с разными установками атрибутов спецификации требуют разных блоков. Пример для предыдущих наборов атрибутов свойств имеем:
properties (SetObservable = true)
AccountBalance
end
properties (SetAccess = private, Hidden = true)
SSNumber
CreditCardNumber
end
Последовательность нескольких атрибутов специфицируется через запятые, как показано в последнем properties-блоке.
Атрибуты блока располагаются сразу после его ключевого слова, например:
classdef (Sealed = true,…) myclass
...
end
Simpler Syntax for true/false Attributes(Упрощенный синтаксис для значений true/false атрибутов)
Все атрибуты, значения которых могут быть true или false (ложь), по умолчанию являются false. Вы можете использовать упрощенный синтаксис для таких атрибутов: одно имя атрибута соответствует установке в true, а добавление к нему отрицания «~» – false. Например:
methods (Static)
...
end
есть то же самое, что и
methods (Static = true)
...
end
Для определения того же метода как false добавим оператор «~»:
methods (~Static)
...
end
Последнее есть то же самое, что и
methods (Static = false)
...
end
Sample Class Syntax (Пример синтаксиса класса)
Следующий код показывает синтаксис типового определения класса; оно не является функциональным, так как его ссылки (вызовы) не могут быть выполнены. Цель этой части – иллюстрация вариантов синтаксических конструкций:
classdef (ConstructOnLoad) employee < handle
% Class help goes here (Здесь пояснение для класса): атрибут
% ConstructOnLoad – регламентированный, устанавливается как
% «истина»; employee – имя создаваемого user-defined-класса
% (подкласса); handle – регламентированный абстрактный
% суперкласс.
properties% Атрибуты и их значения – по умолчанию.
Name % Property help goes here (Здесь пояснение для свойства):
% назначение user-defined-свойства Name с установкой
% его величины по умолчанию (пусто).
end
properties (Dependent) % Регламентированный атрибут
% Dependent устанавливается как «истина», остальные
% атрибуты – по умолчанию.
JobTitle % User-defined-свойство с величиной «пусто» по
% умолчанию.
end
properties (Transient) % Регламентированный атрибут
% Transient устанавливается как «истина», остальные
% атрибуты – по умолчанию.
OfficeNumber % User-defined-свойство с величиной «пусто»
% по умолчанию.
end
properties (SetAccess = protected,...
GetAccess = private) % Назначение величин
% двум регламентированным атрибутам, остальные
% атрибуты – по умолчанию.
EmpNumber % User-defined-свойство без величины (пусто).
end
events% Атрибуты и их значения – по умолчанию.
BackgroundAlert % User-defined-событие (пусто).
end
methods% Атрибуты и их значения – по умолчанию.
function Eobj = employee(name) % Method help here % (Здесь пояснение для метода) : конструктор объектов
% класса employee.
Eobj.Name = name; % Назначение величины name
% свойству Name объекта Eobj.
Eobj.EmpNumber = ...
employee.getEmpNumber; % Назначение
% величины, взятой из свойства getEmpNumber класса
% employee, свойству EmpNumber объекта Eobj.
end
function result = backgroundCheck(obj) % Функция-
% метод для объекта obj.
result = ...
queryGovDB(obj.Name,obj.SSNumber);% Вызов
% метода queryGovDB, использующего свойства
% Name и SSNumber объекта obj.
if result == false % Проверка значения result
% для определения порядка действий.
notify(obj,'BackgroundAlert'); % notify –
% регламентированное сообщение (запуск
% события) о событии ВackgroundAlert в объекте
% obj – источнике события.
end
end
function jobt = get.JobTitle(obj) % Функция-метод
% (запроса величины свойства JobTitle объекта obj)
% переопределяет стандартную функцию get.
jobt = currentJT(obj.EmpNumber); % Вызов
% метода currentJT, использующего величину
% свойства EmpNumber объекта obj.
end
function set.OfficeNumber(obj,setvalue)
% Функция-метод set.OfficeNumber (установки
% величины свойства OfficeNumber объекта obj)
% переопределяет стандартную функцию set; для установки
% используется параметр setvalue.
if isInUse(setvalue) % Вызов метода isInUse
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.