글 수 7
2011.04.07 19:22:12 (*.36.150.248)
15798
몇번을 다시 재작성을 하게 되네요.
어떻게 진행을 해야 이해가 쉬우실지 고민이 많이 됩니다.
우선은 간단하게 Class 사용하는 방법에 대해서 진행해 볼려고 합니다.
Objective C의 클래스는 크게 두 파트로 나뉘어서 작성이 되게 됩니다.
그 두 파트는 선언부분과 구현부분으로 나누어 지게 됩니다.
선언 부분은
@interface
로 시작해서
@end
로 끝을 마무리 합니다.
구현부분은
@implementation
로 시작해서
@end
로 끝을 마무리 합니다.
간단한 예제를 보도록 하겠습니다.
먼저 선언부 입니다.
//code 시작
#import <Foundation/Foundation.h>
@interface Hello : NSObject{
}
-(void)print;
-(void)printNSLog;
@end
//Code 끝
간단히 설명하자면
#import <Foundation/Foundation.h> 이전에 설명된 내용을 참고 해주시기 바랍니다.
선언부는 위에서도 언급했듯이 @interface로 시작합니다.
@interface 이후에 사용할 Class 의 이름을 적어주게 됩니다. 위 예제의 클래스는 Hello 라는 이름의 클래스 입니다.
보통 클래스 이름은 영문 대문자로 시작하게 작성합니다.
클래스 이름 뒤에 부모 클래스를 : 콜론 으로 구분 지어서 넣어주게 됩니다.
NSObject 가 현재 클래스의 부모 클래스 입니다.
NSObject 클래스는 처음에 import 시킨 Foundation.h 에 포함되어있다.
처음 부분을 #import <Foundation/NSObject.h> 와 같이 현재의 프로그램에 추가를 시켜도 가능합니다.
Foundation.h 에 포함되어 있으므로 그냥 쉽게 Foundation.h 를 추가하는것으로 하는것입니다.
그 다음에 { } 중괄호안에 인스턴스 변수를 선언해 주게 됩니다.
위 예제에는 현제 인스턴스 변수는 없습니다. 추후에 다시 설명할 기회가 있을것입니다.
위의 것도 하나의 공식이 므로 반듯이 외우시기 바랍니다.
클래스 선언 부의 시작 부분의 공식을 다시 정리하자면 아래와 같이 되겠습니다.
@interface ClassName : ParentsClass
{
instaceVariable
}
다음으로는 메소드 생성을 위한 선언을 해주게 됩니다.
메소드에는 선언시에는 - 마이너스 또는 + 플러스로 시작합니다.
+ 플러스로 시작하는것을 클래스 메소드이며 - 마이너스로 시작하는 것은 인스턴스 클래스라고 합니다.
현재는 인스턴스 클래스만 다루도록 하겠습니다. (솔직히 저도 아직은 클래스 인스턴스는 잘 몰라서요...^^;;;;)
- 마이너스 이후에는 () 괄호로 시작하고 이 괄호 안에는 반환형을 입력해 주면됩니다.
반환형은 C 언어등에서 함수를 작성할때와 비슷하다고 보시면 됩니다.
함수 선언시에 int function() 과 같은 식으로 처음에 int가 반환형인 것입니다.
위 예제에서는 두개의 메소드를 생성하고 두 메소드 모두 반환형이 없으므로 void를 입력한 것입니다.
이후에는 해당 메소드 명을 적어주면 됩니다.
메소드 명은 보통 소문자로 시작하게 작성하며, 자기가 원하는 이름의 단어를 입력해 주면됩니다.
공식은
-(returnType)instanceClassName;
와 같이 표현이 되기도 합니다.
추후에 인수를 입력받는 공식을 더 다루도록 하겠습니다.
위 결과만으로는 어떠한 동작이 이루어 질지는 알수가 없습니다.
해당 클래스 구현부에서 선언된 클래스를 어떻게 구현할것인지를 입력해 주어야 명확한 동작을 이끌어 낼수 있습니다.
마지막으로는 해당 선언을 닫는 @end 로 마무리를 지으면 됩니다.
다음 시간에는 구현부에 대해서 설명하도록 하겠습니다.