物件作為方法的引數傳遞
阿新 • • 發佈:2019-02-11
/*
士兵
事物名稱: 士兵(Soldier)
屬性:姓名(name), 身高(height), 體重(weight)
行為:打槍(fire), 打電話(callPhone)
槍
事物名稱:槍(Gun)
屬性:彈夾(clip) , 型號(model)
行為:上彈夾(addClip)
彈夾
事物名稱: 彈夾(Clip)
屬性:子彈(Bullet)
行為:上子彈(addBullet)
*/
#pragma mark - 槍
@interface Gun : NSObject
{
@public
int _bullet; // 子彈
}
- (void )shoot;
@end
@implementation Gun
- (void)shoot
{
if (_bullet > 0) {
_bullet--;
NSLog(@"子彈還剩餘%d個", _bullet);
}else
{
NSLog(@"槍裡沒有子彈");
}
}
@end
#pragma mark - 士兵
@interface Solier : NSObject
{
@public
NSString *_name;
double _height;
double _weight;
}
- (void)fire:(Gun *)gun;
@end
@implementation Solier
- (void)fire:(Gun *)gun
{
[gun shoot];
}
@end
int main(int argc, const char * argv[]) {
Solier *solier = [Solier new];
solier->_name = @"大兵";
solier->_height = 1.88;
solier->_weight = 130.33;
Gun *gun = [Gun new];
gun->_bullet = 10 ;
[solier fire:gun];
[solier fire:gun];
[solier fire:gun];
[solier fire:gun];
return 0;
}