一包蓝、概念
二泛烙、代碼
#import <Foundation/Foundation.h>
#pragma mark 類
/*
士兵
事物名稱 : 士兵 (Soldier)
屬性 : 姓名(name) , 身高(height), 體重(weight)
行為 : 打槍(fire),打電話(callPhone)
槍
事物名稱 : 槍(Gun)
屬性 : 彈夾(clip),型號(model)
行為 : 上彈夾(addClip)
彈夾
事物名稱 : 彈夾(Clip)
屬性 : 子彈(Bullet)
行為 : 上子彈(addBullet)
*/
#pragma 2.槍
@interface Gun : NSObject
{
@public
int _bullet; // 子彈
}
// 射擊
- (void)shoot;
@end
@implementation Gun
- (void)shoot
{
if (_bullet > 0)
{
_bullet--;
NSLog(@"打了一槍 %i",_bullet);
}
else
{
NSLog(@"沒有子彈了,請換彈夾");
}
}
@end
#pragma 1.士兵
@interface Soldier : NSObject
{
@public
NSString *_name;
double _height;
double _weight;
}
//- (void)fire;
- (void)fire:(Gun *)gun;
@end
@implementation Soldier
/*
- (void)fire
{
NSLog(@"打了一槍");
}
*/
// Gun *gun = gp
- (void)fire:(Gun *)g
{
// NSLog(@"打了一槍");
[g shoot];
}
@end
#pragma 3.彈夾
#pragma mark main函數
int main(int argc, const char * argv[])
{
// 1.創(chuàng)建士兵
Soldier *s = [Soldier new];
s->_name = @"lyh";
s->_height = 1.71;
s->_weight = 65.0;
// 2.創(chuàng)建一把槍
Gun *gp = [Gun new];
gp->_bullet = 10;
// 2.讓士兵開槍
// [s fire];
// 讓對象作為函數的參數傳遞
[s fire:gp]; // 地址
[s fire:gp];
[s fire:gp];
[s fire:gp];
[s fire:gp];
[s fire:gp];
return 0;
}
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者