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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

类方法优点
        一、优点:
                1、节省每寸空间
                2、提高效率                //不用创建对象,不用查找对象,
                3、作为工具方法       
        二、易犯的错误
                1、通过类的方法调用了类的成员变量                //类方法不能调用成员变量
                2、类方法不能调用本身
        三、对象方法如何调用对象方法
                1、在当前对象方法中创建对象(可以是当前类也可以是其他类对象),使用新创建的对象调用对象方法
                2、可以使用self
                3、对象作为方法的参数传递过来,可以使用传递过类的对象调用方法
        下面声明一个车类,定义两个对象方法,然后实现对象方法调用对象方法:
                @interface car:NSObject//声明一个车类
                -(void)run;                        //定义对象方法run
                -(void)stop;                        //定义对象方法stop
                -(void)run:(car*);
                @end
                @implementation car        //事项汽车类
                -(void)run
                {
                        car *c = [car new];
                        [c stop];                        //在当前对象方法中创建对象,使用新创建的对象调用对象方法
                }
                或者
                -(void)run
                {
                        [self stop];                //可以使用self
                }
                或者
                -(void)run:(car *)c
                {
                        [c stop];                        //对象作为方法的参数传递过来,可以使用传递过类的对象调用方法
                }
                @end                               
        四、在类方法中可以调用其他类方法
                1、可以直接使用本类类名(或者其他类名)调用类方法
                2、可以使用self

                @interface Dog:NSObject //声明一个狗类
                +(void) run;                       
                @end
                @implementation                //实现狗类
                +(void)run
                {
                        NSLog(@“狗在跑”);
                }
                @end
                @interface car:NSObject//声明一个车类
                +(void)run;
                +(void)stop;
                @end
                @implementation car        //事项汽车类
                +(void)stop
                {
                        NSLog(@“汽车要停了”);
                }
                +(void)run
                {
                        [Dog run];                //可以直接使用本类类名(或者其他类名)调用类方法
                        [car stop];                //可以直接使用本类类名(或者其他类名)调用类方法
                }
                或者
                +(void)run
                {
                        [self stop];                //可以使用self
                }       
        五、在类方法中可以调用对象方法
                1、对象作为方法的参数传递过来
                2、可以创建一个对象
                @interface Dog:NSObject //声明一个狗类
                -(void) run;                       
                @end
                @implementation                //实现狗类
                -(void)run
                {
                        NSLog(@“狗在跑”);
                }
                @end
                @interface car:NSObject//声明一个车类
                +(void)stop(:Dog*)dog;
                +(void)run;
                @end
                @implementation car        //事项汽车类
                +(void)stop:(Dog*)dog
                {
                        [dog run];                //对象作为方法的参数传递过来
                }
                +(void) run
                {
                        Dog *dog =[Dog new];
                        [dog run];
                }

0 个回复

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