iOS-SOPT-iNNovation / iOS_Traning

15 stars 0 forks source link

<5주차> instance 메서드와 class 메서드의 차이점을 설명하시오. #25

Closed namsoo5 closed 3 years ago

namsoo5 commented 3 years ago

instance 메서드 객체를 만든후에 사용할 수 있는 메서드

class 메서드(= Type메서드) 객체를 생성하지않고 사용 할 수 있는 메서드 오버라이딩이 가능한 static메서드 오버라이딩이 필요하므로 class에서만 사용가능

dongminyoon commented 3 years ago

instance 메소드 메모리에 인스턴스가 올라가있는 객체에 대해 사용할 수 있는 메소드이다. 일반적으로 static으로 선언되지 않은 class나 struct, enum의 메소드이다.

class 메소드 메모리에 인스턴스가 올라가 있지 않은 상태에서 타입만으로 사용할 수 있는 메소드이다. 일반적인 선언 방법으로 class, static이 있다.

여기서 class와 static의 차이는 오버라이딩이 되냐 안되냐의 차이이다. class의 경우에는 서브클래스에서 상속을 받아서 overriding이 가능하다. final class을 사용해 더이상 overriding이 불가능하게 선언 가능하다. 그러나 static의 경우에는 서브클래스에서 overriding이 불가능하다.

iJoom commented 3 years ago

instance 메소드 -> static , class가 붙지 않은 메소드 , 우리가 흔이 아는 객체를 생성해야 쓸 수 있는 메소드

class 메소드 -> 객체를 생성하지 않고도 사용할 수 있는 메소드.

Juhyeoklee commented 3 years ago

Instance Method

인스턴스 메소드는 특정한 클래스, 구조체 또는 열거체의 인스턴스에 속해있는 함수를 말합니다. 이는 객체의 '인스턴스'가 생성된 경우에만 사용이 가능하며, 자신이 속해 있는 타입의 지정된 인스턴스에만 호출이 가능하고 존재하는 인스턴스가 없다면 독립적으로 호출할 수 없다.

Class Method

클래스 매소드는 타입 그 자체에서 호출이 가능하도록 정의하는 메소드 이며 타입의 인스턴스에서가 아니라 타입 자체에서 호출할 수 있도록 만드는 메소드라 볼 수 있다. 그 중에서도 클래스 메소드는 class 라는 키워드를 func 키워드 앞에 사용하게 되는 경우를 말하며, 해당 키워드를 사용하면 하위 클래스에서 재정의할 수 있도록 만들 수 있다. 만약 이러한 경우를 생각하지 않는 다면 static 키워드를 붙혀줌으로서 인스턴스 생성 없이 함수 호출이 가능한 경우를 만들 수 있다. 이는 Type Method 라고 불린다.

khyunjiee commented 3 years ago

인스턴스 메소드 (Instance Method) 클래스, 구조체 또는 열거형과 같은 객체 타입이 만들어내는 인스턴스에 소속된 함수 객체의 인스턴스를 생성해야 사용할 수 있는 메소드 주어진 객체의 인스턴스와 함께 캡슐화된 메소드

타입 메소드 (Type Method) 객체의 인스턴스를 생성하지 않고 객체 타입 자체에서 호출할 수 있는 메소드 객체 타입 자체에 관련된 메소드 Object-C의 클래스 메소드(Class Method)와 유사