码迷,mamicode.com
首页 > 其他好文 > 详细

对象和方法之间的关系

时间:2017-03-12 14:48:27      阅读:106      评论:0      收藏:0      [点我收藏+]

标签:程序   []   nbsp   结束   程序员   权限   参数传递   ret   ons   

1.对象作为方法的参数

  • 对象作为方法参数传递是地址传递,因为对象是一个指针变量
  • 在方法内部,可以通过对象形参,访问该对象的成员变量(如果该对象的该成员变量的访问权限是public的)
  • 在方法内部,可以通过对象形参,调用该对象上的方法(给这个对象发送消息)
int main(int argc, const char * argv[])
{
    //    1.创建士兵对象
    Soldier *s1 = [Soldier new];
    s1->_name = @"jack";
    s1->_life = 10;
    s1->_level = kSoldierLevel1;

    //    2.创建枪对象
    Gun *gun = [Gun new];
    gun->_bulletCount = 100;

    //    3.射击
    [s1 fireByGun:gun];
}

@implementation Soldier

- (void)fireByGun:(Gun *)gun
{
    [gun shoot];
}

@end

2.对象作为方法的返回值

  • 对象可以作为方法的返回值;
  • 对象返回值的实质是返回指向该对象的指针,该对象是存储在堆内存中的。
  • 由于堆内存是由程序员管理的,所以它不会因为函数结束而被销毁
@implementation Shop

- (Gun *)buyGun
{
    Gun *gun = [Gun new];
    gun->_bulletCount = 100;
    return gun;
}

@end

 

对象和方法之间的关系

标签:程序   []   nbsp   结束   程序员   权限   参数传递   ret   ons   

原文地址:http://www.cnblogs.com/xufengyuan/p/6537518.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!