OC心得

来源:互联网 发布:淘宝代运营是诈骗吗 编辑:程序博客网 时间:2024/05/20 14:41

1.面向对象的三大特性:

封装:

    set方法

    2>作用:提供一个方法给外界设置成员变量值,可以在方法里面对参数进行相应过滤

    3> 方法名必须以set开头

    4> set后面跟上成员变量的名称,成员变量的首字母必须大写

    5> 返回值一定是void

    6> 一定要接收一个参数,而且参数类型跟成员变量类型一致

    7> 形参的名称不能跟成员变量名一样

    get方法:

    1> 作用:返回对象内部的成员变量

    2> 肯定有返回值,返回值类型肯定与成员变量类型一致

    3> 方法名跟成员变量名一样

    4> 不需要接收任何参数

继承:

     当某个类继承了父类就拥有了父类的所有成员变量和方法,同时也可以扩充方法,基本上所有的类都继承NSObject,同时子类也也可以重写父类的方法(重写即子类重新实现了父类中的某个方法,覆盖了父类以前的实现。),父类必须声明在子类的前面,子类不能拥有和父类相同的成员变量,调用某个方法时,优先去当前类中找,如果找不到,就去父类中找。

多态:

     指相同的操作或函数、过程可作用于多种类型的对象上并且获得不同的结果。对于面向对象思想来说,个人感觉是真的很重要,他对以后的编写代码的优雅方式也是起到很重要的作用,其实现在很多设计模式中大部分都是用到了多态的特性多态说白了就是:定义类型和实际类型,一般是基于接口的形式实现。

2.关于OC中实例变量修饰符

@public_实例变量可以在类的外部和内部操作。一般不会用@public修饰,不符合OC三大特性之一的封装;

@protected_实例变量只能在本类和其子类内操作,类的外部不能使用;

@private_实例变量只能在本类内访问。

@package_这个类型最常用于框架类的实例变量,使用@private太限制,使用@protected或者@public又太开放

3.关于#include #import @class 

#include存在重复引入的问题,#import存在循环引入的问题,@class可以解决以上问题

4.Super关键字,在子类中重写方法时,可以让调用者跳过这一层而调用父类中的方法。

作用:

(1)直接调用父类中的某一个方法

(2)Super处在对象方法中,那么就会调用父类的对象方法;super处于类方法中,那么就会调用父类的类方法。

使用场景:子类在重写父类方法时,想要保留父类的一些行为。

0 0
原创粉丝点击