A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wjy0916 中级黑马   /  2015-9-21 08:39  /  728 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1)类方法的优点
        a)节省内存空间
        b)提高工作效率
        c)作为工具方法
2)类方法的声明和实现

        //声明一个类 Car
                @interface Car : NSObject
                {
                    @public
                    //声明属性速度
                    int _speed;
                }
                //声明对象方法run
                -(void) run;
                //声明不带参数的类方法
                +(void) run;
                //声明带参数的类方法
                +(void) run:(int) speed;
                @end
        类方法的实现
        @implementation Car
        -(void) run{

                    NSLog(@"\n对象方法:车在以%d的速度废弛!",_speed);
        }
       
        //实现不带参数的类方法
        +(void) run{

            //    NSLog(@“\n对象方法:车在以%d的速度废弛!",_speed); 错
            //    方法中不能引用成员变量
                    NSLog(@"\n类方法:车在疾驰!!!!");


            //类方法中可以调用自己或其他类的类方法
            //1)直接用类名调用
            //    [Car run:250];
                    [self run:100];

        }

        //实现带参数的类方法
        +(void) run:(int) speed{

                    NSLog(@"\n类方法:车在以%d的速度废弛!",speed);
        }

        @end


注意:类方法  或者   对象方法  调用  对象方法时
        1)通过 对象作为参数来调用
                        //类方法调用对象方法(对象调用对象同理)
                        +(void) run:(Car *) C{
                            [C run];
                        }

        2)在当前方法内 实例化一个对象来调用
                        //类方法调用对象方法(对象调用对象同理)
                        +(void) run{
                            Car *C = [Car new];
                            [C run];
                        }

注意:对象方法调用类方法,直接用类名调用
                        //对象方法调用类方法
                        -(void) run{

                            [Car run];
                        }


OC类方法的应用场景
        当我们调用一个方法,该方法中不需要使用成员变量时,我们将该放啊发声明为类方法


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马