OC语言自学《九》---- OC(面向对象)
发布日期:2025-04-27 12:26:32 浏览次数:22 分类:精选文章

本文共 1368 字,大约阅读时间需要 4 分钟。

定义类和创建对象

在Objective-C中,类是程序结构的基本单元,使用class关键字创建类,并且使类继承NSObject@interface负责声明类的属性和方法签名,@implementation负责实现类的具体功能。

函数和方法的区别

  • 方法

    • 必须以减号或加号开头。
    • 减号开头的是对象方法,加号开头的是类方法。
    • 实现必须写在@implementation@end之间。
    • 声明必须写在@interface@end之间。
    • 方法只能由对象调用,归类、对象所有。
  • 函数

    • 函数调用不依赖对象。
    • 函数内部不能直接通过成员变量名访问对象的成员变量。
    • 函数可以写在文件的任何地方,但不能写在@interface中。
    • 函数可以写在@implementation@end之间,也可以被方法调用。

对象方法与类方法的区别

  • 对象方法

    • 减号开头。
    • 只能由对象调用。
    • 实例变量不能在类方法中访问。
    • 对象方法可以调用类方法。
  • 类方法

    • 加号开头。
    • 只能由类调用。
    • 应用场合:当方法内部不需要使用成员变量时,可以改为使用类方法。

self关键字

  • self是指针类型,指向方法调用者。
    • 它用于访问当前对象的成员变量,如self->member
    • 在对象方法中,self代表对象;在类方法中,self代表类。
    • 避免在类方法中使用self调用对象方法,否则可能引发死循环。
    • super关键字用于调用父类的方法。

super关键字

  • super的作用:直接调用父类中的某个方法。
    • 在对象方法中,super调用父类的对象方法;在类方法中,super调用父类的类方法。
  • 使用场景:子类重写父类的方法时,可以保留父类的一些行为。

常见错误

  • @end不能嵌套。
  • 方法的声明不能写在@implementation里面。
  • 方法的实现不能写在@interface里面。
  • @interface是配对出现的,中间不能嵌套任何东西。
  • 成员变量不允许在@interface里面进行初始化。
  • 成员变量不能随便当成C语言中的变量。
  • 不能用static修饰成员变量和方法。
  • 类的声明要放在创建对象前面。

面向对象的三大特性

  • 封装

    • 设置gettersetter方法。
    • 成员变量与_下划线开头区分。
    • OC是弱语言,方法和成员变量只需写实现即可运行。
  • 继承

    • 所有类的根类都是NSObject
    • 使用冒号表示继承关系。
    • 子类可以拥有父类的成员变量和方法。
    • 继承的坏处:产生依赖,耦合度高。
    • 继承的使用场合:重复代码、建立类关系、组合使用。
  • 多态

    • 没有继承就没有多态。
    • 父类指针可以指向子类对象。
    • 多态的局限:父类变量不能直接调用子类特有的方法。
    • 多态的注意:不能将子类类型转换为父类类型。
  • NSString字符串类型

    • 使用%@控制符输出NSSString字符串。
      • 示例:NSString *str = @“luoguankun”;
    • length方法:获取字符串长度,返回unsigned long
    • stringWithFormat方法:动态创建字符串,根据传入值。
      • 示例:NSString *newstr = [NSString stringWithFormat:@"My age is %d and no is %d and name is %@”,age,no,name];
    上一篇:OC高效率52之提供“全能初始化”方法
    下一篇:oc知道经纬度求位置

    发表评论

    最新留言

    很好
    [***.229.124.182]2026年06月09日 05时13分47秒

    关于作者

        喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
    -- 愿君每日到此一游!

    推荐文章