黑马程序员技术交流社区

标题: OC类方法与对象之间调用简介+小例说明 [打印本页]

作者: mazhichao    时间: 2015-7-1 20:27
标题: OC类方法与对象之间调用简介+小例说明
类方法优点
        一、优点:
                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];
                }




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