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

構築時におけるプロパティ値の設定

この例では、System object™ コンストラクターの定義方法と、名前/値プロパティの組み合わせが入力として受け入れられるようにする方法を示します。

名前/値ペア入力の使用をプロパティに設定

クラスと同じ名前 (この例では MyFile) のメソッドである System object コンストラクターを定義します。このメソッド内で setProperties メソッドを使用して、オブジェクトを作成する際にすべてのパブリック プロパティに入力できるようにします。nargin は入力引数の数を決定する MATLAB® 関数です。varargin は、オブジェクトのすべてのパブリック プロパティを示します。

methods 
   function obj = MyFile(varargin)
      setProperties(obj,nargin,varargin{:});
   end
end

コンストラクター設定をもつ完全なクラス定義ファイル

classdef MyFile < matlab.System
% MyFile write numbers to a file

    % These properties are nontunable. They cannot be changed
    % after the setup method has been called or while the
    % object is running.
    properties (Nontunable)
        Filename ="default.bin" % the name of the file to create
        Access = 'wb' % The file access character vector (write, binary)
    end

    % These properties are private. Customers can only access
    % these properties through methods on this object
    properties (Hidden,Access = private)
        pFileID; % The identifier of the file to open
    end

    methods 
        % You call setProperties in the constructor to let 
        % a user specify public properties of object as 
        % name-value pairs.
        function obj = MyFile(varargin)
          setProperties(obj,nargin,varargin{:});
        end
    end

    methods (Access = protected)
        % In setup allocate any resources, which in this case is
        % opening the file.
        function setupImpl(obj)
            obj.pFileID = fopen(obj.Filename,obj.Access);
            if obj.pFileID < 0
                error("Opening the file failed");
            end
        end

        % This System object writes the input to the file.
        function stepImpl(obj,data)
            fwrite(obj.pFileID,data);
        end

        % Use release to close the file to prevent the
        % file handle from being left open.
        function releaseImpl(obj)
            fclose(obj.pFileID);
        end
    end
end

参考

|

関連するトピック