objective-c - 在Obj-C中实例方法和类方法的区别是什么?
習慣沉默
習慣沉默 2017-05-02 09:20:30
0
3
690

实例方法,即需要实例化对象调用的方法。
类方法,即类直接调用的方法。

我不明白什么场合用类方法,什么场合用实例方法。两者相比较真正的优势和劣势又是什么?

習慣沉默
習慣沉默

모든 응답 (3)
迷茫

类方法一般用来提供标准化处理;实例方法一般用来提供个性化处理(绑定特定实例)。

    曾经蜡笔没有小新

    优势和劣势这种说法应该不存在吧。

    • 如果一个方法,输入参数相同的情况下,输出会收到不同对象实例的实例变量影响而不同,一般是要写成实例方法的。

    • 如果输入参数相同,但是不受实例变量影响(static不算实例变量),则可以写成类方法交给类去调用。例如

    - (NSString *)getCertainString { return @"The string." }

    这种鬼你写成实例方法也行,但是不仅每次调用得实例化/释放一个,对代码阅读还有影响。

    • 类方法比较常见于单例模式和工厂模式。单例模式程序中这个类只有其一个实例;工厂模式则是根据参数生产出不同的实例返回。

      阿神

      方法之间并没有什么优劣之分,只是为了使用方便.如果非要区分,下面应该算是一点

      类方法的劣势:在类方法中,self 表示类,而不是类对象,所以在类方法中你没办法用self.调用属性,也没办法调用本类的实例方法.
      类方法的优势:调用简单,不需要创建对象

        최신 다운로드
        더>
        웹 효과
        웹사이트 소스 코드
        웹사이트 자료
        프론트엔드 템플릿
        회사 소개 부인 성명 Sitemap
        PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!