《Object-C》编程全解笔记一

来源:互联网 发布:小甲鱼python解压密码 编辑:程序博客网 时间:2024/05/22 14:49

Object-C编程全解笔记一

第二章 Object-C程序设计

  1. 消息表达式[obj msg]、消息关键字(多关键字来区别变量)、消息选择器(即消息名、方法);
  2. 初始化方法并不具备把实例对象的信息重置的功能,如果需要将实例变量的值恢复为初始值,需要额外实现一个重置专用的函数;
  3. 类名不能和变量名以及方法名相同,变量名和方法名可以相同(如get函数);
    4.方法如果不指定返回值,则返回的是默认的id类型的值;
  4. 和其他UNIX系的操作系统一样,可以使用gcc编译OC程序,但是无法使用ARC等功能,使用clang编译的时候,需要让宏定义__clang__有效;
  5. import头文件相对于include头文件的一个好处是不会导致重复引入头文件,这是因为其内置了判断一个文件是否已经被引入法人功能,在C语言中,如果同一个头文件被重复引入后,就会发生二重定义的错误,在C语言中通常在头文件的最开始加上宏定义的方法来避免这个问题:
    #ifndef __MYLIB_H__  
    #define  __MYLIB_H__
    //头文件定义
    #endif
  6. C语言函数的定义可以在实现文件的@implementation的前面、里面和后面,函数不可以直接使用类定义的实例变量和self,但可以通过参数传递给函数。
  7. 在OC中,静态变量的定义与C语言略有不同,即无论生成了多少个对象,都只有一个静态变量存在,这有利于对象间信息的共享和传递但是在使用这个对象之前,如果另外一个对象修改了该静态变量,如果不进行同步,就会发生错误。


第三章 类和继承

  1. 调用父类的方法:如果子类想调用父类的方法,可以使用super关键字来发送消息,super和self不同,并不确定指向某个对象,所以super只能被用于调用父类的方法,不能通过super完成赋值,也不能把方法的返回值指定为super。


第四章 对象的类型和动态绑定

  1. OC的消息是在运行时才去绑定的,动态绑定就是指程序在执行时才确定对象的属性和需要响应的消息,运行时实际执行的方法和变量定义的类型无关,只和运行时这个变量的实际对象有关;
  2. 多态是指,同一操作在作用于不同类的实例时,将产生不同的结果,多态是基于类层次的多态;
  3. nil是一个指向id类型的空指针,表示一个空对象,初始化方法失败的时候通常也返回一个空指针nil;
  4. 通过@class编译指令进行类的前置声明来代替引入类头文件,可以提高编译速度,但是如果新定义的类需要使用原有类的变量和方法,则一定要引入头文件,类前置声明的另外一个好处是当多喝接口问价出现类的相互嵌套定义时,只能通过类的前置声明来解决;
  5. 实例对象、实例方法、实例变量、类对象、类方法、类变量:面向对象语言的设计理论对类的两种认识,一种认为类只作为类型的定义,程序运行时不作为实体存在,另一种认为类本身也作为一种一个对象存在,这种定义的对象叫做类对象;类对象有自己的方法和变量,叫做类方法和类变量,把类作为类型定义的实例对象的方法和变量叫做实例方法和实例变量;OC里没有类变量的概念,但通过在实现文件中定义静态变量来代替实例变量,即在实现文件中给变量或方法加上static修饰符,类变量可以在类方法中被访问,可以通过设置类变量的类getter和setter方法来被外界访问。
0 0
原创粉丝点击