A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© muyan091115 中级黑马   /  2016-5-25 22:42  /  745 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1,OC中的方法分为两种

    1),对象方法/实例方法
        我们之前学习的方法,都是对象方法
        如果要调用,必须创建对象用对象名访问

    2),类方法
        类方法的调用不依赖于对象 如果要调用类方法
        不需要创建对象 直接使用类名来调用


2,声明

    1),对象方法的声明
        对象方法声明使用 - 号
        - (void)sayHi;

    2),类方法的声明:
        类方法声明使用 + 号
        有声明有实现 位置都是一样的


3,调用

    1),对象方法:先创建对象,再通过对象名来调用

    2),类方法:不需要创建对象,直接使用类名来调用
        而不是直接使用类名来调用

        [类名 类方法];


4,分析类方法和对象方法的调用过程

    类方法的优点
    a,节省空间:因为调用类方法不需要创建对象
    b,提高效率:因为调用类方法不需要拐弯抹角,直接找到类,执行类方法


5,在类方法中不能直接访问属性

    1),属性是在对象创建的时候,跟随着对象一起创建在对象之中

    2),类在第一次访问的时候,只是把代码放进代码段,并没有创建属性

    因为属性只有在对象创建的时候,才会创建在对象之中,而类方法在执行的时候,
    有可能还没有对象,所以不能在类方法中直接访问属性

    虽然不能直接访问属性,但是可以在类方法中创建一个对象,访问这个对象的属性


6,在类方法中也不能通过self直接调用当前类的其他对象方法,因为对象方法只能通过对象来调
    需要调用对象方法的时候,创建对象,通过对象来调用对象方法。


7,在对象方法中可以直接使用类名调用类方法 不能使用self
    也可以直接使用其他对象方法 一般用self来调用


8,什么时候我们可以将方法定义为类方法呢

    如果方法中不需要访问属性和调用其他对象方法,就设置成类方法
    这样就会节约空间,提高效率


9,关于类方法的规范,

    1),如果我们写一个类,那么就要求为这个类提供一个和类同名的类方法
        这个方法创建一个最纯洁的对象返回(属性都是默认值)

        因为苹果和高手写的类都遵守这个规范。

    2),如果你想要得到创建的对象的属性的值有调用者指定 那么就让这个方法带参数
        类名WithXXX : 。。。。。。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马