定义:匿名类是不能有名字的类,不能被引用,只能在创建时用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的匿名类