EmployeeInfo класс определяет ряд свойств для хранения информации о сотрудниках компании. Этот простой класс служит примером класса, используемого в классах образцов настройки отображения.
EmployeeInfo происходит от matlab.mixin.CustomDisplay для включения настройки отображения объекта.
EmployeeInfo также является классом дескриптора. Поэтому экземпляры этого класса могут находиться в состоянии, называемом дескриптором удаленного объекта. Это состояние не встречается с классами значений (классы не являются производными от handle).
classdef EmployeeInfo < handle & matlab.mixin.CustomDisplay properties Name JobTitle Department Salary Password end methods function obj = EmployeeInfo obj.Name = input('Name: '); obj.JobTitle = input('Job Title: '); obj.Department = input('Department: '); obj.Salary = input('Salary: '); obj.Password = input('Password: '); end end end
matlab.mixin.CustomDisplay совместим с дескриптором. Поэтому суперклассы могут быть либо классами дескрипторов, либо классами значений.
Вот создание и отображение скаляра EmployeeInfo объект. По умолчанию MATLAB ® отображает свойства и их значения для скалярных объектов.
Предоставьте входные данные для конструктора:
>>Emp123 = EmployeeInfo; Name: 'Bill Tork' Job Title: 'Software Engineer' Department: 'Product Development' Salary: 1000 Password: 'bill123'
Отображение объекта:
>>Emp123
Emp123 =
EmployeeInfo with properties:
Name: 'Bill Tork'
JobTitle: 'Software Engineer'
Department: 'Product Development'
Salary: 1000
Password: 'bill123'Для проверки скалярных объектов используйте isscalar.
Отображение по умолчанию для массива объектов не отображает значения свойств. Например, объединение двух EmployeeInfo объекты генерируют это отображение:
>>[Emp123,Emp124]
ans
1x2 EmployeeInfo array with properties:
Name
JobTitle
Department
Salary
PasswordДля проверки нескалярных объектов используйте отрицательный вызов isscalar .
Пустой массив объектов имеет по крайней мере одно измерение, равное нулю.
>> Empt = EmployeeInfo.empty(0,5)
Empt =
0x5 EmployeeInfo array with properties:
Name
JobTitle
Department
Salary
PasswordИспользовать isempty для проверки пустых массивов объектов. Пустой массив объектов не является скалярным, поскольку его размеры никогда не могут быть 1 к 1.
>> emt = EmployeeInfo.empty
emt =
0x0 EmployeeInfo array with properties:
Name
JobTitle
Department
Salary
Password
>> isscalar(emt)
ans =
0При удалении объекта-дескриптора переменная-дескриптор может оставаться в рабочей области.
>> delete(Emp123) >> Emp123 Emp123 = handle to deleted EmployeeInfo
Чтобы проверить дескриптор удаленного объекта, используйте isvalid.
Примечание
isvalid является методом класса дескриптора. Запрос isvalid для объекта класса значений приводит к ошибке.
Метод details не поддерживает настройку и всегда возвращает стандартный подробный экран:
details(Emp123) EmployeeInfo handle with properties: Name: 'Bill Tork' JobTitle: 'Software Engineer' Department: 'Product Development' Salary: 1000 Password: 'bill123' Methods, Events, Superclasses