Objective-C:002

408 阅读3分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

1.面向对象的三大特征

  • 封装

    把对象的属性和行为封装起来,外界只能用接口使用该对象,而且不能通过任何形式修改对象内部的实现

  • 继承

    继承主要描述的是类与类的关系,通过继承可以在不必重写类的情况下,使原有类的功能进行扩展

  • 多态

    父类中定义的属性或方法被子类继承后,可以使同一个属性或方法在父类及其各个子类中具有不同的含义

2.封装

  • setter的封装

    • 专门为对象的属性赋值

    • -(void)setXXX:(参数类型)参数1:(参数类型)参数2......;
      
  • getter的封装

    • 专门返回属性的值

    • -(int)age;	//声明
      
      
      -(int)age{
          return _age;
      }	//方法的实现
      [p age];
      

3.static关键字

只修饰方法中的局部变量,使它变成静态变量,方法执行完毕后,不被回收,下次执行方法时直接使用静态变量,不用再次声明,即使再次声明也不起作用。

4.继承

  • 1.格式

    @interface 类名:父类名
    @end
    
    • 子类拥有父类所有的成员,包括属性和方法
    • 是类的继承不是对象的继承
    • 子类不能定义和父类同名的属性
  • 2.特点

    • 单根性

      一个子类只有一个父类

    • 传递性

      拥有父辈甚至祖辈的所有属性和方法

  • 3.NSObject类是所有类的父类

    该类定义了一个类方法new,是专门用来创建对象的,返回值是这个对象的指针

  • 4.方法的重写

    • 直接重写方法的代码就可以
    • 当一个父类指针指向子类对象时,如果父类指针调用的方法在子类对象中重写了,调用的就是重写后子类的方法
  • 5.super关键字

    只能用在类方法和对象方法中

    • 对象方法中,调用当前对象从父类继承的对象方法

       在对象方法中用`[对象指针 对象方法];`来调用
      
    • 类方法中,调用当前类从父类继承的类方法

      在类方法中用`[类名称 类方法];`来调用
      

5.访问修饰符

  • 只修饰属性,不修饰方法
修饰符含义访问权限
@private本类内部访问
@protected本类和子类中访问
@package当前框架被访问
@public任何地方被访问
  • 注意
    • 默认是@protected
    • 如果父类的属性被@private修饰,那么子类只能通过父类的方法间接访问父类的属性
    • 不要轻易使用@public

6.里氏替换原则

  • 简单理解:子类替换父类的位置后程序功能不受影响
  • 作用
    • 储存本类对象的地址或者子类对象的地址
    • NSObject类型的指针,可以储存任意OC对象的地址
    • 一个数组元素类型是一个OC指针类型(NSObject指针类型),这个数组不仅可以储存本类还有子类对象(任意OC对象)
    • 为方法的参数传值时可以是本类对象也子类对象
  • 当一个父类指针指向子类对象时,通过这个指针只能调用子类对象中的父类成员,子类独有的成员无法访问

7.多态

不同事物对同一个行为的不同表现形式,比如动物的叫声

8.description方法

个父类指针指向子类对象时,通过这个指针只能调用子类对象中的父类成员,子类独有的成员无法访问

7.多态

不同事物对同一个行为的不同表现形式,比如动物的叫声

8.description方法

  • %@输出指针引用的对象或者字符串
  • rewind(stdin)清除标准输入的按键缓冲区

原文链接