instance 메서드와 class 메서드의 차이점을 설명하시오.

이하연·2021년 8월 15일
1

[Swift] 스위프트

목록 보기
7/27

Instance Method

Class, Stuct, Enum 형태의 인스턴스에 속한 메소드를 의미합니다.

클래스를 통해 호출할 수 없고, 클래스의 인스턴스를 만들어 실체화 하여 생성된 인스턴스를 통해서 호출할 수 있는 메소드 입니다.


Class Method

Class Method 는 인스턴스를 만들어 실체화 하지 않아도 클래스를 통해 직접적으로 호출 할 수 있습니다.

func 키워드 앞에 class 키워드가 붙어 class func methodName(){} 형태로 선언합니다.Instance Method 와 달리 structenum 에서 사용할 수 없습니다.

Why?struct, enum 은 상속이 불가능 하기 때문입니다.

그렇다면 왜 상속이 불가능한 structenum 은 class Method 를 사용하지 못할까요?

Class Method 는 static 메소드를 상속 할 수 있도록 만든 메서드 이기 때문입니다.원래 프로그래밍 언어(예: JAVA) 에서는 static Method 를 overriding 할 수 없게 되어있지만Swift 에서는 static Method 를 overriding 할 수 있도록 Class Method 를 추가 한겁니다.(Class 내에서는 static Methodclass Method 는 같은 의미입니다. 즉, 클래스에 한해 static Method 를 override 하는 것이 가능합니다.)


Instance Method 와 Class Method의 차이

둘의 차이로는

  • 정의된 Class, struct, enum 을 실체화(인스턴스) 하여 사용하느냐
  • 실체화(인스턴스) 하지않고 직접적으로 호출 하느냐
  • Class 가 아닌 struct, enum 에서 선언될 수 있느냐 없느냐

정도가 있습니다.

0개의 댓글