OC基本语法入门

来源:互联网 发布:1100lu千百鲁最新域名 编辑:程序博客网 时间:2024/05/29 09:25
//Fraction.h#import <Foundation/Foundation.h>static int i = 0;@interface Fraction : NSObject{    int numerator;  //分子@public int denominator;  //分母}-(void)setNumerator:(int) numerator;-(void)setDenominator:(int) denominator;-(void)setNumerator:(int)numerator andDenominator:(int)denominator;-(int)numerator;-(int)denominator;-(void)print;  //无参数,返回值为void类型,成员方法。+(void)t;      //无参数,返回值为void类型,类方法-(id) init;-(Fraction*)initWithNumeratot:(int)numerator andDenominator:(int)denominator;@end//Fraction.m#import "Fraction"@implementation Fraction-(void)setNumerator:(int)n{    numerator = n;}-(void)setDenominator:(int)d{    if(d == 0){    NSException* e = [DenominatorNotZeroException exceptionWithName:@"DenominatorNotZeroException"               reason:@"The denominator is not 0!"   userInfo:nil];    @throw e;}    denominator = d;}-(void)setNumerator:(int)n andDenominator:(int)d{    if(d == 0){    NSException* e = [DenominatorNotZeroException exceptionWithName:@"DenominatorNotZeroException"               reason:@"The denominator is not 0!"   userInfo:nil];    @throw e;}    numerator = n;denominator = d;}-(int)numerator{    return numerator;}-(int)denominator{    return denominator;}-(void)print{    printf("%d/%d\n", numerator,denominator);}-(void)m{    printf("-m:The class variable t is %d\n", ++t);}+(void)t{    printf("+t:The class variable t is %d\n", ++t);}-(id)init{    self = [super init];}-(Fraction*)initWithNumerator:(int)n andDenominator:(int)d{    self = [self init];if(self)[self setNumerator:n andDenominator:d];return self;}@end//DemominatorNotZeroException.h#import<Foundation/Foundation.h>@interface DenominatorNotZeroException : NSException@end//DenominatorNotZeroException.m#import "DenominatorNotZeroException.h"#implementation DenominatorNotZeroException@end//main.m#import "Fraction.h"int main(int argc, const char* argv[]){    NSAutoreleasePool* pool = [[NSAutoreleasePool alloc]init];@try{    Fraction* frac = [[Fraction alloc]initWithNumerator:3 andDenominator:0];}@catch(DenominatorNotZeroException* dne){    printf("%s\n",[[dne reason]cString]);}@catch(NSException* e){    printf("%s\n",[[e name]cString]);}@finally{    printf("finally run");}[pool release];/*    Fraction* frac = [[Fraction alloc] init];[frac setNumerator:3 andDenominator:5];[frac print];printf("The denominator of Fraction is %d\n", frac->denominator);[Fraction t];[frac m];[frac release];*/return 0;}

0 0
原创粉丝点击