小马哥IOS 基础第一天

来源:互联网 发布:刘若英演唱会 知乎 编辑:程序博客网 时间:2024/06/10 11:08
1. #import的功能与 include一样,是将右边的文件拷贝到当前的import的位置。能防止重复导入。



2. 类的声明与实现
   1) 类声明  
    
     //主要用于类中的 成员变量,成员方法的声明;
     @interface ClassName : SuperClass 
     {
       声明成员属性; 注意:成员属性以 “_” 开头
     }


     @end


     Oc中的继承符号为 “:”    —> @interface ClassName : SuperClass     @end
   


   2) 类实现  
   
     //用于成员方法的实现;
     @implementation  ClassName
       
     @end










3. 类方法 与 成员方法  ( “类方法” 执行效率高于 “成员方法” )

   1)对象方法以 “-”开头;
     类方法以 “+”开头
  
   2)对象方法中可以直接访问 成员变量;
      类方法中不可以直接访问 成员变量;


   3)类方法和对象方法可以进行相互调用
1. 对象方法中可以直接调用类方法;
2. 类方法中间接调用对象方法;
3. 类方法中可以直接调用其他类方法;
4. 对象方法中可以直接调用对象方法;
        


   4)类方法的应用场景:  工具类中使用 ( 不需要使用对象的成员属性,就可以定义为类方法 );







4. 实例对象 与 类对象   ( isa 指向类对象的指针 )
    通过类创建对象:
1.开辟存储空间,通过new方法创建对象会在堆内存中开辟一块存储空间。
2.初始化所有属性。
3.返回指针地址。

      1)创建对象的时候返回的地址其实就是类的第0个属性的地.  即 isa。
对象的第一个属性叫做 isa 属性。 Isa是一个指针,占8个字节。

      2)其实类也是一个对象,也就意味着Person也是一个对象。 我们平时所说的创建对象其实就是通过一个 “类对象” 来创建一个新的对象。 ( 注意: 类对象与父类对象的区别 。 对象的isa指针是指向类对象的。

      3)类对象中存储着 类中定义的所有 ”实例方法” 和 “类方法”;


      4) 通过对象访问 “类方法”或“成员方法”, 需要通过 实例对象的isa指针,找到类对象,再查找方法;
         通过类 访问 “类方法”, 通过类对象直接查找方法;
=》所以类方法的运行效率要高于实例方法。 ( 只要不访问对象的成员属性,就可以定义为类方法。 )










5. OC中的 成员变量 在声明时,“不能” 进行成员变量的初始化。
   
   全局变量:
      1) 写在函数和大括号,类之外的变量,我们称之为全局变量;
      2)作用域: 从一定的那一行开始,一直到文件末尾;
      3)局部变量可以先定义再初始化,也可以定义的同时进行初始化;
      4)全局变量存储在静态区,程序一启动就分配存储空间,直到程序结束才会释放;


   局部变量: 
      1)写在函数或者代码块中的变量,我们称之为局部变量;
      2)局部变量作用域: 从定义的那一行开始,一直到遇到大括号或者return。
      3)局部变量可以先定义再初始化,也可以定义的同时进行初始化。
      4)存储在栈区, 存储在栈中的数据有一个特点,系统会自动释放栈中的变量。


   成员变量:
      1) 写在类声明的大括号中的变量,我们称之为 成员变量 (实例变量).
      2) 成员变量只能通过对象来访问。
      3)注意: 成员变量不能离开类,成员变量不能在定义的同时进行初始化。
      4)成员变量存储在堆中,存储在堆中的数据,不会被自动释放,只能程序员手动释放。




6. OC中成员方法 与 函数
   
    1) OC中的函数为 C语言的函数:  void fun( type1 param1, type2 param2,… ){…}
       OC中的方法:          - (void ) fun:(type1) parma1 param2:(type2)param2 {… }


    2) 函数属于整个文件,方法属于一个类。 成员方法不能离开类;
  
    3) 函数可以直接调用,成员方法需要通过 对象进行调用; 


    4) 函数虽然属于整个文件,但是函数不能写在类的声明中, 否则会造成不识别;