IOS-OC-单例模式、set和get方法

一:单例模式

#import 
#import "WangFeng.h"
#import "SaBeiNing.h"

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        WangFeng *wangFeng = [WangFeng getDefault];
        NSLog(@"one--%p",wangFeng);
        [wangFeng setAge:45];
        NSLog(@"%d",[wangFeng age]);
        
        
        
        [SaBeiNing printfAgeOfWangFeng];
    }
    return 0;
}
#import 

@interface WangFeng : NSObject
{
    int _age;
}
+ (WangFeng *)getDefault;

- (void)setAge:(int)age;
- (int)age;
@end
#import "WangFeng.h"

@implementation WangFeng

static WangFeng *wangfeng;

+(WangFeng *)getDefault
{
    // if (!wangfeng) 如果当前对象不存在
    if (!wangfeng) {
        wangfeng = [[WangFeng alloc] init];
    }
    return wangfeng;
}

- (void)setAge:(int)age
{
    _age = age;
}

- (int)age
{
    return _age;
}
@end
#import 

@interface SaBeiNing : NSObject
+(void)printfAgeOfWangFeng;
@end
#import "SaBeiNing.h"
#import "WangFeng.h"

@implementation SaBeiNing
+(void)printfAgeOfWangFeng
{
    WangFeng *wangFeng = [WangFeng getDefault];
    NSLog(@"two--%p***%p",wangFeng);
    NSLog(@"--------%d",[wangFeng age]);
}
@end

二:set和get方法

#import 
#import "LaoWang.h"

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        LaoWang *wang = [[LaoWang alloc] init];
        [wang setWeight:200];
        NSLog(@"%f",[wang weight]);
    }
    return 0;
}

#import 

@interface LaoWang : NSObject
{
    float _weight;
    float _height;
    int _age;
}

// set方法
// set开头 + 成员变量的名称首字母大写 + 成员变量的数据类型
- (void)setWeight:(float)weight;

// get方法
// 返回值和成员变量类型相同 + 成员变量的名成首字母小写
- (float)weight;
@end
 #import "LaoWang.h"

@implementation LaoWang
- (void)setWeight:(float)weight
{
    // 判断weight有没有问题
    _weight = weight;
}

// 只读(只能获取数据,不能修改数据)
- (float)weight
{
    float w = _weight;
    return w;
}
@end

你可能感兴趣的:(IOS-OC-单例模式、set和get方法)