OC 封装

作者: CaptainRoy | 来源:发表于2018-06-17 11:38 被阅读6次
封装就是把一个类的相关属性不能直接暴露给外部,或直接通过属性赋值,通过函数来对类的属性数据进行操作

一般情况通过setter和getter方法来进行操作
在oc中@property自动生成setter和getter方法进行调用

  • 如下 一个person类
#import <Foundation/Foundation.h>

@interface Person : NSObject

@property(nonatomic,copy)NSString *name; // 姓名
@property(nonatomic,assign)NSUInteger age; // 年龄
@property(nonatomic,copy)NSString *sex; // 性别

// 初始化
-(Person *)initWithName:(NSString *)name andAge:(NSUInteger)age andSex:(NSString *)sex;

// 自我介绍
-(void)introduce;

// 跑步
-(void)run;

@end
#import "Person.h"

@implementation Person

-(instancetype)init
{
    if ([super init]) {
        NSLog(@"%s",__FUNCTION__);
    }
    return self;
}

-(Person *)initWithName:(NSString *)name andAge:(NSUInteger)age andSex:(NSString *)sex
{
    NSLog(@"%s",__FUNCTION__);
    self = [super init];
    if (self) {
        _name = [name copy];
        _age = age;
        _sex = [sex copy];
    }
    return self;
}

-(void)introduce
{
    NSLog(@"我的名字: %@ , 性别: %@ , 年龄: %lu",self.name,self.sex,(unsigned long)self.age);
}

-(void)run
{
    NSLog(@"%@ 在跑步",self.name);
}

@end
Person *p = [[Person alloc] init]; // -[Person init]
NSLog(@"p: %@",p); // p: <Person: 0x100400430>
Person *roy = [[Person alloc] initWithName:@"roy" andAge:18 andSex:@"男"]; // -[Person initWithName:andAge:andSex:]
[roy introduce]; // 我的名字: roy , 性别: 男 , 年龄: 18
[roy run]; // roy 在跑步

相关文章

  • OC面向对象

    OC面向对象—封装 一、面向对象和封装 面向对象的三大特性:封装(成员变量)、继承和多态 在OC语言中,使用@in...

  • 自己封装的WKWebView(OC)

    自己封装的HtmlWKWebView(OC)

  • OC 封装

    封装就是把一个类的相关属性不能直接暴露给外部,或直接通过属性赋值,通过函数来对类的属性数据进行操作 一般情况通过s...

  • OC—封装

    学习目标 1.【了解】异常处理 2.【掌握】类方法 3.【掌握】NSString类 4.【掌握】匿名对象 5.【掌...

  • 类与结构体

    在 OC 中:1.结构体只能封装属性,而类不仅可以封装属性还可以封装方法.2.结构体变量分配在栈,OC 对象分配在...

  • 底层18:RunLoop-线程的封装

    一、OC语言方式实现线程的封装: 封装文件MJPermenantThread.h MJPermenantThrea...

  • block 笔记

    block本质是OC对象(封装了函数调用以及调用环境的OC对象) 本质

  • 数据库:SwiftSQlite

    与sqlite比较 本质:sqlite。SwiftSqlite是swift的封装。类似FMDB是OC的封装。 易于...

  • 结构体和类的区别

    一、定义一个结构体 二、使用 三、结构体和OC类的区别 结构体: 只能封装属性,不能封装方法; 分配在栈上 OC类...

  • OC-简单粗暴理解Block的本质

    block简单粗暴的理解 OC的block底层就是个OC对象,包含isa指针,封装了函数的调用. OC的block...

网友评论

      本文标题:OC 封装

      本文链接:https://www.haomeiwen.com/subject/zbfweftx.html