// // main.m // OC10变量数据类型 // // Created by Zoujie on 15/9/4. // Copyright (c) 2015年 Zoujie. All rights reserved. // enum flag { FIREST, SECOND, THIRD, FOURTH=5, FIFTH, }ENDOFDATA; //未命名的枚举类型 enum { up, down, left = 10, right, }; enum boolean { no = 0, false = 0, yes = 1, ture = 1, }; enum Month { january = 1, february, march , april, may , june, july, august, september, october, november, december }; typedef int Counter;//增加了变量定义的可读性 typedef enum{ east, west, north, south }Direction ; #import <Foundation/Foundation.h> #import "Fraction.h" typedef Fraction * NumberObject; typedef Fraction * FractionObj; int main(int argc, const char * argv[]) { @autoreleasepool { Fraction *myFtactin = [[Fraction alloc]init]; [myFtactin setTo:10 over:20]; Fraction *a = [[Fraction alloc]init]; Fraction *b = [[Fraction alloc]init]; [a setTo:1 over:3]; [b setTo:3 over:7]; [a print]; [b print]; NSLog(@"Fractions allocated :%i",[Fraction count]); a = [[Fraction allocF] init]; b = [[Fraction allocF] init]; Fraction *c = [[Fraction allocF] init]; NSLog(@"Fractions allocated :%i",[Fraction count]); //枚举 // enum flag {FIREST,SECOND,THIRD}; switch (ENDOFDATA) { case FIREST: NSLog(@"first==%d",FIREST); break; case SECOND: NSLog(@"second"); break; case THIRD: NSLog(@"third"); break; case FOURTH: NSLog(@"fourth"); break; case FIFTH: NSLog(@"fifth"); break; default: break; } enum flag ONE,TWO; if (ONE){NSLog(@"ONE");}; if (TWO){NSLog(@"TWO");}; enum Month amoth; int days; NSLog(@"Enter month number:"); scanf("%i",&amoth); switch (amoth) { case january: case april: case may: case june: case july: case august: case october: case december: days = 31; break; case march: case september: case november: days = 30; break; case february: days = 28; break; default: NSLog(@"bad month number"); days = 0; break; } if (days != 0)NSLog(@"Number of days is %i",days); if (amoth == february)NSLog(@"...or 29 if it‘s a leap year"); Counter x = 2 , y = 3; NSLog(@"%d",x); NumberObject myValue1,myValue2,myValue3;//定义的三个Fraction对象 Direction stpe1,stpe2; switch (stpe1) { case east: NSLog(@"%i",east); break; default: break; } FractionObj f1 = [[Fraction alloc]init]; FractionObj f2 = [[Fraction alloc]init]; } return 0; }
// // Fraction.h // OC10变量数据类型 // // Created by Zoujie on 15/9/4. // Copyright (c) 2015年 Zoujie. All rights reserved. // #import <Foundation/Foundation.h> @interface Fraction : NSObject { } @property (nonatomic ,assign) NSInteger a; @property (nonatomic ,assign) NSInteger b; -(void)setTo:(int)a over:(int) b; -(instancetype)initWith:(int) a over:(int) b;//自定义初始化,所有的初始化方法都以init开头 -(void)print; +(Fraction *)allocF; +(int)count; @end
// // Fraction.m // OC10变量数据类型 // // Created by Zoujie on 15/9/4. // Copyright (c) 2015年 Zoujie. All rights reserved. // #import "Fraction.h" static int gGlobalVar = 0; //静态变量 static int gCounter; @implementation Fraction -(instancetype)init//重载init方法 { self = [super init];//首先调用父类的init方法 if (self) { NSLog(@"111111"); } return self; } -(Fraction *)initWith:(int) a over:(int) b { self = [super init]; if (self) { [self setTo:a over:b]; } return self; } -(void)setTo:(int)a over:(int)b { _a = a; _b = b; } -(void)print { NSLog(@"%ld/%ld",_a,_b); } +(Fraction *)allocF { extern int gCounter; ++gCounter; return [Fraction alloc]; } +(int) count { extern int gCounter; return gCounter; } @end
时间: 2024-10-25 10:59:52