Main Content

생성 시에 속성값 설정하기

이 예제에서는 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

참고 항목

|

관련 항목