Измените порядок и количество свойств, отображенных для объекта вашего класса.
Предположим, что ваше определение класса содержит следующее определение свойства:
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: '*******'