몇번을 다시 재작성을 하게 되네요.


어떻게 진행을 해야 이해가 쉬우실지 고민이 많이 됩니다.


우선은 간단하게 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 로 마무리를 지으면 됩니다.

다음 시간에는 구현부에 대해서 설명하도록 하겠습니다.