Swift) Instance 메서드와 Type 메서드의 차이점을 설명하시오.
Instance Method
- 특정 클래스, 구조체 또는 열거형의 인스턴스에 속하는 함수
특정 타입의 인스턴스에서 호출되는 메서드
1 | class Sample { |
📌 some이라는 인스턴스를 만들어주고, some의 내부함수인 useInstanceMethod()를 호출하여 값을 받을 수 있다.
📌 여기서!!인스턴스를 만들고 내부함수를 호출
한다는 것이 중요하다!!
Type Method
타입 자체에서 호출되는 메서드
- Type Method 키워드에는
Class
와Static
이 있다. - 이 두 키워드가 붙은 메서드는
인스턴스의 생성 없이 사용이 가능
하다.
Class 키워드
- class 키워드는 class에서만 사용 가능하다.
1 | class SomeClass { |
Class 키워드의 장점
반복적으로 일어나는 것을 처리하기에 좋다.
인스턴스를 따로 생성하지 않기 떄문에 메모리 걱정을 할 필요가 없다.
Class 키워드의 단점
확장성이 좋지 않다.
당연한 값들로만 리턴을 하고, 초기화가 없기 떄문에 변수를 쓰지 못한다.
Static 키워드
- class 키워드와의 차이점은
override 가능 여부
이다. - static 키워드는 override가 불가하다.
class 키워드
는해당 클래스를 상속 받았을 경우 오버라이드가 가능
하다.class func
를 하위 클래스에서static func로 override
하는 것도 가능하다.- class 키워드 앞에
final 키워드
를 붙이게 되면override를 막을 수 있다.
1 | // SomeClass를 SubClass가 상속받아 오버라이드 가능 |
참고
Swift) Instance 메서드와 Type 메서드의 차이점을 설명하시오.
https://suzumsz.github.io/2021/10/06/Swift/Instance vs Type/