IOS之学习笔记四(类的实现和对象和id)

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

 

 

 

 

 

 

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...