自学笔记3 | 青训营笔记

84 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的的第6天

自学笔记3 | 青训营笔记

OC自学笔记

访问修饰符:只能用来修饰属性,限制属性可访问范围

  1. @private:本类方法中访问
    1. 注意:子类继承也有属性,但要通过父类方法访问
    2. 不想让子类访问时使用
  2. 默认@protected:本类和子类方法中访问
  3. @package:当前框架中访问
  4. @public:任意地方访问:
    1. 不要使用
  5. 真私有:将属性写到实现中
    1. implementation Person{}
    2. 私有的,访问修饰符无法修改

私有方法:

  1. 不写声明,只写实现

面向对象复习

面向对象基本概念

  1. 封装
    1. 屏蔽内部实现
    2. 方便操作
    3. 方便维护
  2. 继承
    1. is-a关系
    2. 单根性:只有一个父类
    3. 传递性:A继承B,B继承C,A有C的方法和属性
  3. 多态:不同事物,同一个行为,具有完全不同表现
  4. 类与类(对象与对象)之间的关系
    1. 组合:类似has-a关系,一个类由其他几个类组合而成,本质都是属性中含有是其他类的实例
      1. 电脑
        1. cpu
        2. 主板
    2. 依赖:类的对象方法中的参数是其他类的对象
      1. 人:
        1. 打电话(电话)
    3. 关联 :has-a关系,拥有关系
      1. 人:
    4. 继承 :is-a关系
  5. 耦合度:对象的修改,对其他对象的影响
    1. 目标:高内聚,低耦合
    2. 方法:代理/设计模式:单一指责原则

里氏替换原则LSP

  1. 里氏替换原则LSP:子类可以替换父类的位置
  2. 本质:父类指针可以指向子类对象
    1. 只能访问父类方法和属性
    2. 如果子类重写了父类方法,调用的就是子类重写的方法
  3. 原因:
    1. 指针可以存储本类和子类对象地址
    2. 父类有的方法和属性,子类都用,不会影响功能

重写

  1. 对父类的方法进行重写:
    1. 在.m实现中,直接重写
  2. NSLog打印类
    1. 打印description方法的返回值,(返回值是NSString*)
      1. 可以通过重写,返回自己想要的
      2. [p1 description];

继承:

  1. 每个类有一个isa指针指向父类:通过isa指针,可以找到父类方法
    1. 当前类中没有方法,一直找到NSObject,如果没有就报错
    2. 重写时,不继续向上找

多态:不同事物,同一个行为,具有完全不同表现