黑马程序员技术交流社区

标题: 类方法小结 [打印本页]

作者: wjy0916    时间: 2015-9-21 08:39
标题: 类方法小结
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类方法的应用场景
        当我们调用一个方法,该方法中不需要使用成员变量时,我们将该放啊发声明为类方法







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2