oc的第二天

1.對象存儲的細節       new

01.new 創建的對象是在哪個區?
     堆區
 02.指針對象是在哪個區?
  棧區

03. 一個類可以創建多個對象,每個對象地址都不同


2.#pragma mark的使用


1、就是聲明多個多個類時或者是在.M文件中中間寫上pragma mark就會清楚的在x扣得上面能清楚的看到區分出來



3對象和方法之間的關數連續傳遞

1、對象作爲方法的參數

案例:比如人用搶 

定義完聲明和實現以後


 eg:

顯示人信息

 - (void)showPerson:(Person *)person;

就是在實現中打印出來

在main函數直接直接用就好了

2、對象作爲方法的返回值

 - (Person *)changeSex:(Person *)person;

在.M中直接 給對象在從新賦值  參數名->_變量=賦值

顧名思義 就是在返回值中寫 return  person

4對象作爲方法的參

人要調用搶

所以在main文件中把槍傳給人用,

[人的指針  槍的方法名 :槍的指針]


#import <Foundation/Foundation.h>

//槍類的聲明

@interface Gun : NSObject

{

    @public

    //定義實例變量

    NSString *_size;//型號

    int _bulletCount;//子彈數

}

//射擊方法的聲明

- (void)shoot;


@end


//槍類的實現

@implementation Gun


//射擊方法的實現

- (void)shoot{

    if(_bulletCount > 0){

        _bulletCount--;

        NSLog(@" %@ 正在突突突的射擊剩餘子彈:%d", _size, _bulletCount);

    }else

    {

        _bulletCount = 0;

        NSLog(@"沒有子彈了,還突突個毛線剩餘子彈數:%d", _bulletCount);

    }



@end


//士兵類的聲明

@interface Soldier : NSObject

{

    @public

    //姓名(_name)生命(_life) 等級(_level)

    NSString *_name;//姓名

   int _life;//生命

   int _level;//等級

    

}

//開槍方法的聲明

- (void)fireByGun:(Gun *)gun;



@end


//士兵類的實現

@implementation Soldier


//開槍方法的實現

- (void)fireByGun:(Gun *)gun{

    //開槍射擊

    [gun shoot];

}


@end




int main(int argc,constchar * argv[]) {

    @autoreleasepool {

        

       //創建槍對象

        Gun *g = [Gun new];

        //給實例變量賦值

        g->_size =@"AK-47";

        g->_bulletCount =5;

        

       //創建士兵對象

        Soldier *s = [Soldier new];

        //給實例變量賦值

        s->_name =@"藍博";

        s->_life =200;

        s->_level =3;

        

       //調用方法

        [s fireByGun:g];

        [s fireByGun:g];

        [s fireByGun:g];

        

        [s fireByGun:g];

        [s fireByGun:g];

        [s fireByGun:g];

        

        

    }

   return0;

}


5,NSString

1,計算英文字符串長度時

一個字符串就是一個字節

nsstriing *s1=@“fdg”;

int a=[s1  length];

NSlong(@"%d" a );

2,中文

     NSString *s2 = @"學挖掘機哪家強"; //7漢字

        int b = [s2 length]

       NSLog(@"%d", b); //7字節

  3,中英混合輸入 

NSString *s4 = @"學挖掘機哪家強ObjectC";//14

        int d = [s4 length];

        NSLog(@"%d", d); 

6多文件管理

1,就是在.h文件中寫一個聲明,

2,在.m文件中寫一個實現, 

3、然後把頭文件引入main函數中,在main函數中調用











發佈了16 篇原創文章 · 獲贊 3 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章