Изменение порядка и количества свойств, отображаемых для объекта класса.
Предположим, определение класса содержит следующее определение свойства:
properties Name JobTitle Department Salary Password end
В отображении скалярного объекта по умолчанию MATLAB ® отображает все общие свойства вместе с их значениями. Однако требуется отображать толькоDepartment, JobTitle, и Name, в таком порядке. Это можно сделать путем деривации из CustomDisplay и переопределение getPropertyGroups способ.
Ваше переопределение
Определяет метод Access как protected для соответствия определению в CustomDisplay суперкласс
Создание массива ячеек с именами свойств в требуемом порядке
Возвращает значение PropertyGroup объект, созданный из массива ячеек списка свойств
methods (Access = protected) function propgrp = getPropertyGroups(~) proplist = {'Department','JobTitle','Name'}; propgrp = matlab.mixin.util.PropertyGroup(proplist); end end
При создании PropertyGroup объект с использованием массива ячеек с именами свойств, MATLAB автоматически
Добавляет значения свойств для отображения скалярного объекта
Использует имена свойств без значений для отображения нескалярных объектов (включая пустые массивы объектов)
getPropertyGroups не вызывается для создания отображения скалярного дескриптора удаленного объекта.
Учитывая те же свойства класса, которые использовались в предыдущем разделе, можно изменить значение, отображаемое для свойств, построив список свойств как struct и задание значений для имен свойств. Это переопределение getPropertyGroups метод использует отображение свойств по умолчанию для нескалярных объектов путем вызова суперкласса getPropertyGroups способ. Для скалярных объектов переопределение:
Изменение значения, отображаемого для Password к свойству '*' символ для каждого символа в пароле.
Отображает текст 'Not Available' для Salary собственность.
methods (Access = protected) function propgrp = getPropertyGroups(obj) if ~isscalar(obj) propgrp = getPropertyGroups@matlab.mixin.CustomDisplay(obj); else pd(1:length(obj.Password)) = '*'; propList = struct('Department',obj.Department,... 'JobTitle',obj.JobTitle,... 'Name',obj.Name,... 'Salary','Not available',... 'Password',pd); propgrp = matlab.mixin.util.PropertyGroup(propList); end end end
Отображение объекта выглядит следующим образом:
EmployeeInfo with properties:
Department: 'Product Development'
JobTitle: 'Software Engineer'
Name: 'Bill Tork'
Salary: 'Not available'
Password: '*******'