Object c 中的方法有两类,一类是实例方法,一类是类方法。通过下面的程序来详细的描述
类方法的使用。
File car.h
#import
<Foundation/Foundation.h>
@interface
Car :
NSObject
@property
int
carAge ;
-(
void
)display;
//
定义实例方法
+(void)broadCast;//定义类方法
@end
File car.m
static
int
count =
0
;
#import "Car.h"
#import "Car.h"
@implementation
Car
//
类方法实现
+( void )broadCast
{
NSLog ( @"Age is %i " , count );
NSLog ( @"Callback the car %i " , count );
+( void )broadCast
{
NSLog ( @"Age is %i " , count );
NSLog ( @"Callback the car %i " , count );
}
//
实例方法实现
-( void )display
{
NSLog ( @"Car Age is %i " , _carAge );
-( void )display
{
NSLog ( @"Car Age is %i " , _carAge );
}
@end
File main.m
#import
<Foundation/Foundation.h>
#import"Car.h"
int
main(
int
argc,
const
char
* argv[]) {
@autoreleasepool {
// insert code here...
NSLog ( @"Hello, World!" );
// 类方法的调用
[ Car broadCast ];
// 不能使用 [ 类名 方法名 ] 调用实例方法。下面一行代码在 X-code 下不能编译通过
//[Car dispaly]
// 调用实例方法必须先实例化类,然后再用实例化后的类对实例方法调用。调用格式 [ 实例名 实例方法 ]
}
return 0 ;
@autoreleasepool {
// insert code here...
NSLog ( @"Hello, World!" );
// 类方法的调用
[ Car broadCast ];
// 不能使用 [ 类名 方法名 ] 调用实例方法。下面一行代码在 X-code 下不能编译通过
//[Car dispaly]
// 调用实例方法必须先实例化类,然后再用实例化后的类对实例方法调用。调用格式 [ 实例名 实例方法 ]
}
return 0 ;
}