国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

OC基礎--對象做參數在方法間傳遞

2019-11-14 18:26:40
字體:
來源:轉載
供稿:網友

劇情描述:

    美國大兵抗把漢陽造 拿著5個彈夾(每個彈夾5發子彈) 帶著弟兄們干架 子彈打完了就求救 

類:

    士兵:

        屬性: 姓名(_name) 身高(_height) 體重(_weight)

        行為: 開槍(fire) 求救(callForHelp) 

    槍:

        屬性: 彈夾(_clip) 彈夾數量(_clipNum) 品牌(_model)

        行為: 換彈夾(changeClip) 發射子彈(shot) 

    彈夾:

        屬性: 子彈數量(_bulletCount)

        行為: 裝子彈(addBullet)

方法說明:

    士兵開槍方法(fire) 

        參數: 槍 和 彈夾

        返回值: 剩余彈夾數量

        邏輯: 將彈夾作為參數  調用槍的發射子彈方法(shot) 獲得剩余彈夾數   

            如果剩余彈夾數 == 0 則調用自己的求救方法(callForHelp) 

    槍發射子彈方法(shot)

        參數: 彈夾

        返回值: 彈夾數

        邏輯: 如果彈夾里的子彈==0 則調用自己的換彈夾的方法獲得新彈夾  否則彈夾子彈減1 

    槍換彈夾方法(changeClip)

        參數: 彈夾

        返回值: 彈夾數量

        邏輯: 將彈夾數量-1(因為已經用了一個了) 如果還有彈夾 則調用彈夾的裝子彈方法 否則提示子彈打光了 

    彈夾裝子彈方法(addBullet)

        參數: 無

        返回值: 彈夾對象

        邏輯: 如果彈夾內子彈數量==0 則裝5發子彈  然后將彈夾返回 

對象去哪了:

    士兵開槍接收了槍和彈夾對象  開槍方法中將彈夾對象傳入槍的發射子彈方法  發射子彈方法中又將彈夾對象傳入換彈夾方法  換彈夾方法中調用這個彈夾對象的加子彈方法  獲得一個彈夾對象的返回值  返回的這個彈夾對象 嘿嘿  不好意思 沒用到

 

彈夾類聲明文件Clip.h:

/* 彈夾 事物名稱: 彈夾(Clip) 屬性:子彈數量(_bulletCount) 行為:裝子彈(addBullet) */#import <Foundation/Foundation.h>@interface Clip : NSObject{    @public    // 子彈數量    int _bulletCount;}//給彈夾裝子彈- (Clip *) addBullet;@end 

彈夾類實現文件Clip.m:

#import "Clip.h" @implementation Clip // 給彈夾裝子彈  假設裝一次 彈夾就少一個(代表換彈夾)  返回彈夾對象其實沒被用到- (Clip *)addBullet{    if(_bulletCount == 0){        _bulletCount = 5;        NSLog(@"clip  新兵蛋子  子彈裝好了  你去沖吧  子彈數量:%i", self->_bulletCount);    }    return self;}@end

槍類聲明文件Gun.h:

/* 槍 事物名稱:槍(Gun) 屬性:大彈夾(_bigClip) , 彈夾數量(_clipNum),  型號(model) 行為:換彈夾(changeClip) 射擊(shot) */#import <Foundation/Foundation.h>#import "Clip.h" @interface Gun : NSObject{    @public    // 彈夾對象    Clip* _bigClip;    // 彈夾數量    int _clipNum;    // 槍的牌子    NSString* _model;}// 換彈夾方法- (int) changeClip:(Clip *) newClip;// 發射子彈方法- (int) shot:(Clip *) clip;@end

槍類實現文件Gun.m:

#import "Gun.h" @implementation Gun// 換彈夾方法 接收彈夾對象  返回彈夾數量- (int)changeClip:(Clip *)clip{    // 需要換彈夾說明已經用了一個了  彈夾數量 -1    _clipNum -= 1;        // 如果還有彈夾 則調用彈夾加子彈的方法    if (_clipNum > 0) {        _bigClip = [clip addBullet];        NSLog(@"gun  裝彈完畢 子彈數量:%i 繼續干", clip->_bulletCount);    }    else{        NSLog(@"gun 子彈打光了");    }    return _clipNum;} // 槍發射子彈方法  接收彈夾對象  返回彈夾數量- (int)shot:(Clip *)clip{    // 變量存儲彈夾數量  (可以不用這個變量  直接使用屬性成員)    int clipNum = _clipNum;       // 如果彈夾內沒子彈了  則調用換彈夾方法    if (clip->_bulletCount == 0) {        NSLog(@"gun  友情提示: 大哥 你沒子彈了  俺去給你裝彈  你先拼會刺刀吧  裝好了再通知你  好嗎  就這么愉快的決定吧");        clipNum = [self changeClip:clip];    }    // 否則 子彈 -1    else{        NSLog(@"gun  子彈 減 1");        clip->_bulletCount -= 1;    }    return clipNum;}@end

士兵類聲明文件Soldier.h:

