黑马程序员-----OC学习之类与对象
2015-07-30 19:24
726 查看
1.类的概念:
一类事物共同特征和行为的抽象;
例如:车类:Car
共同的特征:颜色 速度 轮子;
共同的行为:跑 停止;
2.对象的概念:
类的具体的个体;
例如:东风21d(车类的对象) BYD(车的对象) 解放打开车(车类的对象);
3.类的构成:
1.类名;例如人;
2.属性;例如身高 体重 姓名;
3.方法(行为);跑步 走路 打篮球;
4.类的定义分为类的声明和实现:
5.OC中对象的创建:
Car *p = [Car new];表示用Car类实例化了一个实例对象,对象的名称是p;
[Car new]做了3件事情:
1.向计算机申请内存空间;
2.给类中的每一个成员初始化值;
3.返回新申请的空间的首地址;
6.实例:创建一个类和一个对象并且用对象访问实例变量值(属性)
7.无参方法(或者称行为)的声明的实现及调用:前面是加号表示类方法;减号表示对象方法;
8.有参方法的声明和实现:
定义的形式:
-(返回值类型)方法名1:(参数类型1)参数名1 and:(参数类型2)参数名2;
例如定义一个求和的方法:
//方法的声明
-(int)sum:(int)x and:(int)y;
//方法的实现将它拷贝一份把分号改为大括号:
-(int)sum:(int)x and:(int)y{
}
以上那个有参方法的使用注意:
1.方法的类型 :对象方法;
2.方法的返回值类型 :int类型;
3.方法的参数是:x y;
4.参数的类型:第一个是int 第二个是int;
5.方法名是:sum:and:(注意冒号也是方法名的一部分)
9.实例讲解:
人吃东西会增加体重,没吃一样东西体重增加0.6,人散步会减少体重 没散步100步减少体重0.2 请用面向对象的方法来实现;
一类事物共同特征和行为的抽象;
例如:车类:Car
共同的特征:颜色 速度 轮子;
共同的行为:跑 停止;
2.对象的概念:
类的具体的个体;
例如:东风21d(车类的对象) BYD(车的对象) 解放打开车(车类的对象);
3.类的构成:
1.类名;例如人;
2.属性;例如身高 体重 姓名;
3.方法(行为);跑步 走路 打篮球;
4.类的定义分为类的声明和实现:
#import #pragma mark子弹类的声明 @interface Bullet:NSObject { @public; int _bulletCount ; NSString *_size; } @end #pragma mark - #pragma mark子弹类的实现 @implementation Bullet @end #pragma mark 枪的定义 @interface Gun: NSObject { @public; NSString *size; } -(void)shoot:(Bullet *)bullet; @end #pragma mark - #pragma mark 枪的实现 @implementation Gun -(void)shoot:(Bullet *)bullet{ if (bullet->_bulletCount > 0) { bullet->_bulletCount--; NSLog(@"枪正在突突突。。。。还剩%d发子弹",bullet->_bulletCount); }else NSLog(@"请换子弹"); } @end #pragma mark - #pragma mark士兵类的定义 @interface Soldier:NSObject { @public; NSString *_name; int life; int level; } -(void)fireByGun:(Gun *)gun andBullet :(Bullet *)bullet; @end #pragma mark - #pragma mark士兵类的实现 @implementation Soldier -(void)fireByGun:(Gun *)gun andBullet :(Bullet *)bullet { [gun shoot :bullet]; } @end int main(){ Soldier *s =[Soldier new]; s->_name = @"乔峰"; s->life = 98; s->level = 2; Gun *gun = [Gun new]; gun->size =@"小米加步枪"; Bullet *myBullet = [Bullet new]; myBullet->_size =@"5mm口径"; myBullet->_bulletCount = 3; [s fireByGun:gun andBullet:myBullet]; return 0; }
5.OC中对象的创建:
Car *p = [Car new];表示用Car类实例化了一个实例对象,对象的名称是p;
[Car new]做了3件事情:
1.向计算机申请内存空间;
2.给类中的每一个成员初始化值;
3.返回新申请的空间的首地址;
6.实例:创建一个类和一个对象并且用对象访问实例变量值(属性)
//1.在上述车类的声明部分的大括号中加入@public表示公用 //2.创建一Car类型的对象car1; Car *car1 = [Car new]; //3.用指针间接访问实例变量值或者称属性值; car1->lunzi = 3 ;//表示给轮子设置个数为3; car1->speed = 150; car1->color = @“蓝色”; //4.查看车的信息; NSLog(@“轮子:%d,速度:%d,颜色:%@”,car1->lunzi,car1->speed, car1->color);
7.无参方法(或者称行为)的声明的实现及调用:前面是加号表示类方法;减号表示对象方法;
#import #pragma mark子弹类的声明 @interface Bullet:NSObject { @public; int _bulletCount ; NSString *_size; } @end #pragma mark - #pragma mark子弹类的实现 @implementation Bullet @end #pragma mark 枪的定义 @interface Gun: NSObject { @public; NSString *size; } -(void)shoot:(Bullet *)bullet; @end #pragma mark - #pragma mark 枪的实现 @implementation Gun -(void)shoot:(Bullet *)bullet{ if (bullet->_bulletCount > 0) { bullet->_bulletCount--; NSLog(@"枪正在突突突。。。。还剩%d发子弹",bullet->_bulletCount); }else NSLog(@"请换子弹"); } @end #pragma mark - #pragma mark士兵类的定义 @interface Soldier:NSObject { @public; NSString *_name; int life; int level; } -(void)fireByGun:(Gun *)gun andBullet :(Bullet *)bullet; @end #pragma mark - #pragma mark士兵类的实现 @implementation Soldier -(void)fireByGun:(Gun *)gun andBullet :(Bullet *)bullet { [gun shoot :bullet]; } @end int main(){ Soldier *s =[Soldier new]; s->_name = @"乔峰"; s->life = 98; s->level = 2; Gun *gun = [Gun new]; gun->size =@"小米加步枪"; Bullet *myBullet = [Bullet new]; myBullet->_size =@"5mm口径"; myBullet->_bulletCount = 3; [s fireByGun:gun andBullet:myBullet]; return 0; }
8.有参方法的声明和实现:
定义的形式:
-(返回值类型)方法名1:(参数类型1)参数名1 and:(参数类型2)参数名2;
例如定义一个求和的方法:
//方法的声明
-(int)sum:(int)x and:(int)y;
//方法的实现将它拷贝一份把分号改为大括号:
-(int)sum:(int)x and:(int)y{
}
以上那个有参方法的使用注意:
1.方法的类型 :对象方法;
2.方法的返回值类型 :int类型;
3.方法的参数是:x y;
4.参数的类型:第一个是int 第二个是int;
5.方法名是:sum:and:(注意冒号也是方法名的一部分)
#import #pragma mark子弹类的声明 @interface Bullet:NSObject { @public; int _bulletCount ; NSString *_size; } @end #pragma mark - #pragma mark子弹类的实现 @implementation Bullet @end #pragma mark 枪的定义 @interface Gun: NSObject { @public; NSString *size; } -(void)shoot:(Bullet *)bullet; @end #pragma mark - #pragma mark 枪的实现 @implementation Gun -(void)shoot:(Bullet *)bullet{ if (bullet->_bulletCount > 0) { bullet->_bulletCount--; NSLog(@"枪正在突突突。。。。还剩%d发子弹",bullet->_bulletCount); }else NSLog(@"请换子弹"); } @end #pragma mark - #pragma mark士兵类的定义 @interface Soldier:NSObject { @public; NSString *_name; int life; int level; } -(void)fireByGun:(Gun *)gun andBullet :(Bullet *)bullet; @end #pragma mark - #pragma mark士兵类的实现 @implementation Soldier -(void)fireByGun:(Gun *)gun andBullet :(Bullet *)bullet { [gun shoot :bullet]; } @end int main(){ Soldier *s =[Soldier new]; s->_name = @"乔峰"; s->life = 98; s->level = 2; Gun *gun = [Gun new]; gun->size =@"小米加步枪"; Bullet *myBullet = [Bullet new]; myBullet->_size =@"5mm口径"; myBullet->_bulletCount = 3; [s fireByGun:gun andBullet:myBullet]; return 0; }
9.实例讲解:
人吃东西会增加体重,没吃一样东西体重增加0.6,人散步会减少体重 没散步100步减少体重0.2 请用面向对象的方法来实现;
#import #pragma mark子弹类的声明 @interface Bullet:NSObject { @public; int _bulletCount ; NSString *_size; } @end #pragma mark - #pragma mark子 4000 弹类的实现 @implementation Bullet @end #pragma mark 枪的定义 @interface Gun: NSObject { @public; NSString *size; } -(void)shoot:(Bullet *)bullet; @end #pragma mark - #pragma mark 枪的实现 @implementation Gun -(void)shoot:(Bullet *)bullet{ if (bullet->_bulletCount > 0) { bullet->_bulletCount--; NSLog(@"枪正在突突突。。。。还剩%d发子弹",bullet->_bulletCount); }else NSLog(@"请换子弹"); } @end #pragma mark - #pragma mark士兵类的定义 @interface Soldier:NSObject { @public; NSString *_name; int life; int level; } -(void)fireByGun:(Gun *)gun andBullet :(Bullet *)bullet; @end #pragma mark - #pragma mark士兵类的实现 @implementation Soldier -(void)fireByGun:(Gun *)gun andBullet :(Bullet *)bullet { [gun shoot :bullet]; } @end int main(){ Soldier *s =[Soldier new]; s->_name = @"乔峰"; s->life = 98; s->level = 2; Gun *gun = [Gun new]; gun->size =@"小米加步枪"; Bullet *myBullet = [Bullet new]; myBullet->_size =@"5mm口径"; myBullet->_bulletCount = 3; [s fireByGun:gun andBullet:myBullet]; return 0; }
相关文章推荐
- 教你如何迅速秒杀掉:99%的海量数据处理面试题
- 程序员加入新团队的那些坑
- 黑马程序员------oc foundation结构框架
- 面试题:在字符串中找到第一个不相同的,并输出
- 面试题:空格替换字符
- 面试题—— 从尾到头打印链表
- 【剑指Offer面试题】 九度OJ1519:合并两个排序的链表
- 程序员的恋情
- 黑马程序员--应用:用指针变量作为函数的参数,求出10个数的最大值
- 程序员面试宝典知识点笔记
- 黑马程序员 日记(十)
- 黑马程序员 日记(九)
- 黑马程序员 日记(八)
- 单链表面试题
- 黑马程序员-面试题(一)-交通灯管理系统
- 面试中发现的不足点
- 面试官最想听哪些话?
- ios面试总结
- 程序员的出路在哪里
- 【剑指Offer面试题】 九度OJ1518:反转链表