//  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 ;
}

oc12--对象作为参数的更多相关文章

  1. [BS-01] 根据字符串对象的参数自动计算用来显示该字符串的UI控件的宽和高

    根据字符串对象的参数自动计算用来显示该字符串的UI控件的宽和高 1.  影响昵称Label的高和宽的因素: 字体和字号大小.文字多少.高度取决于是否固定了宽度(是否限制了最大的宽度和高度) 2. 使用 ...

  2. STL算法设计理念 - 函数对象和函数对象当参数和返回值

    函数对象: 重载函数调用操作符的类,其对象常称为函数对象(function object),即它们是行为类似函数的对象.一个类对象,表现出一个函数的特征,就是通过"对象名+(参数列表)&qu ...

  3. Vue-Router路由 Vue-CLI脚手架和模块化开发 之 使用路由对象获取参数

    使用路由对象$route获取参数: 1.params: 参数获取:使用$route.params获取参数: 参数传递: URL传参:例 <route-linke to : "/food ...

  4. Android开发 AIDL使用自定义对象作参数或返回值

    http://www.pocketdigi.com/20121129/952.html 默认,AIDL支持对象作参数,但需要该对象实现Parcelable接口,且aidl文件应该是该类在同一包下,需要 ...

  5. 论DATASNAP远程方法支持自定义对象作参数

    论DATASNAP远程方法支持自定义对象作参数 DATASNAP远程方法已经可以支持自定义对象作参数,这是非常方便的功能. 1)自定义对象 type TMyInfo = class(TObject) ...

  6. SpringMVC接收复杂集合对象(参数)代码示例

    原文: https://www.jb51.net/article/128233.htm SpringMVC接收复杂集合对象(参数)代码示例 更新时间:2017年11月15日 09:18:15   作者 ...

  7. java基础之对象当做参数传进方法的堆栈内存解析

    值类型当做参数传进方法: 引用类型对象当做参数传进方法: String字符串当做参数传进方法:

  8. Request对象获得参数方法:query和body方法

    express框架Request对象获得参数方法:query和body方法 req.query 该属性用法很简单,直接获取地址栏传递的参数:例如: //引入依赖 var express = requi ...

  9. C++对象内存布局,this指针,对象作为参数,作为返回值

    class TestClass { public: void setNum(int num) { m_num1 = num; } int getNum() { return m_num1; } pri ...

  10. spring cloud关于feign client的调用对象列表参数、设置header参数、多环境动态参数试配

    spring cloud关于feign client的调用 1.有些场景接口参数需要传对象列表参数 2.有些场景接口设置设置权限等约定header参数 3.有些场景虽然用的是feign调用,但并不会走 ...

随机推荐

  1. 5.13Junit单元测试-反射-注解

    一.Junit单元测试 * 测试分类: 1.黑盒测试:不需要写代码,给输入值,看程序是否能够输出期望的值 2.白盒测试:需要些代码的.关注程序具体的执行流程 Junit使用:白盒测试 步骤: 1.定义 ...

  2. Laravel5.1 学习笔记1, 目录结构和命名空间(待修)

    自从用 Laravel4做了个小网站,使用了数据库ORM Eloquent, 就放下了一段时间,想不到这个与Asp.net MVC 有着异曲同工之妙的框架已经出了下个版本,而且还有不小的改动,因此不得 ...

  3. 【Linux】Ubuntu输入法不能开机自启的解决方法

    操作系统:Ubuntu Kylin 16.10 自从操作系统安装了搜狗输入法以后,每次重启电脑都需要手动启动Fcitx,才能启动搜狗输入法.下面给大家介绍输入法开机自启的解决方法: 操作系统的用户家目 ...

  4. WEB笔记-让HTML5向下兼容的策略

    //给新标签增加块级元素声明 article,aside,dialog,figure,fotter,header,legend,nav,section{display:block} //添加css兹瓷 ...

  5. Linux rsync配置用于服务器之间传输大量的数据

    Linux的rsync 配置,用于服务器之间远程传大量的数据   [教程主题]:rsync [课程录制]: 创E [主要内容] [1] rsync介绍 Rsync(Remote Synchronize ...

  6. JAVA软件工程师应该具备的技能有哪些?

    前言:有朋友问我:学历和能力哪个重要?我个人觉得能力大于学历,没有能力哪来的学历,学历只是证明能力的一方面.为此在能力方面畅谈java软件工程师必备的能力.作为一名合格的java工程师,不仅需要学历, ...

  7. POJ_2594_最小路径覆盖

    Treasure Exploration Time Limit: 6000MS   Memory Limit: 65536K Total Submissions: 8085   Accepted: 3 ...

  8. java rsa加密解密

  9. 将 GNOME 默认的界面切换动画功能关闭

    gsettings set org.gnome.desktop.interface enable-animations false

  10. nyoj24-素数 距离问题

    素数距离问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:2 描述 现在给出你一些数,要求你写出一个程序,输出这些整数相邻最近的素数,并输出其相距长度.如果左右有等距离长度素数 ...