@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;
}