Main Content

핸들 슈퍼클래스

핸들 클래스를 바탕으로 작성하기

handle 클래스는 추상 클래스입니다. 따라서 이 클래스의 객체는 직접 생성할 수 없습니다. 핸들 동작을 상속하는 서브클래스를 구현하려면 handle 클래스를 슈퍼클래스로 사용하십시오. MATLAB®handle 클래스에서 파생되는 여러 클래스를 정의합니다. 이들 클래스는 서브클래스에 특화된 기능을 제공합니다.

특화된 핸들 기본 클래스

클래스에 핸들 동작과 특정 기능을 모두 추가하려면 다음 handle 클래스에서 클래스를 파생시키십시오.

  • matlab.mixin.SetGet — 속성값에 액세스할 수 있는 set 메서드 및 get 메서드를 제공합니다.

  • dynamicprops — 일반적으로 클래스가 아니라 객체와 연결된 속성을 정의할 수 있습니다.

  • matlab.mixin.Copyable 클래스에 대해 사용자 지정할 수 있는 copy 메서드를 제공합니다.

서브클래스를 정의하는 방법에 대한 자세한 내용은 서브클래스 생성자 설계하기 항목을 참조하십시오.

핸들 클래스 메서드

handle 클래스에서 클래스를 파생하는 경우 서브클래스는 핸들 객체를 더 효과적으로 사용할 수 있도록 하는 메서드를 상속합니다.

클래스 이름을 methods 함수에 전달하여 클래스의 메서드를 나열합니다.

methods('handle')
Methods for class handle:

addlistener  findobj      gt           lt           
delete       findprop     isvalid      ne           
eq           ge           le           notify  

이벤트 및 리스너 메서드

notify 메서드와 addlistener 메서드를 사용하는 방법에 대한 자세한 내용은 이벤트와 리스너 구문 항목을 참조하십시오.

관계 메서드

TF = eq(H1,H2)
TF = ne(H1,H2)
TF = lt(H1,H2)
TF = le(H1,H2)
TF = gt(H1,H2)
TF = ge(H1,H2)

핸들 클래스는 이러한 함수를 오버로드하여 핸들에 대한 동일성 테스트 및 정렬을 지원합니다. 각 입력 배열 쌍에 대해, 이러한 함수는 동일한 크기의 논리형 배열을 반환합니다. 각 요소는 요소별 동일성 또는 비교 테스트 결과입니다. 입력 배열은 크기가 동일해야 합니다. 또는 하나 또는 둘 모두가 스칼라일 수 있습니다. 필요에 따라 메서드가 스칼라 확장을 수행합니다. 핸들 클래스 관계 메서드에 대한 자세한 내용은 relationaloperators 항목을 참조하십시오.

테스트 핸들 유효성

isvalid handle 클래스 메서드를 사용하여 변수가 유효한 핸들 객체인지 확인할 수 있습니다. 예를 들어, 다음 명령문에서

B = isvalid(H)

B는 논리형 배열이며, 그 요소는 H의 대응되는 요소가 유효한 핸들인 경우에만 true입니다. B는 항상 H와 크기가 동일합니다.

MATLAB이 객체를 소멸시키는 경우

MATLAB은 함수가 다음과 같은 경우에 해당 함수의 작업 공간에 있는 객체를 소멸시킵니다.

  • 객체 변수에 새 값을 재할당합니다.

  • 함수의 나머지 부분에서 객체 변수를 사용하지 않습니다.

  • 함수 실행이 종료됩니다.

MATLAB은 객체를 소멸시킬 때 해당 객체의 속성에 저장된 값도 소멸시킵니다. MATLAB은 MATLAB 또는 운영 체제에서 사용할 수 있도록 해당 객체와 연결된 컴퓨터 메모리를 해제합니다.

핸들 클래스에서 메모리를 비울 필요는 없습니다. 그러나 객체를 소멸시킬 때 수행되기를 원하는 다른 작업이 있을 수 있습니다. 예를 들어, 파일을 닫거나 객체 생성자가 시작된 외부 프로그램을 종료할 수 있습니다. 이러한 목적으로 핸들 서브클래스에 delete 메서드를 정의합니다.

자세한 내용은 핸들 클래스 소멸자 항목을 참조하십시오.

관련 항목