[ Swift ]Instance Method vs Class Method

이숭인·2021년 7월 29일
0

[ Swift ]

목록 보기
6/13

Instance Method

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

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


Class Method

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

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

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

그렇다면 왜 상속이 불가능한 struct, enumclass Method 를 사용하지 못할까요?

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


Instance Method 와 Class Method의 차이

둘의 차이로는

  • 정의된 Class, struct, enum 을 실체화(인스턴스) 하여 사용하느냐

  • 실체화(인스턴스) 하지않고 직접적으로 호출 하느냐

  • Class 가 아닌 struct, enum 에서 선언될 수 있느냐 없느냐

정도가 있습니다.

profile
iOS Developer

0개의 댓글