黑马程序员技术交流社区

标题: 匿名类 [打印本页]

作者: wjy0916    时间: 2015-9-21 22:07
标题: 匿名类
定义:匿名类是不能有名字的类,不能被引用,只能在创建时用New语句来声明(百度百科)
Car类的声明和实现
        声明
@interface Car : NSObject
{
    @public
    int _speed;
}
-(void) run;
@end
                实现
@implementation Car
-(void) run{   
    NSLog(@"\n起飞喽!!!!速度是%d",_speed);
}
@end
Person类的声明和实现
        声明
#import "Car.h"
@interface Person : NSObject
-(void) goHome:(Car *) car;
@end
                实现
@implementation Person
-(void) goHome:(Car *) car{   
    [car run];
}
@end
1)匿名类访问成员变量
        //使用匿名类调用实例变量 (能切只能访问一次)以后再次访问其实是访问了新的空间
        [Car new]->_speed = 250;
        NSLog(@"\n匿名类调用实例变量_speed = %d",[Car new]->_speed);
    //匿名类调用实例变量_speed = 0
   
2)使用匿名类调用方法

        [[Car new] run];//直接使用Car的匿名类调用Car的run方法

3)匿名类作为方法参数

        [P goHome:[Car new]];//将Car的匿名类作为参数传递给Person类的goHome方法

4)匿名类调用方法,方法参数还是匿名类
        [[Person new] goHome:[Car new]];       
                //用Person的匿名类调用goHome方法,传入参数为Car的匿名类






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