oc12--对象作为参数
2024-10-01 07:26:09
// main.m
// 对象作为方法的参数传递 #import <Foundation/Foundation.h>
/*
士兵
事物名称: 士兵(Soldier)
属性:姓名(name), 身高(height), 体重(weight)
行为:打枪(fire), 打电话(callPhone) 枪
事物名称:枪(Gun)
属性:弹夹(clip) , 型号(model)
行为:上弹夹(addClip) 弹夹
事物名称: 弹夹(Clip)
属性:子弹(Bullet)
行为:上子弹(addBullet)
*/ @interface Gun : NSObject
{
@public
int _bullet; // 子弹
}
// 射击
- (void)shoot;
@end
@implementation Gun
- (void)shoot
{
// 判断是否有子弹
if (_bullet > ) { _bullet--;
NSLog(@"打了一枪 %i", _bullet);
}else
{
NSLog(@"没有子弹了, 请换弹夹");
}
}
@end
@interface Soldier : NSObject
{
@public
NSString *_name;
double _height;
double _weight;
}
//- (void)fire;
- (void)fire:(Gun *)gun;
@end
@implementation Soldier
/*
- (void)fire
{
NSLog(@"打了一枪");
}
*/
// Gun * g = gp
- (void)fire:(Gun *)g
{
// NSLog(@"打了一枪");
[g shoot];
}
@end
int main(int argc, const char * argv[]) {
// 1.创建士兵
Soldier *sp =[Soldier new];
sp->_name = @"屎太浓";
sp->_height = 1.88;
sp->_weight = 100.0;
// 2.创建一把枪
Gun *gp = [Gun new];
gp->_bullet = ;
// 2.让士兵开枪
// [sp fire];
// 让对象作为方法的参数传递
[sp fire:gp]; // 地址
[sp fire:gp];
[sp fire:gp];
[sp fire:gp];
[sp fire:gp];
[sp fire:gp];
return ;
}
最新文章
- Xamarin的不归路-生成安卓错误2
- 反射实现 AOP 动态代理模式(Spring AOP 的实现 原理)
- 32-bit Assembly on x86_64 Linux (Use Nasm and ld&;gcc)
- 饿了么 openapi demo
- Ajax-(get/post/jQuery方式请求)
- CentOS 更新yum源
- General Purpose Hash Function Algorithms
- 【UVA1633】禁止的回文串(状压DP)
- bootstrap之Flick
- Android Studio,使用外部模拟器作为生成app调试的模拟器
- 收集一些dos网络配置命令,从新获取ip刷新dns
- CentOS7.x搭建时间同步服务器
- 微信小程序实战--集阅读与电影于一体的小程序项目(一)
- python 高阶函数之 map
- JavaScript面试技巧(一):基础知识
- Linux上 发布.Net Core
- 安装zabbix3.4 centos7
- Gson转换json数据为对象
- JavaScript 如何从引用类型(Array 、 Object)创建一个新的对象
- 解析ES6 Promise