본문 바로가기
Development/iPhone

[iOS][iPhone][ObjectC-05] 객체지향의 주요 개념. 동적형변환! Dynamic typing.

by 푸민 2015. 8. 29.
반응형



안녕하세요 푸민입니다.


잠시 블로그를 이사한다구 한동안 못올렸는데요!

다시금 올리겠습니다.


저번 포스팅에서 드디어 객체 지향의 기능을 시작했습니다.

자바에서 사용하는 Interface와 같은 개념의 Protocol을 알아보았죠 ㅎㅎ

오늘은 또 다른 객체지향의 개념임 동적형변환, 동적타이핑에 대해서 알아보아요!




엄... 엄... 동적타이핑입니다!

ㅠㅠ 영어 ㅋㅋㅋㅋㅋ

요약해서 말하자면 프로그래밍 할때 타입을 결정하는 것이 아니라

상황에 따라서 타입이 변형되어서 사용 가능하도록 개발하는 것입니다!

다형성의 시작이죠 ㅎㅎ

한번 볼까요?

- (void)setMyValue:(id)foo;

자 위에 설계된 메소드를 보면 리턴값은 void 없음이고,

파라미터를 id라는 값으로 넘겨 줍니다.


오브젝트 C에서 id 값은 NSObject 입니다. 즉 모든 객체의 최상위 객체라는 것이죠.

자바에서는 Object 객체가 되겠죠?

또한 id 값은 하나의 포인터로 보시면 됩니다.

id 라는 값 자체가 포인트라서 객체 뒤에 *을 안붙여도 되는것이죠.

그리고 id 값의 사용은 해당 파라미터의 형을 알 수 없거나,

해당 파라미터로 자신이 원하는 클래스로 유연하게 변형을 하여 사용할 수 있습니다.


정적 타이핑을 반대의 개념으로 미리 타입을 결정하는 것입니다.

그러면 정적 타이핑의 예를 한번 볼까요?

- (void)setMyValue:(NSNumber *)foo;

이 코드를 보면 앞과는 다르게 NSNumber 라는 클래스를 결정합니다.

그렇다면 foo 라는 파리미터로 보낼수 있는 클래스는 NSNumber 클래스 밖에 없게 된느 것입니다.


이런 기능들을 잘 활용한다면 객체 지향 프로그래밍을 할 수 있습니다!!

반응형

댓글