课程来自慕课网Visitor.zc老师
创建类的对象
#import <Foundation/Foundation.h>
#import "People.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
// 实例化对象
/*
类名 对象名 = [[类名 方法名] 方法名];
alloc - 为对象分配内存空间
init - 进行初始化操作
*/
People *p1 = [[People alloc] init];
People *p2 = [[People alloc] init];
People *p3 = [People new];
NSLog(@"p1 - %p",p1); // p1 - 0x10181deb0
NSLog(@"p2 - %p",p2); // p2 - 0x10181e440
NSLog(@"p3 - %p",p3); // p3 - 0x10181dcc0
return 0;
}
}
属性和成员变量
- main.m
#import <Foundation/Foundation.h>
#import "People.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
// 实例化对象
/*
类名 对象名 = [[类名 方法名] 方法名];
alloc - 为对象分配内存空间
init - 进行初始化操作
*/
People *p1 = [[People alloc] init];
People *p2 = [[People alloc] init];
p1.name = @"张三";
p2.name = @"李四";
NSLog(@"p1.name -> %@",p1.name); // p1.name -> 张三
NSLog(@"p2.name -> %@",p2.name); // p2.name -> 李四
return 0;
}
}
- People.h
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
// 类外使用属性,类内使用成员变量
@interface People : NSObject
// 属性为了让类外可以访问成员变量
// 属性就是成员变量的外部接口
@property(nonatomic,strong)NSString *name;
@end
NS_ASSUME_NONNULL_END
- People.m
#import "People.h"
@implementation People
{
//声明成员变量
// NSString *_name; 申明name属性时,系统会自动生成 _name 成员变量
int _age;
int _sex;
}
- (instancetype)init
{
self = [super init];
if (self) {
// 类内调用成员变量,属性是给类外使用的
_name = @"张三";
}
return self;
}
@end