클래스 정의 파일 내의 함수
스크립트 파일이나 함수 파일에서 로컬 함수를 정의할 수 있는 것과 마찬가지로 classdef
파일 내에서도 로컬 함수를 정의할 수 있습니다. 이러한 함수는 classdef
블록 외부에 정의되지만 클래스 정의와 동일한 파일에 정의됩니다. 그 동일한 파일의 어느 곳에서나 이러한 함수를 호출할 수 있지만 정의된 파일의 외부에서는 보이지 않습니다.
classdef
파일의 로컬 함수는 해당 파일 내에서만 사용하는 유틸리티 함수에 유용합니다. 예를 들어, 다음 코드는 classdef
블록 외부에 myUtilityFcn
을 정의합니다.
classdef MyClass properties PropName end methods function obj = method1(val) adjustedVal = myUtilityFcn(val) ... end end end % End of classdef function out = myUtilityFcn(in) ... end
MyClass
의 method1
을 호출하면 이 메서드는 다른 동작을 수행하기 전에 먼저 myUtilityFcn
을 사용하여 입력 인수에 대해 일부 전처리를 수행합니다.
메서드와 달리 이러한 함수는 클래스의 인스턴스를 입력값으로 필요로 하지 않지만, 클래스의 인스턴스인 인수를 받거나 반환할 수 있고 해당 인스턴스의 멤버(프라이빗 멤버 포함)에 액세스할 수 있습니다. 그러나 클래스 정의 파일 내의 함수가 클래스 멤버에 직접 액세스해야 하는 경우에는 이렇게 하는 대신, 함수를 클래스의 메서드로 정의하는 것을 고려해 보십시오.