Main Content

Class with Default Object Display

The EmployeeInfo Class

The EmployeeInfo class defines a number of properties to store information about company employees. This simple class serves as the example class used in display customization sample classes.

EmployeeInfo derives from the matlab.mixin.CustomDisplay class to enable customization of the object display.

EmployeeInfo is also a handle class. Therefore instances of this class can be in the state referred to as a handle to a deleted object. This state does not occur with value classes (classes not derived from 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

The matlab.mixin.CustomDisplay is handle compatible. Therefore, subclasses can be either handle or value classes.

Default Display — Scalar

Here is the creation and display of a scalar EmployeeInfo object. By default, MATLAB® displays properties and their values for scalar objects.

Provide inputs for the constructor:

>>Emp123 = EmployeeInfo;
Name: 'Bill Tork'
Job Title: 'Software Engineer'
Department: 'Product Development'
Salary: 1000
Password: 'bill123'

Display the object:

>>Emp123

Emp123 =

  EmployeeInfo with properties:

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

Testing for Scalar Objects

To test for scalar objects, use isscalar.

Default Display — Nonscalar

The default display for an array of objects does not show property values. For example, concatenating two EmployeeInfo objects generates this display:

>>[Emp123,Emp124]
ans

  1x2 EmployeeInfo array with properties:

    Name
    JobTitle
    Department
    Salary
    Password

Testing for Nonscalar Objects

To test for nonscalar objects, use a negated call to isscalar.

Default Display — Empty Object Array

An empty object array has at least one dimension equal to zero.

>> Empt = EmployeeInfo.empty(0,5)

Empt = 

  0x5 EmployeeInfo array with properties:

    Name
    JobTitle
    Department
    Salary
    Password

Testing for Empty Object Arrays

Use isempty to test for empty object arrays. An empty object array is not scalar because its dimensions can never be 1–by-1.

>> emt = EmployeeInfo.empty

emt = 

  0x0 EmployeeInfo array with properties:

    Name
    JobTitle
    Department
    Salary
    Password

>> isscalar(emt)

ans =

     0

Default Display — Handle to Deleted Object

When a handle object is deleted, the handle variable can remain in the workspace.

>> delete(Emp123)
>> Emp123
Emp123 = 
  handle to deleted EmployeeInfo

Testing for Handles to Deleted Objects

To test for a handle to a deleted object, use isvalid.

Note

isvalid is a handle class method. Calling isvalid on a value class object causes an error.

Default Display — Detailed Display

The details method does not support customization and always returns the standard detailed display:

details(Emp123)
 EmployeeInfo handle with properties:

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

  Methods, Events, Superclasses

Related Topics