Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

クラス プロパティ

Properties ブロック

クラス プロパティは、properties ブロック内に次のように定義します。

classdef ClassName
   properties (PropertyAttributes)
      PropertyName size class {validation functions} = DefaultValue
   end
end

プロパティの属性はブロック内で定義されたすべてのプロパティに適用されます。異なる属性をもつプロパティを定義するには、複数の properties ブロックを使用します。すべてのプロパティの属性に既定値があります。プロパティの属性の一覧は、プロパティの属性を参照してください。

プロパティ定義のプロパティに代入される値のサイズ、クラス、およびその他の特性を制限します。詳細については、プロパティ値の検証を参照してください。

必要に応じて、properties ブロック内のプロパティに既定値を代入します。MATLAB® は、クラスが最初に参照されるとき、または保存されたオブジェクトを読み込むときに代入ステートメントを評価します。詳細については、プロパティの定義を参照してください。

メモ

プロパティの既定値の評価は、値が最初に必要になったときにのみ、MATLAB による初回のクラス初期化時に 1 回のみ行われます。MATLAB はクラスのインスタンスが作成されるたびに式を再評価することはありません。

プロパティの既定値として代入する式の評価の詳細については、MATLAB による式の評価を参照してください。

異なる属性をもつプロパティ

次のクラスは 3 つのプロパティを定義しています。ModelColor は既定の属性値を使用し、パブリックの読み取りアクセスと書き込みアクセスが可能になります。SerialNumber はオブジェクト ユーザーによる読み取り専用アクセスが可能です。SerialNumber プロパティの値は、コンストラクターまたは他のクラス メソッドなどのクラス メンバー関数から代入します。

classdef NewCar
   properties
      Model
      Color
   end
   properties (SetAccess = private)
      SerialNumber
   end
   methods
   ...
   end
end

プロパティ値へのアクセス

ドット表記を使用してプロパティ値にアクセスします。

A = NewCar
A = 

  NewCar with properties:

           Model: []
           Color: []
    SerialNumber: []

Model プロパティと Color プロパティを次のように設定します。

A.Model = 'XGT7000';
A.Color = 'Red';

プロパティ値を設定するには、コンストラクターを次のように NewCar クラスに追加します。

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

関連するトピック