oc封装 get set方法访问或者修改属性的值
面向对象的三大特性:
封装(成员变量)、继承和多态
Set方法的作用:为外界提供一个设置成员变量值的方法,不让数据暴露在外,保证了数据的安全性,对设置的数据进行过滤
#import <Foundation/Foundation.h>
@interface ComputerSystem : NSObject
{
char *name; //系统名称
int systemSize; //系统大小
}
//系统描述
- (void)display;
//设置系统大小
// - (返回类型)方法名称:(参数类型) 参数名称
- (void)setSystemSize:(int) size;
//获取系统大小
- (int)getSize;
//设置系统名称
- (void)setName:(char *)newName;
//获取系统名称
- (char *)getName;
@end
#import "ComputerSystem.h"
@implementation ComputerSystem
//构造函数
//在分配内存后就会被调用
//id 代表万能类型,本质上是个指针
- (id)init{
//self 表示当前类的对象
//判断的是,如果能够正常初始化就运行,因为会存在初始化失败的情况,初始化失败的话会返回空
if (self = [super init]) {
NSLog(@"我是构造函数");
}
return self;
}
#pragma mark 设置系统大小
- (void)setSystemSize:(int)size
{
systemSize = size;
}
#pragma mark 获取系统大小
- (int)getSize{
return systemSize;
}
#pragma mark 设置系统名称
- (void)setName:(char *)newName
{
name = newName;
}
#pragma mark 获取系统名称
- (char *)getName
{
return name;
}
#pragma mark 系统描述
- (void)display
{
NSLog(@"系统名称:%s,系统大小:%d",name,systemSize);
}
@end
#import <Foundation/Foundation.h>
#import "ComputerSystem.h"
int main(int argc, const char * argv[]) {
// 创建一个电脑系统类,描述它,分析有什么功能
@autoreleasepool {
//创建一个实例
// ComputerSystem *mac = [ComputerSystem alloc];
//给实例初始化
// mac = [mac init];
ComputerSystem *mac = [[ComputerSystem alloc] init];
[mac setName:"OS X"];
[mac setSystemSize:200];
[mac display];
ComputerSystem *windows = [[ComputerSystem alloc] init];
[windows setName:"windows"];
[windows setSystemSize:100];
[windows display];
}
return 0;
}