• iOS 类方法和对象方法的区别


    1、对象方法:

    • 定义: - (void)test;
    • 调用: 对象方法需要创建对象,通过对象去调用
    • 在对象方法中,可以使用类名直接调用当前类的类方法。
    • 对象方法可以和类方法同名
      2、类方法:
    • 定义: + (void)test;
    • 调用: 类方法 直接通过类名去调用
    • 节约空间,因为调用类方法不需要创建对象,所以节约了空间。
    • 提高效率,调用类方法不需要拐弯抹角,直接找到类。
    • 在类方法中不能使用 self 调用当前类的其他对象方法。因为对象方法只能通过对象去调用,此时对象还没有创建。
    • 在类方法中不能直接调用类的属性
    @interface Person : NSObject
    //创建一个对象方法
    - (void)test;
    //创建一个类方法
    + (void)test;
    @end
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    @implementation Person
    //实现对象方法
    -(void)test {
        NSLog(@"这是对象方法");
    }
    //实现类方法
    +(void)test {
        NSLog(@"这是类方法");
    }
    
    @end
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    //对象方法和类方法的区别
    //调用对象方法,需要创建对象对象
     Person *p1 = [[Person alloc]init];
     [p1 test];
            
    //调用类方法,直接通过类名去调用
     [Person test];
    
    打印:
    [35630:128229] 这是对象方法
    [35630:128229] 这是类方法
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    3、对象与对象之间的关系

    • 组合关系:一个对象是由多个对象组合起来的。比如计算机对象是有硬盘对象、CPU对象、主板对象、内存对象组合起来的。那么计算机和硬盘、CPU、主板等对象的关系就叫组合关系
    • 依赖关系:一个对象的方法的参数是另一个对象,那么他们的关系就叫依赖关系。比如B类是A类方法的参数。那么就说A类依赖于B类。(美女打电话案例)
    • 关联关系: 一个类作为另外一个类的属性,但是他们不是组合关系,而是一个拥有的关系。(人有一条狗,将狗对象作为人对象的一个属性)
  • 相关阅读:
    【C++漂流记】一文搞懂类与对象的封装
    Java面试题:链表-反转链表
    强推这款键盘利器(Keychron),这次我彻底入坑了
    手机怎么打包?三个方法随心选!
    【企业架构框架】TOGAF 10 现已发布并可用!
    JavaScript基本功之迭代器(iterator)的使用和原理
    解决/usr/bin/env: ‘python\r’: No such file or directory
    Nginx笔记-vue项目刷新出现404(try_files和index)
    java部署linux系统
    Win10 蓝屏CRITICAL_PROCESS_DIED值为 0x000000EF
  • 原文地址:https://blog.csdn.net/same_life/article/details/126075626