1、简单构建类和对象和id使用的测试代码如下
Person.h
#ifndef Person_h
#define Person_h
#import <Foundation/Foundation.h>
@interface Person : NSObject
{
NSString* _name;
int _age;
}
-(void)setName:(NSString *)name addAge:(int)age;
-(void)say:(NSString *)content;
-(NSString *)info;
+(void)foo;
@end
#endif /* Person_h */
Person.m
#import "Person.h"
@implementation Person
{
int _testAdd;
}
-(void)setName:(NSString *)name addAge:(int)age {
_name = name;
_age = age;
}
-(void)say:(NSString *)content
{
NSLog(@"content is %@", content);
}
-(NSString *)info
{
[self test];
return [NSString stringWithFormat:@"the persion is %@, and age is %d", _name, _age];
}
-(void)test
{
NSLog(@"this is test method");
}
+(void)foo
{
NSLog(@"this is foo method");
}
@end
main.m
#import "Person.h"
int main(int argc, char * argv[]) {
@autoreleasepool {
Person *person = [[Person alloc] init];
[person setName:@"chenyu" addAge:26];
NSString *info = [person info];
NSLog(@"%@", info);
[person say:@"chenyu"];
[Person foo];
//id类型可以代表所有对象的类型,id类型执行方法会动态绑定
//id p不是id *p;
id p = [[Person alloc] init];
[p setName:@"chenyu" addAge:26];
NSString *in = [p info];
NSLog(@"%@", in);
[p say:@"chenyu"];
}
}
2、运行结果
this is test method
the persion is chenyu, and age is 26
content is chenyu
this is foo method
this is test method
the persion is chenyu, and age is 26
content is chenyu