이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

클래스 구성요소

클래스 구성 블록

MATLAB®은 클래스 정의 코드를 키워드로 구분하여 모듈식 블록으로 구성합니다. 모든 키워드는 이와 연결된 end 문을 가집니다.

  • classdef...end — 모든 클래스 구성요소의 정의

  • properties...end — 속성 이름 선언, 속성 특성 지정, 디폴트 값 할당

  • methods...end — 메서드 시그니처, 메서드 특성 및 함수 코드 선언

  • events...end — 이벤트 이름 및 특성 선언

  • enumeration...end — 열거형 클래스에 대한 열거형 멤버 및 열거형 값 선언

properties, methods, events, enumerationclassdef 블록 내에만 있는 키워드입니다.

클래스 정의 블록

classdef 블록은 파일 내에 classdef 키워드로 시작하고 end 키워드로 종료되는 클래스 정의를 담고 있습니다.

classdef (ClassAttributes) ClassName < SuperClass
   ...
end

예를 들어, 이 classdefhandle 클래스를 서브클래스화하는 MyClass라는 클래스를 정의하지만, 서브클래스를 파생하는 데는 사용할 수 없습니다.

classdef (Sealed) MyClass < handle
   ...
end

자세한 구문 정보는 Classdef Block 항목을 참조하십시오.

Properties 블록

properties 블록(각각의 고유한 특성 지정값의 집합마다 하나씩 있음)은 옵션 초기값을 비롯하여 속성 정의를 담고 있습니다. properties 블록은 properties 키워드로 시작하고 end 키워드로 종료됩니다.

classdef ClassName
   properties (PropertyAttributes)
      ...
   end
   ...
end

예를 들어, 다음 클래스는 프라이빗 액세스를 가지고 date 함수의 출력값과 일치하는 디폴트 값을 가지는 Prop1이라는 속성을 정의합니다.

classdef MyClass
   properties (SetAccess = private)
      Prop1 = date
   end
   ...
end

자세한 내용은 속성 정의 항목을 참조하십시오.

Methods 블록

methods 블록(각각의 고유한 특성 지정값의 집합마다 하나씩 있음)은 클래스 메서드에 대한 함수 정의를 담고 있습니다. methods 블록은 methods 키워드로 시작하고 end 키워드로 종료됩니다.

classdef ClassName
   methods (MethodAttributes)
      ...
   end
   ...
end

예를 들면 다음과 같습니다.

classdef MyClass
   methods (Access = private)
      function obj = myMethod(obj)
      ...
      end
   end
end

자세한 내용은 메서드와 함수 항목을 참조하십시오.

Events 블록

events 블록(각각의 고유한 특성 지정값의 집합마다 하나씩 있음)은 이 클래스가 선언하는 이벤트의 이름을 담고 있습니다. events 블록은 events 키워드로 시작하고 end 키워드로 종료됩니다.

classdef ClassName
   events (EventAttributes)
      EventName
   end
   ...
end

예를 들어, 다음 클래스는 ListenAccessprotected로 설정된 StateChange라는 이벤트를 정의합니다.

classdef EventSource
   events (ListenAccess = protected)
      StateChanged
   end
   ...
end

자세한 내용은 Events and Listeners 항목을 참조하십시오.

완전한 클래스

완전한 클래스 정의는 properties, methods, events 코드 블록의 임의의 조합을 담고 있습니다.

classdef (Sealed) MyClass < handle
   properties (SetAccess = private)
      Prop1 = datenum(date)
   end
   properties
      Prop2
   end
   methods
      function obj = MyClass(x)
         obj.Prop2 = x;
      end
   end
   methods (Access = {?MyOtherClass})
      function d = myMethod(obj)
         d = obj.Prop1 + x;
      end
   end
   events (ListenAccess = protected)
      StateChanged
   end
end

열거형 클래스

열거형 클래스는 단일 유형 값을 나타내는 고정된 이름의 집합을 정의하는 특화된 클래스입니다. 열거형 클래스는 이 클래스에서 정의된 열거형 멤버를 포함하는 enumeration 블록을 사용합니다.

enumeration 블록은 enumeration 키워드로 시작하고 end 키워드로 종료됩니다.

classdef ClassName < SuperClass
   enumeration
      EnumerationMember
   end
   ...
end

예를 들어, 다음 클래스는 논리값 falsetrue를 나타내는 두 개의 열거형 멤버를 정의합니다.

classdef Boolean < logical
   enumeration
      No  (0)
      Yes (1)
   end
end

자세한 내용은 열거형 클래스 정의하기 항목을 참조하십시오.

관련 정보

클래스 정의를 포함하는 폴더