Define class properties within a properties
block:
classdef ClassName properties (PropertyAttributes) PropertyName size class {validation functions} = DefaultValue end end
Property attributes apply to all properties defined within the block. To define properties with different attributes, use multiple properties
blocks. All property attributes have default values. For a list of property attributes, see Property Attributes.
Restrict the size, class, and other aspects of values assigned to properties in the property definition. For more information, see Validate Property Values.
Optionally assign default values to the property in the properties
block. MATLAB® evaluates the assignment statement when the class is first referenced or when loading a saved object. For more information, see Property Definition.
Note
Evaluation of property default values occurs only when the value is first needed, and only once when MATLAB first initializes the class. MATLAB does not reevaluate the expression each time you create an instance of the class.
For more information on the evaluation of expressions that you assign as property default values, see When MATLAB Evaluates Expressions.
The following class defines three properties. Model
and Color
use default attribute values, resulting in public read and write access. SerialNumber
has read-only access by object users. Assign the SerialNumber
property value from a class member function, such as the constructor or other class method.
classdef NewCar properties Model Color end properties (SetAccess = private) SerialNumber end methods ... end end
Use dot notation to access property value.
A = NewCar
A = NewCar with properties: Model: [] Color: [] SerialNumber: []
Set the Model
and Color
properties:
A.Model = 'XGT7000'; A.Color = 'Red';
Add a constructor to the NewCar
class to set property values:
classdef NewCar properties Model Color end properties (SetAccess = private) SerialNumber end methods function obj = NewCar(model,color) obj.Model = model; obj.Color = color; obj.SerialNumber = datenum(datetime('now')); end end end
A = NewCar('XGT7000','Red')
A = NewCar with properties: Model: 'XGT7000' Color: 'Red' SerialNumber: 7.362456078531134e+05