프로그래밍/Objective C

ObjectiveC - 클래스 및 메소드 구현 방법 (interface, implementation)

가카리 2015. 8. 6. 22:57
반응형

Objective C에서는 크게 3부분으로 나뉘는데

1. @interface : 클래스, 메소드 선언

2. @implementation : 메소드 구현

3. 프로그램 : 실행 프로그램 코드

예제를 보면

//클래스 이름을 Fraction 부모는 NSObject 한다.

@interface Fraction : NSObject

 

//클래스안에메소드를선언함

-(void) print;

-(void) setNumerator: (int) n;//n넘겨주는파라미터임

-(void) setDenominator: (int) d;

 

@end

 

여기서는 Fraction이라는 클래스는 3개의 메소드를 가지고있다.

Fraction클래스는 NSObject라는 클래스를 상속받고 있다.

 

그리고

 

//@implementation 부분

@implementation Fraction{

    int numerator;

    int denominator;

    

}

-(void) print//결과값을 출력하는 메소드

{

    NSLog(@"%i/%i"numeratordenominator);//변수를출력함

}

 

-(void) setNumerator:(int)n

{

    numerator = n;

}

 

-(void)setDenominator:(int)d

{

    denominator = d;

}

@end

 

여기서는 실제 메소드를 작성하고있다.

메소드 작성시 -로 시작해야되며 그다음 반환값을 쓴다.

반환값이 int면 -(int) function_name 이런식으로 작성하게 된다.

그리고 :(int) n은 하나의 정수인수가 메소드로 넘겨진다는 뜻이다. 인수가 없다면

-(void) function_name{} 로 콜론이 없다.

 

//프로그램부분

int main(int argc, const char * argv[]) {

    @autoreleasepool {

        Fraction *myFraction;

        

        //Fraction 인스턴스를 생성한다

        myFraction = [Fraction alloc];

        myFraction = [myFraction init];

        

        //1/3 분수의 값을 설정한다.

        [myFraction setNumerator : 1];

        [myFraction setDenominator3];

        

        //print메서드로 분수의 값을 표시한다.

        NSLog(@"값은?");

        [myFraction print];

        

    }

    return 0;

}

 

여기는 실제 메인 함수부분이다.

Fraction 형 객체인 myFraction을 선언하였다.

그리고 아래 부분은  실제 메소드를 호출하는 부분이다.

       //1/3 분수의 값을 설정한다.

        [myFraction setNumerator : 1];

        [myFraction setDenominator3];

        

이로써 간단한 클래스 및 메소드 구현후 호출방법을 알아보았다.

 

예제 전체 파일.

 


#import <Foundation/Foundation.h>

 

//@interface 부분

 

//클래스 이름을 Fraction 부모는 NSObject 한다.

@interface Fraction : NSObject

 

//클래스안에메소드를선언함

-(void) print;

-(void) setNumerator: (int) n;//n넘겨주는파라미터임

-(void) setDenominator: (int) d;

 

@end

 

//@implementation 부분

@implementation Fraction{

    int numerator;

    int denominator;

    

}

-(void) print//결과값을 출력하는 메소드

{

    NSLog(@"%i/%i"numeratordenominator);//변수를출력함

}

 

-(void) setNumerator:(int)n

{

    numerator = n;

}

 

-(void)setDenominator:(int)d

{

    denominator = d;

}

@end

 

//프로그램부분

int main(int argc, const char * argv[]) {

    @autoreleasepool {

        Fraction *myFraction;

        

        //Fraction 인스턴스를 생성한다

        myFraction = [Fraction alloc];//메모리 공간 할당 NSObject에서 상속받은 함수

        myFraction = [myFraction init];//초기화부분

        //두줄을 myFraction = [[Fraction alloc] init];으로 결합가능

        

        //1/3 분수의 값을 설정한다.

        [myFraction setNumerator : 1];//아래 1 3파라미터값임

        [myFraction setDenominator3];

        

        //print메서드로 분수의 값을 표시한다.

        NSLog(@"값은?");

        [myFraction print];//print 메소드호출함

        

    }

    return 0;

}

 

실행화면

 

 

 

반응형