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函数中调用











评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值