#import <Foundation/Foundation.h> #pragma mark 狗类的声明 @interface Dog:NSObject { @public NSString *color; float speed; NSString *sex; float weight; } -(void) eat:(NSString *) foodName;//吃 -(void) jiao;//叫 -(void) run;//跑 -(BOOL) isCompareColorWithOther:(Dog *) Dog;//传一个狗对象,与之前的狗颜色进行比较 -(float) isCompareSpeedWithOther:(Dog *) Dog;//速度进行比较 @end #pragma mark 狗类的实现 @implementation Dog //吃的方法 -(void) eat:(NSString *) foodName { weight+=0.5f; NSLog(@"狗正在吃%@,狗的体重为%.2f",foodName,weight); } -(void) jiao { NSLog(@"狗的颜色为%@,速度为%.2f,性别为%@,体重为%.2f",color,speed,sex,weight); } -(void) run { weight-=0.5; NSLog(@"跑完之后的速度为%.2f,跑完之后的体重为%.2f",speed,weight); } -(BOOL) isCompareColorWithOther:(Dog *)Dog { if(color == Dog->color) { return YES; } else { return NO; } } -(float) isCompareSpeedWithOther:(Dog *)Dog { return (speed - Dog->speed); } @end #pragma mark 人类的声明 @interface Person:NSObject { @public NSString *name; Dog *dog; } -(void)feedDog:(NSString*)feedName; -(void)liuGou; @end @implementation Person -(void)feedDog:(NSString*)feedName { [dog eat:feedName]; } -(void)liuGou { [dog run]; } @end int main(int argc, const char * argv[]) { @autoreleasepool { Dog *dog1= [Dog new]; dog1->color=@"金色"; dog1->speed=37.0f; dog1->weight=27.0f; dog1->sex=@"公"; Dog *dog2= [Dog new]; dog2->color=@"银色"; dog2->speed=28.0f; dog2->weight=20.0f; dog2->sex=@"公"; [dog1 eat:@"骨头"]; [dog1 jiao]; [dog1 run]; BOOL isSameColor=[dog1 isCompareColorWithOther:dog2]; NSLog(@"颜色是否相同 = %d", isSameColor); float speedCha=[dog1 isCompareSpeedWithOther:dog2]; NSLog(@"速度差 = %.2f", speedCha); NSLog(@"----------------------"); Person *person=[Person new]; person->name=@"张三"; person->dog = dog2; [person feedDog:@"大骨头"]; [person liuGou]; } return 0; }
#import <Foundation/Foundation.h> @interface Person:NSObject { @public int _age; float _weight; } -(float) eat:(float)x; -(float) walk:(int)y; @end @implementation Person -(float) eat:(float)x { if (x>0) { return _weight+0.6; } else { return _weight; } } -(float) walk:(int)y { if (y>=100) { return _weight-(0.2*(y/100)); } else { return _weight; } } @end int main(int argc, const char * argv[]) { @autoreleasepool { Person *P= [Person new]; P->_weight=50; float E=[P eat:1]; float W=[P walk:200]; NSLog(@"人吃食物后的体重为%.2f,人散步后的体重为%.2f",E,W); } return 0; }
#import <Foundation/Foundation.h> @interface Car:NSObject { //成员的声明 @public int speed; NSString *color; } //方法的声明 -(void) run; @end @implementation Car //方法的实现 -(void) run { speed=99; color=@"blue"; NSLog(@"speed=%d,color=%@",speed,color); } @end int main(int argc, const char * argv[]) { @autoreleasepool { // insert code here... Car *c=[Car new]; // c->speed=100; // c->color=@"red"; [c run]; } return 0; }
#import <Foundation/Foundation.h> #pragma mark 子弹类的声明 @interface Bullet : NSObject { @public int bulletCount; } @end #pragma mark 子弹类的实现 @implementation Bullet @end #pragma mark 枪类的声明 @interface Gun : NSObject { @public NSString *size; } -(void) shoot:(Bullet *) bullet; @end #pragma mark 枪类的实现 @implementation Gun -(void) shoot:(Bullet *) bullet { if(bullet->bulletCount>0) { bullet->bulletCount --; NSLog(@"%@正在射击,剩余子弹:%d", size, bullet->bulletCount); } else { NSLog(@"没子弹了!"); } } @end #pragma mark - @interface Soldier:NSObject { @public NSString *name; int level; int life; } -(void) fireByGun:(Gun *)gun andBullet:(Bullet *)bullet; @end @implementation Soldier -(void) fireByGun:(Gun *)gun andBullet:(Bullet *)bullet { [gun shoot:bullet]; } @end //#pragma mark 士兵类声明 //@interface Soldier : NSObject //{ // @public // NSString *name; // int level; // int life; //} //-(void) fireByGun:(Gun *) gun andBullet:(Bullet *) bullet; //@end //#pragma mark 士兵类实现 //@implementation Soldier //-(void) fireByGun:(Gun *) gun andBullet:(Bullet *) bullet //{ // [gun shoot:bullet]; //} //@end int main(int argc, const char * argv[]) { @autoreleasepool { Gun *g = [Gun new]; g->size = @"小米加步枪"; Soldier *s = [Soldier new]; s->name = @"斯沃特"; s->life = 100; s->level = 2; Bullet *_bullet = [Bullet new]; _bullet->bulletCount = 3; [s fireByGun:g andBullet:_bullet]; [s fireByGun:g andBullet:_bullet]; [s fireByGun:g andBullet:_bullet]; [s fireByGun:g andBullet:_bullet]; } return 0; }
// Calculator.h #import <Foundation/Foundation.h> #import "Car.h" @interface Calculator : NSObject -(int) Add:(int)num1 and:(int)num2; +(int) Add:(int)num1 and:(int)num2; -(void) dxdydx; -(void) dxdylei; -(void) _self; +(void) leidydx; +(void) leidylei; -(void) dxdydx:(Car *)_car; //格式化字符串 -(void) _NSString; @end ----------------------------------------------------------------------------------------- // Calculator.m #import "Calculator.h" #import "Car.h" @implementation Calculator -(int) Add:(int)num1 and:(int)num2 { return num1+num2; } +(int) Add:(int)num1 and:(int)num2 { return num1+num2; } -(void) _NSString { for (int i=1; i<11; i++) { NSString *str=[NSString stringWithFormat:@"%02d.jpg",i]; NSLog(@"%@",str); } } -(void) dxdydx { //对象方法调用对象方法 Car *car=[Car new]; [car run]; [self _self];//self代表当前类的一个对象,调用自己的对象方法 } -(void) _self { NSLog(@"用self调用自身"); } -(void)dxdylei { //对象方法调用类方法 [Car run]; } +(void)leidydx { //类方法调用对象方法 Car *car=[Car new]; [car run]; } +(void)leidylei { //类方法调用类方法 [Car run]; } //通过传参 -(void)dxdydx:(Car *)_car { Car *car=[Car new]; [car run]; } @end ----------------------------------------------------------------------------------------- // // Car.h #import <Foundation/Foundation.h> @interface Car : NSObject -(void) run; +(void) run; @end ----------------------------------------------------------------------------------------- // // Car.m #import "Car.h" @implementation Car -(void) run { NSLog(@"Car的对象方法被调用"); } +(void) run { NSLog(@"Car的类方法被调用"); } @end ----------------------------------------------------------------------------------------- // // main.m #import <Foundation/Foundation.h> #import "Calculator.h" #import "Car.h" int main(int argc, const char * argv[]) { @autoreleasepool { Calculator *c1=[Calculator new]; int res1=[c1 Add:4 and:7]; int res2=[Calculator Add:2 and:7]; NSLog(@"对象方法加=%d",res1); NSLog(@"类方法加=%d",res2); NSLog(@"------------------"); //生成类的一个对象,然后调用 [c1 dxdydx]; [c1 dxdylei]; //作为一个参数调用 Car *car=[Car new]; [c1 dxdydx:car]; NSLog(@"--------------------"); [Calculator leidydx]; [Calculator leidylei]; NSLog(@"------------------------"); [c1 _NSString]; } return 0; }
// // Employee.h #import <Foundation/Foundation.h> @interface Employee : NSObject { NSString * _name; int _age; float _salary; } -(void)setName:(NSString *)name; -(NSString *)name; //@property NSString * name; -(void)setAge:(int)age; -(float)salary; @end ----------------------------------------------------------------------------------------- // // Employee.m // P1 #import "Employee.h" @implementation Employee -(void)setName:(NSString *)name { _name=name; NSLog(@"设置的名字为%@",_name); } -(NSString *)name { _name=@"osay"; return _name; } -(void)setAge:(int)age { _age=age; NSLog(@"设置的年龄为%d",_age); } -(float)salary { _salary=5687.8; return _salary; } @end ----------------------------------------------------------------------------------------- // // main.m // 封装 #import <Foundation/Foundation.h> #import "Employee.h" int main(int argc, const char * argv[]) { @autoreleasepool { Employee *e=[Employee new]; NSString * na=[e name]; NSLog(@"名字为%@",na); [e setName:@"iosay"]; [e setAge:20]; float sa=[e salary]; NSLog(@"工资为%.2f",sa); } return 0; }
// // Car.h #import <Foundation/Foundation.h> @interface Car : NSObject { @public int _speed; } -(void)start; -(void)stop; @end ----------------------------------------------------------------------------------------- // // Car.m #import "Car.h" @implementation Car -(void)start { NSLog(@"车已启动,速度为%d",_speed); } -(void)stop { NSLog(@"车已熄火"); } @end ----------------------------------------------------------------------------------------- // Person.h // P1 #import <Foundation/Foundation.h> #import "Car.h" @interface Person : NSObject -(void)goHome:(Car*)car; @end ----------------------------------------------------------------------------------------- // // Person.m // P1 #import "Person.h" @implementation Person -(void)goHome:(Car*)car { [car start]; } @end ----------------------------------------------------------------------------------------- // // main.m // 匿名类的使用 #import <Foundation/Foundation.h> #import "Person.h" int main(int argc, const char * argv[]) { @autoreleasepool { Person *p=[Person new]; Car *c= [Car new]; c->_speed=99; [c start]; [Car new]->_speed=100; [p goHome:[Car new]]; } return 0; }
// // Dog.h #import <Foundation/Foundation.h> @interface Dog : NSObject -(void)run; @end ----------------------------------------------------------------------------------------- // // Dog.m // P1 #import "Dog.h" @implementation Dog -(void)run { NSLog(@"-run->狗在跑"); } @end ----------------------------------------------------------------------------------------- // // Person.h // P1 #import <Foundation/Foundation.h> #import "Dog.h" @interface Person : NSObject { //关联关系 @public Dog *_dog ; } -(void)liuDog:(Dog *)dog;//依赖关系 -(void)liuDog; @end ---------------------------------------------------------------------------------------- // // Person.m #import "Person.h" @implementation Person //依赖关系 -(void)liuDog:(Dog *)dog { [dog run]; } //关联关系 -(void)liuDog { [_dog run]; } @end ---------------------------------------------------------------------------------------- // // main.m // 关联和依赖-人遛狗 #import <Foundation/Foundation.h> #import "Person.h" int main(int argc, const char * argv[]) { @autoreleasepool { Person * p =[Person new]; Dog * d1 = [Dog new]; //[p liuDog:d1]; p->_dog=d1; [p liuDog]; } return 0; }
// // Person.h #import <Foundation/Foundation.h> @interface Person : NSObject -(void)run; -(void)eat; +(void)sleep; +(void)music; @end ----------------------------------------------------------------------------------------- // // Person.m #import "Person.h" @implementation Person -(void)run { NSLog(@"人在跑"); [self eat]; NSLog(@"run:self:%p",self); } -(void)eat { NSLog (@"人在吃"); } +(void)sleep { NSLog(@"人在睡"); [self music]; NSLog(@"sleep:self:%p",self); } +(void)music { NSLog(@"人在听歌"); } @end ----------------------------------------------------------------------------------------- // // Static.h #import <Foundation/Foundation.h> @interface Static : NSObject -(void)count; @end ----------------------------------------------------------------------------------------- // // Static.m #import "Static.h" @implementation Static -(void)count { static int count=1; NSLog(@"count=%d",count); count++; } @end ----------------------------------------------------------------------------------------- // // main.m // self的使用 #import <Foundation/Foundation.h> #import "Person.h" #import "Static.h" int main(int argc, const char * argv[]) { @autoreleasepool { Person *p=[Person new]; [p run]; NSLog(@"当前对象:%p",p); NSLog(@"----------------------"); [Person sleep]; NSLog(@"当前类Person:%p",[p class]); NSLog(@"----------------------"); Static *s=[Static new]; [s count]; [s count]; [s count]; } return 0; }
// // Child.h #import "Person.h" @interface Child : Person -(void)play; -(void)show; @end ----------------------------------------------------------------------------------------- // // Child.m #import "Child.h" @implementation Child -(void)play { NSLog(@"child play"); } -(void)eat:(NSString *)foodName { NSLog(@"child eat %@",foodName); } -(void)run { NSLog(@"child run"); } -(void)show { _name=@"zhangyu"; } @end ----------------------------------------------------------------------------------------- // // Person.h #import <Foundation/Foundation.h> @interface Person : NSObject { int age; @public NSString * _name; @private float _salary; @protected float _weight; } -(void)setAge:(int)age; -(int)Age; -(void)eat:(NSString *)foodName; -(void)run; @end --------------------------------------------------------------------------------------- // // Person.m #import "Person.h" NSString *blog=@"www.iosyu.com"; @implementation Person -(void)setAge:(int)age { self->age=age; } -(int)Age { return self->age; } -(void)eat:(NSString *)foodName { NSLog(@"一个人在吃%@",foodName); } -(void)run { NSLog(@"一个人在跑步"); [self blog]; } -(void)blog { NSLog(@"博客地址:%@",blog); } @end --------------------------------------------------------------------------------------- // // test.h #import "Child.h" @interface test : Child @end --------------------------------------------------------------------------------------- // // test.m #import "test.h" @implementation test @end --------------------------------------------------------------------------------------- // // main.m // 类的继承 #import <Foundation/Foundation.h> #import "Person.h" #import "Child.h" #import "test.h" int main(int argc, const char * argv[]) { @autoreleasepool { Person *p=[Person new]; [p setAge:20]; NSLog(@"年龄为:%d",[p Age]); [p eat:@"苹果"]; [p run]; NSLog(@"--------------------------"); Child *c=[Child new]; [c setAge:10]; NSLog(@"child年龄为:%d",[c Age]); [c eat:@"apple"]; [c run]; [c play]; NSLog(@"--------------------------"); test *t=[test new]; [t eat:@"banana"]; } return 0; }
// // Person.h #import <Foundation/Foundation.h> @interface Person : NSObject { int _age; } -(void)setAge:(int)age; -(int)age; @end ----------------------------------------------------------------------------------------- // // Person.m #import "Person.h" @implementation Person -(void)setAge:(int)age { _age=age; } -(int)age { return _age; } -(NSString *)description { NSString *str= [NSString stringWithFormat:@"age=%d",_age]; return str; } @end ----------------------------------------------------------------------------------------- // // main.m // description方法 #import <Foundation/Foundation.h> #import "Person.h" int main(int argc, const char * argv[]) { @autoreleasepool { Person *p= [Person new]; [p setAge:2]; NSLog(@"age=%d",[p age]); NSLog(@"p:%@",p); Class c1=[p class]; NSLog(@"Person:%@",c1); NSLog(@"Person:%@",[p class]); } return 0; }
// Animal.h #import <Foundation/Foundation.h> @interface Animal : NSObject -(void)run; @end ----------------------------------------------------------------------------------------- // // Animal.m #import "Animal.h" @implementation Animal -(void)run { NSLog(@"动物在跑"); } @end ----------------------------------------------------------------------------------------- // // Cat.h #import "Animal.h" @interface Cat : Animal @end ----------------------------------------------------------------------------------------- // // Cat.m #import "Cat.h" @implementation Cat -(void)run { NSLog(@"?在跑"); } @end ----------------------------------------------------------------------------------------- // // Dog.h #import "Animal.h" @interface Dog : Animal -(void)eat; @end ----------------------------------------------------------------------------------------- // // Dog.m #import "Dog.h" @implementation Dog -(void)run { NSLog(@"?在疯跑"); } -(void)eat { NSLog(@"?在吃东西"); } @end ----------------------------------------------------------------------------------------- // // main.m // 多态 #import <Foundation/Foundation.h> #import "Cat.h" #import "Dog.h" int main(int argc, const char * argv[]) { @autoreleasepool { Animal *a1=[Animal new]; [a1 run]; Animal *a2=[Dog new]; [a2 run]; [(Dog *)a2 eat]; Animal *a3=[Cat new]; [a3 run]; } return 0; }
// // Person.h #import <Foundation/Foundation.h> @interface Person : NSObject -(void)eat; +(void)eat; @end ----------------------------------------------------------------------------------------- // // Person.m #import "Person.h" @implementation Person -(void)eat { NSLog(@"-eat"); } +(void)eat { NSLog(@"+eat"); } @end ----------------------------------------------------------------------------------------- // // main.m // 类的本质 #import <Foundation/Foundation.h> #import "Person.h" int main(int argc, const char * argv[]) { @autoreleasepool { Person *p=[Person new]; [p eat]; NSLog(@"p:%p",p); Class c1=[Person class]; NSLog(@"c1:%p",c1); Class c2=[p class]; NSLog(@"c2:%p",c2); [c2 eat]; } return 0; }
// // Person.h // P1 #import <Foundation/Foundation.h> @interface Person : NSObject { NSString * _name; int _age; } -(void)setName:(NSString *)name; -(NSString *)name; //@property NSString * name; -(void)setAge:(int)age; -(int)age; @end ---------------------------------------------------------------------------------------- // // Person.m #import "Person.h" @implementation Person -(void)setName:(NSString *)name { _name=name; } -(NSString *)name { return _name; } -(void)setAge:(int)age { _age=age; } -(int)age { return _age; } @end ---------------------------------------------------------------------------------------- // // main.m // 点语法 #import <Foundation/Foundation.h> #import "Person.h" int main(int argc, const char * argv[]) { @autoreleasepool { Person *p=[Person new]; p.name=@"Osay"; p.age=20; NSLog(@"name=%@,age=%d",p.name,p.age); } return 0; }
// // Person.h #import <Foundation/Foundation.h> @interface Person : NSObject { NSString * _name; int _age; } //-(void)setName:(NSString *)name; //-(NSString *)name; @property NSString * name; @property int age; //-(void)setAge:(int)age; //-(int)age; -(void)test; @end ----------------------------------------------------------------------------------------- // // Person.m #import "Person.h" @implementation Person @synthesize name=_name; //-(void)setName:(NSString *)name //{ // _name=name; //} //-(NSString *)name //{ // return _name; //} @synthesize age=_age; //-(void)setAge:(int)age //{ // _age=age; //} //-(int)age //{ // return _age; //} -(void)test { //NSLog(@"name=%@",name); NSLog(@"_name=%@",_name); //NSLog(@"age=%d",age); NSLog(@"_age=%d",_age); } @end ----------------------------------------------------------------------------------------- // // main.m // Property&Synthesize #import <Foundation/Foundation.h> #import "Person.h" int main(int argc, const char * argv[]) { @autoreleasepool { Person *p=[Person new]; p.name=@"ios";//[p setName:@"ios"] p.age=20; NSLog(@"name=%@,age=%d",p.name,p.age); NSLog(@"-------------------------"); [p test]; } return 0; }
// // Person.h #import <Foundation/Foundation.h> @interface Person : NSObject { // NSString * _name; // int _age; } @property NSString * name; //-(void)setName:(NSString *)name; //-(NSString *)name; @property int age; //-(void)setAge:(int)age; //-(int)age; @end ----------------------------------------------------------------------------------------- // // Person.m #import "Person.h" @implementation Person //@synthesize age; //@synthesize name; //-(void)setName:(NSString *)name //{ // _name=name; //} //-(NSString *)name //{ // return _name; //} // // // //-(void)setAge:(int)age //{ // _age=age; //} //-(int)age //{ // return _age; //} @end ----------------------------------------------------------------------------------------- // // Student.h #import "Person.h" @interface Student : Person @end ----------------------------------------------------------------------------------------- // // Student.m #import "Student.h" @implementation Student -(NSString *)name { return @"zhangyu"; } @end ----------------------------------------------------------------------------------------- // // main.m // Property增强 #import <Foundation/Foundation.h> #import "Person.h" #import "Student.h" int main(int argc, const char * argv[]) { @autoreleasepool { Person *p=[Person new]; p.name=@"ios";//[p setName:@"ios"]-->_name=@"ios" p.age=20; NSLog(@"_name=%@,_age=%d",p.name,p.age); NSLog(@"-------------------------"); Student *s=[Student new]; NSString * str=[s name]; NSLog(@"stuName=%@",str); } return 0; }
// // Person.h #import <Foundation/Foundation.h> @interface Person : NSObject @property NSString * name; @property int age; @end ----------------------------------------------------------------------------------------- // // Person.m #import "Person.h" @implementation Person @end ----------------------------------------------------------------------------------------- // Student.h #import "Person.h" @interface Student : Person -(void)eat; @end ----------------------------------------------------------------------------------------- // // Student.m #import "Student.h" @implementation Student -(void)eat { NSLog(@"学生在吃。"); } @end ----------------------------------------------------------------------------------------- // main.m // 动态类型和静态类型 #import <Foundation/Foundation.h> #import "Student.h" int main(int argc, const char * argv[]) { @autoreleasepool { //动态类型 Person *per=[Student new]; [(Student *)per eat]; //静态类型 Person *p=[Person new]; [p setName:@"zhangyu"]; NSLog(@"Person name=%@",[p name]); //a)方法 NSLog(@"---------------"); NSObject *obj=[Person new]; [(Person *)obj setName:@"Zhang Yu"]; NSLog(@"Person Name=%@",[(Person *)obj name]); //b)方法 NSLog(@"---------------"); id object; object=per; [object eat]; id two; two=obj; NSLog(@"%@",[two name]); NSLog(@"---------------"); Person *pp=[Person new]; BOOL isKind= [pp isKindOfClass:[Student class]]; if(isKind) { [(Student *)pp eat]; } } return 0; }
// Person.h #import <Foundation/Foundation.h> @interface Person : NSObject { @public int _age; } @end ----------------------------------------------------------------------------------------- // Person.m #import "Person.h" @implementation Person -(instancetype)init { self=[super init]; if(self) { _age=10; } return self; } @end ----------------------------------------------------------------------------------------- // main.m // 重写构造方法 #import <Foundation/Foundation.h> #import "Person.h" int main(int argc, const char * argv[]) { @autoreleasepool { Person *p =[Person new]; NSLog(@"p->_age=%d",p->_age); } return 0; }
// Person.h #import <Foundation/Foundation.h> @interface Person : NSObject @property int age; @property NSString* name; -(instancetype)initWith; @end ---------------------------------------------------------------------------------------- // Person.m #import "Person.h" @implementation Person -(instancetype)initWith { self=[super init]; if(self) { self.name=@"zhang yu"; self.age= 20; } return self; } @end ---------------------------------------------------------------------------------------- // main.m #import <Foundation/Foundation.h> #import "Person.h" int main(int argc, const char * argv[]) { @autoreleasepool { Person *p=[Person new]; NSLog(@"p->_name=%@,p->_age=%d",p.name,p.age); NSLog(@"----------------"); Person *p1=[[Person alloc]initWith]; NSLog(@"p->_name=%@,p->_age=%d",p1.name,p1.age); } return 0; }
// Bullet.h #import <Foundation/Foundation.h> @interface Bullet : NSObject { @public int bulletCount; } @end ----------------------------------------------------------------------------------------- // Gun.h #import <Foundation/Foundation.h> @interface Gun : NSObject { @public NSString *_size; int _bulletNum; } -(void) shoot; -(instancetype)initBullet; @end ----------------------------------------------------------------------------------------- // Gun.m #import "Gun.h" @implementation Gun -(void) shoot { if(_bulletNum>0) { _bulletNum --; NSLog(@"%@正在射击,剩余子弹:%d", _size, _bulletNum); } else { NSLog(@"没子弹了!"); } } -(instancetype)initBullet { self=[super init]; if(self) { _bulletNum=3; } return self; } @end ----------------------------------------------------------------------------------------- // Solider.h #import <Foundation/Foundation.h> #import "Gun.h" @interface Solider : NSObject { @public Gun *gun; } -(void)fireByGun; -(instancetype)initGun; @end ----------------------------------------------------------------------------------------- // // Solider.m #import "Solider.h" @implementation Solider -(void)fireByGun{ [gun shoot]; } -(instancetype)initGun { self=[super init]; if(self) { Gun *g=[[Gun alloc]initBullet]; g->_size=@"ak47"; gun=g; } return self; } @end ----------------------------------------------------------------------------------------- // main.m // 打枪 #import <Foundation/Foundation.h> #import "Solider.h" int main(int argc, const char * argv[]) { @autoreleasepool { // Solider *s=[Solider new]; // Gun *g=[Gun new]; // g->_size=@"ak47"; // g->_bulletNum=3; // [s fireByGun:g]; Solider *s=[[Solider alloc]initGun]; [s fireByGun]; [s fireByGun]; [s fireByGun]; [s fireByGun]; NSLog(@"---------------"); Solider *s1=[[Solider alloc]initGun]; [s1 fireByGun]; } return 0; }
// Person.h #import <Foundation/Foundation.h> @interface Person : NSObject @end ----------------------------------------------------------------------------------------- // Person.m #import "Person.h" @implementation Person -(void)dealloc { [super dealloc]; NSLog(@"Person 被释放"); } @end ----------------------------------------------------------------------------------------- // main.m // MRC内存管理 #import <Foundation/Foundation.h> #import "Person.h" int main(int argc, const char * argv[]) { //Person *p=[Person new]; @autoreleasepool { Person *p=[Person new]; NSLog(@"retainCount=%lu",p.retainCount); [p autorelease]; } NSLog(@"---------------"); return 0; }
// Person.h #import <Foundation/Foundation.h> @interface Person : NSObject @end ----------------------------------------------------------------------------------------- // Person.m #import "Person.h" @implementation Person -(void)dealloc { NSLog(@"Person 被释放"); } @end ----------------------------------------------------------------------------------------- // main.m // ARC内存管理 #import <Foundation/Foundation.h> #import "Person.h" int main(int argc, const char * argv[]) { //Person *p=[Person new]; __weak Person *per=[Person new]; @autoreleasepool { } NSLog(@"----------"); return 0; }
// Person.h #import <Foundation/Foundation.h> @interface Person : NSObject @property(nonatomic,readonly,assign) int age; -(void)show; @end ----------------------------------------------------------------------------------------- // Person.m #import "Person.h" @implementation Person -(void)show { _age=10; } @end ----------------------------------------------------------------------------------------- // main.m #import <Foundation/Foundation.h> #import "Person.h" int main(int argc, const char * argv[]) { @autoreleasepool { Person *p=[Person new]; [p show]; NSLog(@"年龄为:%d",p.age); } return 0; }
// Person.h #import <Foundation/Foundation.h> @interface Person : NSObject -(void)studyIos; @end ----------------------------------------------------------------------------------------- // Person.m #import "Person.h" @implementation Person -(void)studyIos { NSLog(@"studyIos"); } @end ----------------------------------------------------------------------------------------- // Person+play.h #import "Person.h" //只能添加方法,不能添加属性。 @interface Person (play) -(void)playCS; -(void)playLoL; @end ----------------------------------------------------------------------------------------- // Person+play.m #import "Person+play.h" @implementation Person (play) -(void)playCS { NSLog(@"playCS"); } -(void)playLoL { NSLog(@"playLoL"); } @end ----------------------------------------------------------------------------------------- // Person+study.h #import "Person.h" @interface Person (study) -(void)studyIos; -(void)studyFlash; @end ----------------------------------------------------------------------------------------- // Person+study.m #import "Person+study.h" @implementation Person (study) -(void)studyIos { NSLog(@"studyIos"); } -(void)studyFlash { NSLog(@"studyFlash"); } @end ----------------------------------------------------------------------------------------- // main.m // 分类实现类方法的添加 #import <Foundation/Foundation.h> #import "Person+play.h" #import "Person+study.h" int main(int argc, const char * argv[]) { @autoreleasepool { Person *p=[Person new]; [p playCS]; [p playLoL]; [p studyIos]; [p studyFlash]; } return 0; }
// Person.h #import <Foundation/Foundation.h> @interface Person : NSObject @end ----------------------------------------------------------------------------------------- // Person.m #import "Person.h" #import "Person_aa.h" @implementation Person -(void)show { _age=10; } -(int)countOfStr:(NSString *)str { int count=0; for(int i;i<str.length;i++) { unichar c=[str characterAtIndex:i]; if(c>='0'&&c<='9') { count++; } } return count; } @end ----------------------------------------------------------------------------------------- // Person_aa.h #import "Person.h" @interface Person () @property(nonatomic,readonly,assign) int age; -(void)show; -(int)countOfStr:(NSString *)str; @end ----------------------------------------------------------------------------------------- // Person+play.h #import "Person.h" @interface Person (play) -(void)playCS; @end ----------------------------------------------------------------------------------------- // Person+play.m #import "Person+play.h" @implementation Person (play) -(void)playCS { NSLog(@"playCS"); } @end ----------------------------------------------------------------------------------------- // main.m // 扩展系统类 #import <Foundation/Foundation.h> #import "Person+play.h" #import "Person_aa.h" int main(int argc, const char * argv[]) { @autoreleasepool { Person *p=[Person new]; [p playCS]; [p show]; NSLog(@"person.age=%d",p.age); NSString *str=@"abc123"; NSLog(@"%d",[p countOfStr:str]); } return 0; }
// MyProtocol.h #import <Foundation/Foundation.h> //定义协议 @protocol MyProtocol <NSObject> @required -(void)eat; -(void)sleep; @optional -(void)study; @end ----------------------------------------------------------------------------------------- // Person.h #import <Foundation/Foundation.h> #import "MyProtocol.h" #import "YourProtocol.h" @interface Person : NSObject <MyProtocol,YourProtocol> @end ----------------------------------------------------------------------------------------- // Person.m #import "Person.h" @implementation Person -(void)eat { NSLog(@"吃饭!"); } -(void)sleep { NSLog(@"睡觉!"); } -(void)study { NSLog(@"学习!"); } -(void)music { NSLog(@"听音乐!"); } @end ----------------------------------------------------------------------------------------- // YourProtocol.h #import <Foundation/Foundation.h> @protocol YourProtocol <NSObject> -(void)music; @end ----------------------------------------------------------------------------------------- // main.m // OC--协议 #import <Foundation/Foundation.h> #import "Person.h" int main(int argc, const char * argv[]) { @autoreleasepool { Person *p=[Person new]; [p eat]; [p sleep]; [p study]; [p music]; } return 0; }
// lookBaby.h #import <Foundation/Foundation.h> @protocol lookBaby <NSObject> -(void)wei; -(void)hong; @end ---------------------------------------------------------------------------------------- // Baby.h #import <Foundation/Foundation.h> #import "lookBaby.h" @interface Baby : NSObject @property(nonatomic,weak) id <lookBaby> delegate; -(void)eat; -(void)sleep; @end ---------------------------------------------------------------------------------------- // Baby.m #import "Baby.h" @implementation Baby -(void)eat { [self.delegate wei]; } -(void)sleep { [self.delegate hong]; } @end ---------------------------------------------------------------------------------------- // BaoMu.h #import <Foundation/Foundation.h> #import "lookBaby.h" @interface BaoMu : NSObject <lookBaby> @end ---------------------------------------------------------------------------------------- // BaoMu.m #import "BaoMu.h" @implementation BaoMu -(void)wei { NSLog(@"baby在吃!"); } -(void)hong { NSLog(@"baby在睡!"); } @end ---------------------------------------------------------------------------------------- // Person.h #import <Foundation/Foundation.h> #import "lookBaby.h" @interface Person : NSObject <lookBaby> @end ---------------------------------------------------------------------------------------- // Person.m #import "Person.h" @implementation Person -(void)wei { NSLog(@"小孩在吃!"); } -(void)hong { NSLog(@"小孩在睡!"); } @end ---------------------------------------------------------------------------------------- // main.m // 代理设计模式 #import <Foundation/Foundation.h> #import "Baby.h" #import "BaoMu.h" #import "Person.h" int main(int argc, const char * argv[]) { @autoreleasepool { Baby *b=[Baby new]; BaoMu *baomu=[BaoMu new]; b.delegate=baomu; [b eat]; [b sleep]; NSLog(@"-----------"); Baby *b1=[Baby new]; Person *p=[Person new]; b1.delegate=p; [b1 eat]; [b1 sleep]; } return 0; }
// // main.m // 字符串 NSString // // Created by jiying on 16/4/24. // Copyright (c) 2016年 jiying. All rights reserved. // #import <Foundation/Foundation.h> void test1()//字符串的初始化 { NSString *s1 =@"iosay"; NSLog(@"s1=%@",s1); NSString *s2 = [NSString string]; s2=@"iosay"; NSLog(@"s2=%@",s2); NSString *s3=[[NSString alloc]initWithFormat:@"iosay"]; NSLog(@"s3=%@",s3); NSString *s4=[NSString stringWithFormat:@"iosay"]; NSLog(@"s4=%@",s4); } void test2()//字符串的基本操作 { //1.获取字符串的长度 NSString *s1=@"iosay"; NSString *s2=@"iosay zhangyu";//空格也算一个长度 NSUInteger sl1= [s1 length]; NSUInteger sl2=s2.length; NSLog(@"s1的长度为%lu",sl1); NSLog(@"s2的长度为%lu",sl2); //2.获取指定位置的字符 for (int i=0; i<s1.length; i++) { char c= [s1 characterAtIndex:i]; NSLog(@"%c",c); } } void test3()//字符串的转换 { NSString *s1=@"iosay"; NSString *s2=@"IOSAY"; NSString *supper = [s1 uppercaseString]; NSString *slowr = [s2 lowercaseString]; NSLog(@"s1=%@;s2=%@",supper,slowr); NSString *S=[s1 capitalizedString]; NSLog(@"首字母%@大写了",S); } void test4()//字符串的判断 { NSString *s1=@"iosay"; NSString *s2=@"iosyu"; BOOL b=[s1 isEqualToString:s2]; NSLog(@"%d",b); NSString *s=@"ios"; BOOL bb=[s1 hasPrefix:s]; NSLog(@"%d",bb); BOOL bbb=[s1 hasSuffix:s]; NSLog(@"%d",bbb); } void test5()//字符串的比较 { NSString *s1=@"iosay"; NSString *s2=@"IOSAY"; //不区分大小写 NSComparisonResult res=[s1 caseInsensitiveCompare:s2]; switch (res) { case NSOrderedAscending: NSLog(@"s1<s2"); break; case NSOrderedSame: NSLog(@"s1=s2"); break; default: NSLog(@"s1>s2"); break; } //区分大小写 NSComparisonResult res1=[s1 compare:s2]; switch (res1) { case NSOrderedAscending: NSLog(@"s1<s2"); break; case NSOrderedSame: NSLog(@"s1=s2"); break; default: NSLog(@"s1>s2"); break; } } void test6()//字符串的查找 { NSString *str=@"iosay"; NSString *s1=@"ay"; NSRange ran=[str rangeOfString:s1]; NSInteger loc=ran.location; NSInteger len=ran.length; NSLog(@"loc=%lu,len=%lu",loc,len); } void test7()//字符串的截取 { NSString *s=@"iosay"; //1.从开头截取到指定位置(不包括指定位置) NSString *s1=[s substringToIndex:3]; NSLog(@"截取的长度为%@",s1); //2.从指定位置开始截取,一直到最后(包括指定位置) NSString *s2=[s substringFromIndex:1]; NSLog(@"截取的长度为%@",s2); //3.从指定位置到指定长度结束(包括指定位置) NSRange range={1,2}; NSString *s3=[s substringWithRange:range]; NSLog(@"截取的长度为%@",s3); } int main(int argc, const char * argv[]){ @autoreleasepool { NSString *s=@"abcdef"; NSString *s1=[s stringByReplacingOccurrencesOfString:@"a" withString:@"b"]; NSLog(@"s1=%@",s1); NSString *s2=[s stringByAppendingString:@"ghi"]; NSLog(@"s2=%@",s2); NSRange range={0,6}; s2=[s stringByReplacingCharactersInRange:range withString:@"iosay"]; NSLog(@"%@",s2); } return 0; }
// lookBaby.h #import <Foundation/Foundation.h> @class Baby; @protocol lookBaby <NSObject> -(void)wei:(Baby *)baby; -(void)hong:(Baby *)baby; @end ---------------------------------------------------------------------------------------- // Baby.h #import <Foundation/Foundation.h> #import "lookBaby.h" @interface Baby : NSObject @property(nonatomic,weak) id <lookBaby> delegate; -(void)eat; -(void)sleep; @end ---------------------------------------------------------------------------------------- // Baby.m #import "Baby.h" @implementation Baby -(void)eat { [_delegate wei:self]; } -(void)sleep { [_delegate hong:self]; } @end ---------------------------------------------------------------------------------------- // BaoMu.h #import <Foundation/Foundation.h> #import "lookBaby.h" @interface BaoMu : NSObject <lookBaby> @end ---------------------------------------------------------------------------------------- // BaoMu.m #import "BaoMu.h" #import "Baby.h" @implementation BaoMu -(void)wei:(Baby *)baby { NSLog(@"%p在吃!",baby); } -(void)hong:(Baby *)baby { NSLog(@"%p在睡!",baby); } @end ---------------------------------------------------------------------------------------- // main.m // _@Class的使用 #import <Foundation/Foundation.h> #import "Baby.h" #import "BaoMu.h" int main(int argc, const char * argv[]) { @autoreleasepool { Baby *b=[Baby new]; BaoMu *baomu=[BaoMu new]; b.delegate=baomu; [b eat]; [b sleep]; NSLog(@"-----------"); NSLog(@"%p",b); } return 0; }
// main.m // NSMutableString与NSString // #import <Foundation/Foundation.h> void test()//有返回值 { NSString *str= [NSString string]; NSMutableString *mstr=[NSMutableString string]; //有返回值 str=[str stringByAppendingString:@"iosay"]; NSLog(@"%@",str); [mstr appendFormat:@"zhang yu"]; NSLog(@"%@",mstr); } void test1()//NSMutableString { //字符串的初始化 NSMutableString *str=[NSMutableString string]; //在源字符串结尾追加 [str appendFormat:@"iosay"]; NSLog(@"%@",str); //字符串的删除 NSRange range={3,2}; [str deleteCharactersInRange:range]; NSLog(@"%@",str); //字符串的插入 [str insertString:@"ay" atIndex:3]; NSLog(@"%@",str); //字符串的替换 NSRange ran={3,2}; [str replaceCharactersInRange:ran withString:@"yu"]; NSLog(@"%@",str); } int main(int argc, const char * argv[]) { @autoreleasepool { NSString *str=@"iosay"; NSLog(@"%p",str); str=[str stringByAppendingString:@"nice"]; NSLog(@"%p",str); NSLog(@"-----------"); NSMutableString *mstr=[NSMutableString string];//初始化 NSLog(@"%p",mstr); [mstr appendFormat:@"ios"]; NSLog(@"%p",mstr); } return 0; }
// main.m // NSArray数组 #import <Foundation/Foundation.h> void Array() { //创建数组 NSArray *arr1=[NSArray array]; NSLog(@"%@",arr1); //创建一个只有一个元素的数组 NSArray *arr2=[NSArray arrayWithObject:@"只有一个元素"]; //创建一个包含多个元素的数组 NSArray *arr3=[NSArray arrayWithObjects:@"one",@"two",@"three", nil]; //用数组可以创建另外一个数组 NSArray *arr4=[NSArray arrayWithArray:arr3]; NSLog(@"%@",arr4); //用对象方法创建数组 NSArray *arr5=[[NSArray alloc]initWithObjects:@"1",@"2",@"3",nil]; //数组的简化形式 NSArray *arr=@[@"ios",@"iosay"]; NSLog(@"%@",arr); //访问数组 NSLog(@"%lu",arr3.count);//获取长度[arr count]; //访问数组某个元素 NSLog(@"%@",[arr3 objectAtIndex:2]); //取元素的下标 NSLog(@"%lu",[arr3 indexOfObject:@"two"]); //是否包含了某个元素 BOOL loc=[arr3 containsObject:@"ios"]; if(loc) { NSLog(@"yes"); } else { NSLog(@"no"); } //数组的遍历 //for循环 for (int i=0; i<arr3.count; i++) { NSLog(@"%@",arr3[i]); } //快速枚举法 for(NSString *temp in arr5) { NSLog(@"%@",temp); } //使用block块 [arr2 enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { NSLog(@"%@",obj); }]; } void MutableArray() { //创建一个可变数组 NSMutableArray *marr1=[NSMutableArray array]; [marr1 addObject:@"ios"]; NSLog(@"%@",marr1); marr1[1]=@"zhang yu"; NSLog(@"%@",marr1); //创建一个包含多个元素的可变数组 NSMutableArray *marr2=[NSMutableArray arrayWithObjects:@"1",@"2",@"3", nil]; NSLog(@"%lu",marr2.count); NSLog(@"%@",[marr2 objectAtIndex:1]); NSLog(@"%lu",[marr2 indexOfObject:@"3"]); BOOL loc=[marr2 containsObject:@"2"]; if(loc) { NSLog(@"yes"); } else { NSLog(@"no"); } //创建一个指定长度的数组 NSMutableArray *arr=[NSMutableArray arrayWithCapacity:3]; //扩展 [arr addObject:@"one"]; [arr addObject:@"two"]; [arr addObject:@"three"]; [arr addObject:@"ios"]; NSLog(@"%@",arr); //删除 [arr removeObject:@"three"]; NSLog(@"%@",arr); } void Dictionary() { //NSDictionary快速创建 NSDictionary *dict=@{@"zy":@"zhang yu",@"hz":@"he zhi"}; NSLog(@"%@",dict); //长度 NSLog(@"%lu",[dict count]); //访问key和value NSLog(@"%@",[dict allKeys]); NSLog(@"%@",[dict allValues]); //通过键值获取value值 NSLog(@"%@",[dict valueForKey:@"hz"]); //遍历 for (NSString *key in dict) { NSLog(@"key=%@ value=%@",key,[dict valueForKey:key]); } [dict enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) { NSLog(@"%@---->%@",key,obj); }]; } int main(int argc, const char * argv[]) { @autoreleasepool { //创建一个空可变字典 NSMutableDictionary *mdic= [NSMutableDictionary dictionary]; //添加键值对 [mdic setValue:@"zhangsan" forKey:@"zs"]; [mdic setValue:@"lisi" forKey:@"ls"]; [mdic setValue:@"wangwu" forKey:@"ww"]; [mdic setValue:@"zhaosi" forKey:@"zs"]; NSLog(@"%@",mdic); //删除键值对 [mdic removeObjectForKey:@"zs"]; NSLog(@"%@",mdic); //修改 [mdic setObject:@"zhangsanfeng" forKey:@"zs"]; NSLog(@"%@",mdic); [mdic setValue:@"zhangsss" forKey:@"zs"]; NSLog(@"%@",mdic); //查找 NSArray *arr=[mdic allKeys]; if([arr containsObject:@"zs"]) { NSLog(@"zs=%@",[mdic valueForKey:@"zs"]); } } return 0; }
// main.m // NSNumber的使用 #import <Foundation/Foundation.h> void Number() { //NSNumber是OC中处理数值类型的一个类 //好处:把数值类型转换为对象类型存在数值或字典中 int a=1; float f=9.8f; double d=51.99; NSNumber *n1=[NSNumber numberWithInt:a]; NSNumber *n2=[NSNumber numberWithFloat:f]; NSNumber *n3=[NSNumber numberWithDouble:d]; NSMutableArray *arr=[NSMutableArray array]; [arr addObject:n1]; [arr addObject:n2]; [arr addObject:n3]; [arr[0] intValue]; [arr[1] floatValue]; [arr[2] doubleValue]; float ff=[arr[0] intValue]+[arr[1] floatValue]; NSLog(@"%.2f",ff); //直接包装 //int c =100; //[arr addObject:@(c)]; int c=100; [arr addObject:@(c)]; NSLog(@"%@",arr); [arr addObject:@99]; NSLog(@"%@",arr); [arr addObject:@"89"]; NSLog(@"%@",arr); } int main(int argc, const char * argv[]) { @autoreleasepool { NSMutableDictionary *mdict=[NSMutableDictionary dictionaryWithContentsOfFile:@"/Volumes/ZHANG YU/sophister/Two/Mac OS/P1/NSNumber的使用/Student.plist"]; NSLog(@"mdict=%@",mdict); NSLog(@"-----------"); NSMutableArray *marr=[NSMutableArray arrayWithContentsOfFile:@"/Volumes/ZHANG YU/sophister/Two/Mac OS/P1/NSNumber的使用/teacher.plist"]; NSLog(@"marr=%@",marr); } return 0; }
// // ViewController.m // 01-UIButton的frame、bounds、transfrom属性 // // Created by xxcg on 16/5/23. // Copyright © 2016年 xxcg. All rights reserved. // #import "ViewController.h" @interface ViewController () @property (weak, nonatomic) IBOutlet UIButton *btnIcon; - (IBAction)move:(UIButton*)sender; - (IBAction)movewithcenter:(UIButton *)sender; - (IBAction)scale:(UIButton *)sender; - (IBAction)movewithtranform:(UIButton *)sender; - (IBAction)rotate:(UIButton *)sender; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } - (IBAction)move:(UIButton*)sender { //1.获取移动控件的位置 CGRect orginframe= self.btnIcon.frame; //2.修改orginframe switch (sender.tag) { case 1: orginframe.origin.y-=10; break; case 2: orginframe.origin.x+=10; break; case 3: orginframe.origin.y+=10; break; case 4: orginframe.origin.x-=10; break; case 5: orginframe.size.height+=10; orginframe.size.width+=10; break; case 6: orginframe.size.height-=10; orginframe.size.width-=10; break; } //3.重新赋值 self.btnIcon.frame=orginframe; } - (IBAction)movewithcenter:(UIButton *)sender { //1.获取原始的center CGPoint orginpoint= self.btnIcon.center; //2.修改 orginpoint.y-=10; //3.重新赋值 self.btnIcon.center=orginpoint; } - (IBAction)scale:(UIButton *)sender { //1.获取bounds CGRect orginbounds= self.btnIcon.bounds; // NSLog(@"%@",NSStringFromCGRect(orginbounds)); // // CGRect orginframe=self.btnIcon.frame; // NSLog(@"%@",NSStringFromCGRect(orginframe)); //2.修改 orginbounds.size.height+=10; orginbounds.size.width+=10; //3.重新赋值 self.btnIcon.bounds=orginbounds; } - (IBAction)movewithtranform:(UIButton *)sender { // { // //1.获取原始的transform // CGAffineTransform orgintransfrom= self.btnIcon.transform; // NSLog(@"%@",NSStringFromCGAffineTransform(orgintransfrom)); // // //2.修改 // orgintransfrom.tx-=10; // // //3.赋值 // self.btnIcon.transform=orgintransfrom; // } // self.btnIcon.transform=CGAffineTransformMakeTranslation(0, -10); CGAffineTransform orgintransfrom= self.btnIcon.transform; switch (sender.tag) { case 100: self.btnIcon.transform=CGAffineTransformTranslate(orgintransfrom, 0, -10); break; case 101: self.btnIcon.transform=CGAffineTransformTranslate(orgintransfrom, 10, 0); break; case 102: self.btnIcon.transform=CGAffineTransformTranslate(orgintransfrom, 0, 10); break; case 103: self.btnIcon.transform=CGAffineTransformTranslate(orgintransfrom, -10, 0); break; } } - (IBAction)rotate:(UIButton *)sender { CGAffineTransform orgintranform=self.btnIcon.transform; self.btnIcon.transform=CGAffineTransformRotate(orgintranform, -M_PI_4 ); } @end