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