注:编译器版本 XCode 15.4

- 新建一个XCode项目

- 新建一个类

1、成员变量、属性
1.1、类内使用成员变量,类外使用属性
Role.h
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@interface Role : NSObject
{
//成员变量:只能类内使用
NSString *_name;
int _age;
}
//属性:类外可使用
//属性就是内部成员变量的外部接口
@property (nonatomic, strong) NSString *name;
//属性也相当于 get/set 方法
-(void)setAge:(int)age;
-(int)getAge;
-(void)display;
@end
NS_ASSUME_NONNULL_END
Role.m
#import "Role.h"
@implementation Role
//绑定属性和成员变量
//推荐使用成原变量与属性不同命的方式,成员变量前面加_,属性不加
@synthesize name = _name;
//构造方法
- (instancetype)init
{
self = [super init];
if (self) {
//类内调用的都是成员变量
_name = @"";
_age = 0;
}
return self;
}
-(void)setAge:(int)age{
_age = age;
}
-(int)getAge{
return _age;
}
-(void)display{
NSLog(@"角色名称: %@ 角色年龄: %d", _name, _age);
}
@end
main.m
#import <Foundation/Foundation.h>
#import "Role.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
//实例化对象(* 代表指针)
//[类名 方法名]
//[对象名 方法名]
//alloc:为对象分配内存空间
//init:初始化操
Role *r1 = [[Role alloc]init];
[r1 display]; //角色名称: 角色年龄: 0
[r1 setName:@"琦玉"];
[r1 setAge:20];
[r1 display]; //角色名称: 琦玉 角色年龄: 20
//属性可以直接当做get/set用
r1.name = @"杰诺斯";
NSLog(@"角色名称: %@", r1.name); //角色名称: 杰诺斯
}
return 0;
}

最低0.47元/天 解锁文章
3252

被折叠的 条评论
为什么被折叠?



