建立一个Person类
Person.h
#import<Foundation/Foundation.h>
{
NSString *_name;
NSString *_idCard;
}
- (void)setName:(NSString *)name;
- (void)setIdCard:(NSString *)idCard;
- (NSString *)name;
- (NSString *)idCard;
@end
Perseon.m
#import"Person.h"
@implementation Person
//方法重写:本来有的方法 重新定义方法中的是是实现过程
/*
1.写init方法的时候 系统提示了 -> 说明这个方法本来就有 -> 继承自父类的方法
2.如果重写了继承自父类的方法 -> 对象调用方法时会执行复写后的方法
3.如果复写方法时,想保证该方法原来的功能,可以在方法中调用父类super的该方法。
*/
- (instancetype)init
{
/*
main.m Person类 NSObject
创建了person 调用init方法 --> init方法(复写) -->(若没复写) --> init方法
[super init] ----------------> init
person <-- return <--------------- 产生id
*/
if(self = [super init])
{
NSLog(@"调用了init方法");
}
return self;
}
/*______________________________________________________________________*/
- (void)setName:(NSString *)name
{
_name = name;
}
- (void)setIdCard:(NSString *)idCard
{
_idCard = idCard;
}
- (NSString *)name
{
return _name;
}
- (NSString *)idCard
{
return _idCard;
}
@end
main.m
#import<Foundation/Foundation.h>
#import"Person.h"
int main(int argc,const char *argv[])
{
@autoreleasepool
{
//1.为NSObject类的对象获取一块内存地址
NSObject *objc = [NSObject alloc];
//2.初始化该对象的基本数据,保存到对象里
objc = [objc init];
/*
代表任意的对象类型:
instancetype -> 只能作为返回值
id -> 随便用
*/
//1.创建
Person *mouren = [Person alloc];
mouren = [mouren init];
//2.属性
[mouren setNme:@"某人"];
[mouren setIdCard:@"123456788909887"];
//3.打印
NSLog(@"%@ %@",[mouren name],[mouren idCard]);
}
return 0;
}