swift - 인스턴스 메서드와 클래스 메서드

|

개인공부 후 자료를 남기기 위한 목적임으로 내용 상에 오류가 있을 수 있습니다.


참고한 블로그: Swift의 static 메서드와 class 메서드

인스턴스 메서드

클래스, 구조체, 열거형의 인스턴스에 속한 메소드를 의미

인스턴스는 다른 프로그래밍 언어를 접해보신 분들께는 꽤 익숙한 개념이지만, 접해보지 못한 분들을 위해 간단히 설명하자면 클래스를 통해 호출할 수 없고, 클래스를 실체화 하여 생성된 인스턴스를 통해서 호출할 수 있는 메서드를 의미

class  Temp {
  func instanceMethod() {
	print("instanceMethod")
  }
}

let temp = Temp()
temp.instanceMethod()

인스턴스 메소드를 호출하기 위해서는 Temp를 인스턴스화 후 해당 메소드를 호출해야한다. 인스턴스 없이 독립적으로 호출할 수 없다.

참고: 타입 메소드란

타입 자체에서 호출할 수 있는 메소드를 의미

클래스를 위한 타입메소드는 func 키워드 앞에 class 키워드를 작성하는 것으로 구조체와 열거형을 위한 타입메소드는 func 키워드 앞에 static 키워드를 작성하는 것을 의미한다.

클래스 메서드

인스턴스 메서드와 다르게 굳이 인스턴스화 하지 않고 클래스로부터 직접 메서드를 호출할 수 있다.

Class 메소드의 경우 타입에 의존하므로 타입을 명시함으로써 메소드에 접근가능하다. 그러므로 해당 메소드에서 상태를 변경하게되면 해당 타입 그 자체의 상태가 변경된다. 뿐만 아니라 오버라이딩이 가능하다는 점이 큰 특징이며 상속또한 가능하다.