本小節(jié)知識點:
- 【掌握】對象作為方法的參數(shù)
- 【掌握】對象作為方法的返回值
1.對象作為方法的參數(shù)
- 對象作為方法參數(shù)傳遞是地址傳遞,因為對象是一個指針變量
- 在方法內(nèi)部,可以通過對象形參,訪問該對象的成員變量(如果該對象的該成員變量的訪問權限是public的)
- 在方法內(nèi)部,可以通過對象形參搏讶,調(diào)用該對象上的方法(給這個對象發(fā)送消息)
int main(int argc, const char * argv[])
{
// 1.創(chuàng)建士兵對象
Soldier *s1 = [Soldier new];
s1->_name = @"jack";
s1->_life = 10;
s1->_level = kSoldierLevel1;
// 2.創(chuàng)建槍對象
Gun *gun = [Gun new];
gun->_bulletCount = 100;
// 3.射擊
[s1 fireByGun:gun];
}
@implementation Soldier
- (void)fireByGun:(Gun *)gun
{
[gun shoot];
}
@end
2.對象作為方法的返回值
- 對象可以作為方法的返回值;
- 對象返回值的實質(zhì)是返回指向該對象的指針霍殴,該對象是存儲在堆內(nèi)存中的媒惕。
- 由于堆內(nèi)存是由程序員管理的,所以它不會因為函數(shù)結束而被銷毀
@implementation Shop
- (Gun *)buyGun
{
Gun *gun = [Gun new];
gun->_bulletCount = 100;
return gun;
}
@end
最后編輯于 :
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者