oc基础第一天---类的方法,类与对象

   1. 如何为类定义行为.

      刚刚我们聊的是如何为类定义特征.

      如何定义行为? 行为就事1个功能 也就事1个函数.

       OC中把行为叫做方法. 实际上和函数是一样的 代表1个功能模块.

   2. 为类定义无参数的方法.

     类的方法也分为两个部分.   

     a. 方法的声明

        1). 位置: 写在声明类的大括弧的外边.

        2). 声明的语法:

            - (返回值类型)方法名;

            - (void)sayHi;

            这个方法的名字就叫做sayHi;

     b. 方法的实现.

        1). 位置: 写在类的实现之中.

        2). 实现的语法:

            - (返回值类型)方法名

            {

                方法体;

            } 

     c.方法的调用.

        定义在类中的方法是属于类的. 而类是无法直接使用的.

        所以,这个定义在类中的方法是无法直接调用的.

        如果非要调的话.就得创建1个类的对象. 

        那么这个对象之中就拥有类模板中的所以的成员  实例变量、方法.

        就可以通过对象来调用这个对象的方法.

        调用语法:

        [对象名 方法名];

        [p1 sayHi];

    3. 带1个参数的方法的声明和实现.

       a. 方法的声明

          1). 位置:

          2). 语法:

        

          - (返回值类型)方法名:(参数类型)参数名称;

          - (void)eat:(NSString *)foodName;

          需要牢牢的记住一点:

           这个方法的名字叫做 eat:

       b. 方法的实现:

          1). 位置.

          2). 语法

              将声明拷贝过来 去掉分号 加对大括弧 将实现写在其中就可以了.

              - (返回值类型)方法名:(参数类型)参数名称

              {

              }

    

       c. 方法的调用

          1). 要通过对象名来调用.

          2). 调用语法

              [对象名 方法名:实参];

     4). 带多个参数的方法

         a. 声明:

            1).位置.

            2).语法

            

            - (返回值类型)方法名:(参数类型)参数名称 :(参数类型)参数名称 :(参数类型)参数名称;

            - (int)getSum:(int)num1 :(int)num2;

            这个方法的名字叫做getSum: :

         b. 实现:

            1). 位置.

            2). 语法

                拷贝方法的声明,去掉分号 加对大括弧 将实现写在其中就可以了.

            - (返回值类型)方法名:(参数类型)参数名称 :(参数类型)参数名称 :(参数类型)参数名称

            {

                 方法的实现.

            }

         c. 调用

            1).必须要通过对象名来调用.

            2).调用的语法

               [对象名 方法名:实参 :实参 :实参];

 3. 带参数的方法名的规范.

    1). 遵守的原则. 调用的时候看起来是一句连贯的话.

        让调用者知道这个参数的作用是什么.

    2). 规范:

        如果方法只带1个参数. 那么方法名:

        - (返回值类型) 方法名With:(参数类型)参数名称;

        如果有多个参数:

        - (返回值类型) 方法名WithXX:(参数类型)参数名称 andXX:(参数类型)参数名称;

  

  1. 同1个类可以创建N多个对象.

     

     对象与对象之间是没有影响的.1个对象的熟悉的值是根本不会影响另外1个对象的属性的值的.

     同1个类的多个对象之间毫无关系.

     唯一的关系 是他们都是根据同1个类模板创建出来 

     他们具有相同的成员 属性、方法.

     属性的值相互之间是不影响的.

  2. 在方法的实现之中.可以直接访问这个类的成员变量.

     访问的是那1个对象的成员变量呢?

        

     这个方法是通过那1个对象来调用的.那么这个方法中访问的成员变量就事那个对象的.

     谁来调用这个方法,这个方法中的成员变量就事谁的.

  3. 当我们声明1个对象.如果没有为对象的字段赋值.

     这个时候对象的字段是有默认值的.

      如果字段的类型是基本数据类型 那么默认值是0.

      如果字段的类型是OC指针类型. 那么默认值就是nil

     如果字段的类型是C指针类型 那么默认值是NULL

     如何声明、实现类

     如何创建对象

     如何访问对象的成员

     方法的声明和实现

     如何调用方法.

原文地址:https://www.cnblogs.com/qjrz/p/4649895.html