Fraction.h 파일에서 멤버 변수에 @property를 지정해주면 자동으로
세터 함수와 게터 함수가 생성된다. Fraction.m파일에서는 @synthesize 를 멤버변수에 해줘야함..
Fraction.h
#import <Foundation/Foundation.h>
@interface Fraction : NSObject
//아래와 같이 하면 자동으로 세터(setter)와 게터(getter)가 생성된다.
@property int numerator, denominator;
-(void) print;
-(void) setTo: (int) n over: (int) d;
-(double) convertToNum;
-(void) add: (Fraction *) f;
-(void) reduce;
@end
Fraction.m
#import "Fraction.h"
@implementation Fraction
//세터(setter)와 게터(getter) 생성시 반드시 아래와 같이 해줘야함
@synthesize numerator, denominator;
-(void) print{
NSLog(@"%i/%i", numerator, denominator);
}
-(double) convertToNum{
if(denominator != 0)
return (double) numerator / denominator;
else
return NAN;
}
-(void) setTo: (int) n over:(int) d{
numerator = n;
denominator = d;
}
-(void) add: (Fraction *) f{
numerator = numerator * f.denominator + denominator * f.numerator;
denominator = denominator * f.denominator;
}
//최대 공약수를 구해서 numerator와 denominator에 나눠주는 함수
-(void) reduce{
int u = numerator;
int v = denominator;
int temp;
while(v != 0){
temp = u % v;
u = v;
v = temp;
}
numerator /= u;
denominator /= u;
}
@end
main.m
#import <Foundation/Foundation.h>
#import "Fraction.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
Fraction *aFraction = [[Fraction alloc] init];
Fraction *bFraction = [[Fraction alloc] init];
[aFraction setTo: 1 over: 4];//첫번째인자는 1 두번째인자는 4로설정
[bFraction setTo: 1 over: 2];
[aFraction print];
NSLog(@"+");
[bFraction print];
NSLog(@"=");
[aFraction add:bFraction];
//덧셈 결과를 약분하고 표시한다.
[aFraction reduce];
[aFraction print];
}
return 0;
}
실행 화면
'프로그래밍 > Objective C' 카테고리의 다른 글
Objective C - 메소드 재정의하기 (0) | 2015.09.17 |
---|---|
Objective C - @class 지시어 사용하기 (0) | 2015.09.15 |
Objective C - 상속으로 확장하기 (새 메소드 추가) (0) | 2015.09.14 |
Objective C - 간단한 예제를 이용한 상속이해 (0) | 2015.09.11 |
Objective C - 인터페이스와 구현파일 나누기 (0) | 2015.09.06 |
Xcode에서 Objective C class가 없을때 (0) | 2015.09.06 |
Objective C - 반복문 for문 예제 (0) | 2015.09.05 |
Objective C - 간단한 클래스를 활용한 계산기 만들기 (0) | 2015.08.31 |