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