/* 士兵 事物名稱: 士兵(Soldier) 屬性:姓名(name), 身高(height), 體重(weight) 行為:打槍(fire), 打電話(callPhone) */#import <Foundation/Foundation.h>#import "Gun.h" @interface Soldier : NSObject{    @public    NSString* _name;    double _height;    double _weight;}- (int) fireWithGun:(Gun*) gun andClip:(Clip *) clip;- (void) callForHelp;@end

士兵類實現文件Soldier.m:

#import "Soldier.h" @implementation Soldier // 士兵開槍  接收槍和彈夾兩個對象  返回彈夾剩余數- (int)fireWithGun:(Gun *)gun andClip:(Clip *)clip{    NSLog(@"soldier  兒子們 孫子們 王八羔子們  都跟我一起上  沖啊  殺雞雞~~~");       // 將彈夾對象傳入 調用槍射擊的方法    int remainClipNum = [gun shot: clip];        // 如果沒彈夾了  調用求救方法    if(0 == remainClipNum){        [self callForHelp];    }    return remainClipNum;} - (void)callForHelp{    NSLog(@"soldier  拐洞拐  我沒子彈了 還中彈了  中了好多呢 你是不知道  嚇死寶寶了  快來9我吧 等   你哦 么么噠");}@end

Main.m:

#import <Foundation/Foundation.h>#import "Soldier.h" int main(int argc, const char * argv[]) {    // 士兵對象    Soldier * soldier = [Soldier new];    soldier->_height = 2.12;    soldier->_weight = 80;    soldier->_name = @"美國大兵";    
// 彈夾對象 Clip * clip = [Clip new]; clip->_bulletCount = 5; // 槍對象 Gun * gun = [Gun new]; gun->_bigClip = clip; gun->_model = @"漢陽造"; gun->_clipNum = 5; // 士兵開始干架 // 保存剩余彈夾數量 如果數量==0 則跳出循環 int remainClip = 0; while (1) { // 調用士兵開槍方法 獲得剩余彈夾數 remainClip = [soldier fireWithGun:gun andClip:clip]; if (!remainClip) { break;
} }
return 0;}

輸出結果:

/*輸出結果:    應該是循環五次后提示子彈打光了 然后求救  每次循環中發射五顆子彈      2015-08-27 23:18:37.182 對象做參數傳遞[892:34503] soldier  兒子們 孫子們 王八羔子們  都跟我一起上  沖啊  殺雞雞~~~  2015-08-27 23:18:37.184 對象做參數傳遞[892:34503] gun  子彈 減 1  2015-08-27 23:18:37.184 對象做參數傳遞[892:34503] soldier  兒子們 孫子們 王八羔子們  都跟我一起上  沖啊  殺雞雞~~~  2015-08-27 23:18:37.184 對象做參數傳遞[892:34503] gun  子彈 減 1  2015-08-27 23:18:37.184 對象做參數傳遞[892:34503] soldier  兒子們 孫子們 王八羔子們  都跟我一起上  沖啊  殺雞雞~~~  2015-08-27 23:18:37.185 對象做參數傳遞[892:34503] gun  子彈 減 1  2015-08-27 23:18:37.185 對象做參數傳遞[892:34503] soldier  兒子們 孫子們 王八羔子們  都跟我一起上  沖啊  殺雞雞~~~  2015-08-27 23:18:37.185 對象做參數傳遞[892:34503] gun  子彈 減 1  2015-08-27 23:18:37.185 對象做參數傳遞[892:34503] soldier  兒子們 孫子們 王八羔子們  都跟我一起上  沖啊  殺雞雞~~~  2015-08-27 23:18:37.185 對象做參數傳遞[892:34503] gun  子彈 減 1  2015-08-27 23:18:37.186 對象做參數傳遞[892:34503] soldier  兒子們 孫子們 王八羔子們  都跟我一起上  沖啊  殺雞雞~~~  2015-08-27 23:18:37.186 對象做參數傳遞[892:34503] gun  友情提示: 大哥 你沒子彈了  俺去給你裝彈  你先拼會刺刀吧  裝好了再通知你  好嗎  就這么愉快的決定吧                           ……………                …………….                …………….                …………….  2015-08-27 23:18:37.217 對象做參數傳遞[892:34503] gun 子彈打光了  2015-08-27 23:18:37.217 對象做參數傳遞[892:34503] soldier  拐洞拐  我沒子彈了 還中彈了  中了好多呢 你是不知道  嚇死寶寶了  快來9我吧 等你哦 么么噠*/

 

 

 

 

 

 

 

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 望城县| 文登市| 海城市| 抚顺市| 临邑县| 汉中市| 大同县| 虹口区| 习水县| 邯郸市| 张家口市| 昌吉市| 开化县| 开鲁县| 罗江县| 江口县| 象山县| 怀集县| 阳江市| 嘉黎县| 耒阳市| 胶南市| 行唐县| 内乡县| 大兴区| 晴隆县| 凤翔县| 海丰县| 申扎县| 玛沁县| 乌拉特后旗| 汉沽区| 浙江省| 伊宁县| 洪雅县| 紫金县| 日喀则市| 莒南县| 湄潭县| 武邑县| 南康市|