ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

可変プロパティと不変プロパティ

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

プロパティの SetAccess 属性によって、コードがオブジェクトのプロパティ値を変更できる条件を判別できます。オブジェクトのプロパティ値に対して、さまざまなレベルのアクセスを可能にする 4 つのレベルの set アクセスがあります。

  • SetAccess = public — オブジェクトにアクセスする任意のコードでパブリックのプロパティ値を設定できます。ハンドル クラスと値クラスでは、オブジェクト プロパティの変更に関する動作に違いがあります。

  • SetAccess = protected — クラス メソッドまたはサブクラスのメソッド内から実行するコードによってのみプロパティ値を設定できます。クラスまたはクラスのサブクラスでメソッドがオブジェクト プロパティの値を変更するように定義していない限り、オブジェクト プロパティの値を変更できません。

  • SetAccess = private — 定義を行うクラスによってのみプロパティ値を設定できます。クラスがプロパティを設定するメソッドを定義する場合のみ、オブジェクト プロパティの値を変更できます。

  • SetAccess = immutable — プロパティ値はコンストラクターの処理中に設定されます。オブジェクトを作成した後に不変プロパティの値を変更することはできません。プロパティの値は既定値として、またはクラス コンストラクターに設定します。

不変プロパティの定義

このクラス定義では、Immute クラス コンストラクターのみが CurrentDate プロパティの値を設定できます。

classdef Immute
   properties (SetAccess = immutable)
      CurrentDate
   end
   methods
      function obj = Immute
         obj.CurrentDate = date;
      end
   end
end
a = Immute
a = 

  Immute with properties:

    CurrentDate: '19-Oct-2005'

関連するトピック