zoukankan      html  css  js  c++  java
  • OC

    一、封装

    1> 封装的定义

    • 隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别

    2> 封装的好处

    • 可以通过set方法防止为成员变量设置不合理的值
    • 仅向外部提供公开的接口,屏蔽成员变量的操作过程
    • 外界可以通过接口间接的操作成员变量,而不必关注内部细节

    3> set方法和get方法

    1. set方法

      ① 作用:为成员变量赋值
      ② 命名规范
          1)名字必须以set开头
          2)set后紧跟成员变量名,且首字母要大写
          3)返回值一定是void类型
          4)一定接收一个类型与要赋值的成员变量一致的参数
      ③ 若成员变量为只读类型,通常不需要set方法
      ④ set方法可以用于监听成员变量的改变,而触发相应的操作
    2. get方法

      ① 作用:返回成员变量的值
      ② 命名规范
          1)方法名与成员变量名一致
          2)返回值类型与要返回的成员变量一致
          3)不需要接收任何参数

    二、继承

    1> 继承的定义

    • 一个对象直接使用另一个对象的属性和方法,并扩展自己特有的属性和方法

    2> 优缺点

    1. 优点

      ① 基于原有的模型,扩充特有的方法
      ② 抽取重复代码,降低代码冗余
      ③ 建立类与类之间的联系
    2. 缺点

      ① 耦合性太强

    3> 基本使用

    • 可以使用继承自父类的成员变量和方法
    • 可以根据需求扩充自己特有的方法
    • 可以在子类中用同名方法来重写父类的方法
    • 调用一个方法时,先在当前类中找该方法,若找不到,再在父类中找

    4> 使用注意

    • 用户自定义的类通常继承自系统中的根类,如:NSObject
    • OC语言的继承是单继承
    • 只能继承父类的非私有成员变量和方法
    • 继承不能减少父类中的成员变量和方法
    • 子类中不允许出现与父类中同名的成员变量
    • 父类必须声明在子类的前面

    5> 继承与组合

    1. 继承

      ① 当两个类用有相同的属性和方法时,通常将相同的属性和方法抽取到
        一个父类,使用继承关系
      ② 若A类用有B类的部分属性和方法,通常让B类继承自A类
    2. 组合

      ① 当一个类包含另一个类的全部属性和方法,通常让这个类作为另一个
        类的属性,使用组合关系
      ② 若A类用有B类的全部属性和方法,通常让B类作为A类的属性

    6> self与super

    1. self

      ① 基本使用
          1)self是一个指针,指向调用当前方法的对象/2)可以调用成员变量和方法
          3)使用self来调用成员变量,可以区分同名的局部变量
      ② 使用注意
          1)用self调用当前方法会引发死循环
          2)不能使用self在类方法中调用对象方法,反之亦然
          3)不能使用self调用函数
    2. super

      ① 基本使用
          1)每个类都会有一个super指针指向其父类
          2)子类重写父类的方法时,若想保留父类的一些行为,通常用super
            调用父类中被重写的方法
      ② 使用注意
          1)通过super可以直接调用父类中的类方法/对象方法
          2)所调用方法的类型与当前方法的类型一致,如:若当前方法为类
            方法,则调用父类中的类方法,反之亦然

    三、多态

    1> 动态绑定的概念

    • 在程序的执行期间判断所引用对象的实际类型,根据实际的类型调用其相应的方法

    2> 基本使用

    • 多态通常指多种形态
    • 体现为父类指针指向子类对象
    • 使用类动态绑定的概念

    3> 优缺点

    1. 优点

      ① 当一个函数/方法用父类类型作为参数,可以接收父类、子类对象
      ② 降低了代码的冗余
    2. 缺点

      ① 不能使用父类指针调用子类的方法
      ② 编译器只会检测语法是否有误,只有在运行时才会根据动态绑定结果
        调用相应的方法

    4> 使用注意

    • 多态必须以继承为基础,没有继承就没有多态
    • 在运行时会动态检测指针指向的真正对象
    • OC语言是弱语法,可以用用任何类型的指针指向一个已知的对象,只会发出警告  
  • 相关阅读:
    ZOJ 2158 Truck History
    Knight Moves (zoj 1091 poj2243)BFS
    poj 1270 Following Orders
    poj 2935 Basic Wall Maze (BFS)
    Holedox Moving (zoj 1361 poj 1324)bfs
    ZOJ 1083 Frame Stacking
    zoj 2193 Window Pains
    hdu1412{A} + {B}
    hdu2031进制转换
    openjudge最长单词
  • 原文地址:https://www.cnblogs.com/funny11/p/4924112.html
Copyright © 2011-2022 走看看