Main Content

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

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

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

System object コンストラクターを定義します。これは、クラス (この例では MyFile) と同じ名前をもつメソッドです。このメソッド内で 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

参考

|

関連するトピック