클래스 메서드와 인스턴스 메서드의 차이점은 무엇입니까? 왜 우리는 그것들을 별도로 필요로합니까? 누군가 설명해 주시겠습니까?차이 클래스 및 인스턴스 메서드
클래스와 인스턴스 메소드 인스턴스 •
는
- (id)init;
- (float)height;
- (void)walk;
• 수업 Taimur
클래스 메서드와 인스턴스 메서드의 차이점은 무엇입니까? 왜 우리는 그것들을 별도로 필요로합니까? 누군가 설명해 주시겠습니까?차이 클래스 및 인스턴스 메서드
클래스와 인스턴스 메소드 인스턴스 •
는
- (id)init;
- (float)height;
- (void)walk;
• 수업 Taimur
클래스 메소드
+ (id)alloc;
+ (id)person;
+ (Person *)sharedPerson;
에 응답 인스턴스 방법에서만 사용할 수 있습니다 인스턴스 메서드에 응답 클래스의 인스턴스, 클래스의 메토 d는 인스턴스가 필요 없지만 클래스에서 사용할 수 있습니다.
클래스 메서드는 +
으로, 인스턴스 메서드는 반환 형식 앞에 -
으로 표시됩니다.
예를 들어 NSObject
을 봅시다. NSObject
에는 + (id)alloc
이라는 클래스 메서드가 있습니다. alloc 메서드는 클래스의 인스턴스를 할당하는 데 사용됩니다. 분명히 alloc은 클래스 메서드 여야합니다. 인스턴스 메소드라면 "루트"인스턴스를 어디에서 가져올까요?
한편 - (id)init
은 인스턴스의 상태를 초기화하기 때문에 인스턴스 메서드입니다.
좋은 대답은 명확하게 질문에 포함 된 코드의 예를 참조하십시오. 클래스에 어떤 높이인지 물으면 [Person height] 사람이 어떤 키도 될 수 있기 때문에 대답이 없습니다. 하지만 인스턴스에 [michael height]라고 물으면 인스턴스에 대한 높이를 설정할 수 있으므로 응답 할 수 있습니다. – mbehan
예 :
Human
->Class
You
->Instance
Human
수 extinguish
, you
수 없습니다. You
drink a Coke
, Human
수 없습니다. Class
방법은 동일 식별 기능을 전체 그룹에 적용되는 동안
Instance
메소드는, 개인
개인과 사회 전체의 차이입니다.
[SomeClass alloc]
init
Instance
에 적용, 당신은 출산 주어진 것처럼 클래스의 새로운 인스턴스가 을 탄생 의미 이 사회에서 살 수있는 기술이 있어야합니다.
의 중복 가능성 [목표 - C : 인스턴스 메소드 대 클래스 (http://stackoverflow.com/questions/1053592/objective-c-class-vs-instance-methods) –