Класс со значением по умолчанию Отображение объектов

Класс EmployeeInfo

EmployeeInfo класс задает много свойств хранить информацию о сотрудниках компании. Этот простой класс служит классом в качестве примера, используемым в демонстрационных классах настройки отображения.

EmployeeInfo выводит из matlab.mixin.CustomDisplay класс, чтобы включить индивидуальную настройку отображения объекта.

EmployeeInfo также класс Handle. Поэтому экземпляры этого класса могут быть в состоянии, называемом указателем на удаленный объект. Это состояние не происходит с классами значения (классы, не выведенные из 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 метод класса Handle. Вызов isvalid на значении объект класса вызывает ошибку.

Отображение по умолчанию - подробное отображение

Метод деталей не поддерживает индивидуальную настройку и всегда возвращает стандарт подробное отображение:

details(Emp123)
 EmployeeInfo handle with properties:

          Name: 'Bill Tork'
      JobTitle: 'Software Engineer'
    Department: 'Product Development'
        Salary: 1000
      Password: 'bill123'

  Methods, Events, Superclasses

Похожие темы