MATLAB Object-Oriented Programming

(Joyce) #1

The TeamMembers class is the root of the heterogeneous hierarchy and is a concrete
class. Before assigning values to the Name and PhoneX properties, the constructor
initializes an array of subclass (ProjectEngineer) objects.


The ProjectEngineer constructor provides the obj argument for the call to repelem
with this statement:


obj = obj@TeamMembers(varargin{1:2});


Here is the TeamMembers class:


classdef TeamMembers < matlab.mixin.Heterogeneous
properties
Name
PhoneX
end
methods
function obj = TeamMembers(nme,ext)
if nargin > 0
n = numel(nme);
obj = repelem(obj,1,n);
for k = 1:n
obj(k).Name = nme{k};
obj(k).PhoneX = ext(k);
end
else
obj.Name = '';
end
end
end
end


The ProjectEngineer class represents one type of team member. This class supports
array inputs and returns an array of objects.


classdef ProjectEngineer < TeamMembers
% Inputs: {Name}, [PhoneX], {Rate}
properties
Rate
end
methods
function obj = ProjectEngineer(varargin)
obj = obj@TeamMembers(varargin{1:2});
for k = 1:numel(varargin{1})
obj(k).Rate = varargin{3}{k};


Heterogeneous Array Constructors
Free download pdf