본문 바로가기

나의 플랫폼/iOS

[ Object-c ] 클래스 다루기

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
원래 안드로이드 개발자인 나.. 
아마 프로그램 이해방식이 자바쪽으로 많이 되어 있을 것이다. 이해바람.
참고로 전.. 윈도우에서 공부중이란...^^;; 


@interface : 클래스를 선언 시켜주는 부분이다.
@implementation : 선언 되어진 변수나 메소드를 가지고 실제 코드를 작성.

자바와 비슷하지만, 두 부류로 나누어져 있다는 게 큰 특징 같다.

한번 implemetation만 선언해도 되지 않을까 했는데..
역시나 오류가 뜨는군..^^;;

@interface 클래스 이름: 부모 클래스
{

변수 선언;



메소드 선언; 
@end 


@implementaion 클래스 이름

실제 코드

 @end 


샘플 소스

#import <Foundation/Foundation.h>


// 클래스 형태를 잡아주는 선언 부분 

@interface Fraction: NSObject

{

  int numerator;

  int denominator;

}


-(void) print;

-(void) setNumerator:   (int) n;

-(void) setDenominator: (int) d;


@end


// 형태에 따라 실제 코드를 넣는다. 

@implementation Fraction


-(void) print

{

  NSLog (@"%i/%i", numerator , denominator);

}


-(void) setNumerator: (int) n

{

  numerator = n;

}


-(void) setDenominator: (int) d

{

  denominator = d;

}


@end


// 직접 클래스를 가지고 코딩하는 부분 

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

{

  NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

  Fraction *myFraction;

  

  // 클래스 초기화 

  myFraction = [Fraction alloc];

  myFraction = [myFraction init];

  

  // 함수에 숫자 할당 

  [myFraction setNumerator: 1];

  [myFraction setDenominator: 3];

  

  //출력 

  NSLog (@"The value of myFraction is:");

  [myFraction print];

  [myFraction release];

  

  system("PAUSE");

  [pool drain];

  return 0;

}


 
클래스 초기화(메모리 할당)를 alloc으로 먼저 선언하는 이유는 인스턴스를 먼저 만들기 위해서다.

즉, 많이 사용하는 붕어빵 틀을 먼저 alloc로 만든 다음, 붕어의 팥과 밀가루 반죽을 넣는 부분이 init라고 보시면 된다.^^ 

 
참조 : 함수에는 매개변수가 2개 이상으로도 많이 쓰이는 과연 어떻게 사용할까? 

바로!!!

-(void) 메소드 명  매개변수 : 매개변수 : 매개변수...
{
} 

 이런 형태로 선언 및 본 소스에도 사용하면 된다.^^

'나의 플랫폼 > iOS' 카테고리의 다른 글

[ C언어 ] 기초 공부  (0) 2012.07.11
[ Object-c ] 반복문 연습  (0) 2011.06.15
[ Object-c ] NSAutoreleasePool란?  (0) 2011.06.15
[ Ojbect-C ] 윈도우에서 Object-c 사용하기  (11) 2011.06.15
Object-c 사이트  (0) 2011.06.14