@interface部分
#import <Foundation/Foundation.h>
/*定義的類的名稱。本程序中,Fraction是我們自定義的名
NSObject是該類的父類名稱,由Foundation.h導入
OC中定義新類的時候必須告訴OC編譯器該類來自何處*/
@interface Fraction: NSObject
//下面爲聲明類中的方法。
/*開頭的負號表示該方法上一個實例方法,必須通過對象來調用。
也可以爲+,直接通過類調用*/
-(void) print;
-(void) setNumerator: (int) n;
-(void) setDenominator: (int) d;
-(int) numerator;
-(int) denominator;
@end
@implementation部分
/*
描述數據 並且實現方法,
*/
@implementation Fraction
{
//這裏創建的是實例變量
int numerator;
int denominator;
}
//下面爲實現interface部分中聲明的方法
-(void)print{
NSLog(@"%i/%i",numerator,denominator);
}
-(void)setNumerator:(int)n{
numerator = n;
}
-(void)setDenominator:(int)d{
denominator = d;
}
-(int)denominator{
return denominator;
}
-(int)numerator{
return numerator;
}
@end
@program部分
int main(int argc, const char * argv[]) {
@autoreleasepool {
//*表示myFrac是Fraction對象的引用。相當於一個指針
//myFrac並不存儲數據,而是存儲的引用。
//該引用指向了存儲 數據的內存地址值
Fraction *myFrac;
//1.創建並初始化對象
myFrac = [Fraction alloc];//創建對象分配內存空間
myFrac = [myFrac init];//初始化對象
//2.上面兩條語句在oc中非常常見,因此可以簡寫爲一條
//myFrac = [[Fraction alloc] init];
//3.也可以使用更簡便的方式
//Fraction *myFrac = [Fraction new];
//調用方法並傳參
[myFrac setDenominator:3];
[myFrac setNumerator:1];
NSLog(@"Hello, World!%i/%i",[myFrac getNum],[myFrac getDen]);
//調用無參方法
[myFrac print];
}
return 0;
}