博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS 的 set.get.构造方法
阅读量:5307 次
发布时间:2019-06-14

本文共 1457 字,大约阅读时间需要 4 分钟。

一、set方法和get方法

      1.set方法和get方法的使用场合

      @public的成员可以被随意赋值,应该使用set方法和get方法来管理成员的访问(类似机场的安检、水龙头过滤,过滤掉不合理的东西),比如僵尸的生命值不能为负数

      2.set方法

  1. 作用:用来设置成员变量,可以在方法里面过滤掉一些不合理的值
  2. 命名规范:
  • 方法都是以set开头,而且后面跟上成员变量名,成员变量名的首字母必须大写
  • 形参名称不要跟成员变量同名

     3.get方法

  1. 作用:返回对象内部的成员变量
  2. 命名规范:get方法的名称一般就跟成员变量同名
  1. 成员变量的命名规范
  • 成员变量都以下划线 _ 开头
  • 可以跟get方法的名称区分开
  • 可以跟其他局部变量区分开,一看到下划线开头的变量,肯定是成员变量
  • 代码示例
#import 
// 声明@interface Car : NSObject{ int _wheels; // 轮子个数}/*set方法*/- (void) setWheels:(int)wheels;/*get方法*/- (int) wheels;@end@implementation Car// set方法的实现- (void) setWheels:(int)wheels{ // 对外面传进来的轮子数进行过滤 if (wheels<=0) { wheels = 1; } _wheels = wheels;}// get方法的实现- (int) wheels{ return _wheels;}@end

  6.封装的好处

  • 过滤不合理的值
  • 屏蔽内部的赋值过程
  • 让外界不必关注内部的细节

 

 二、类方法

      1.基本概念

       直接可以用类名来执行的方法(类本身会在内存中占据存储空间,里面有类\对象方法列表)

      2.类方法和对象方法对比

  1. 对象方法
  • 以减号-开头
  • 只能让对象调用,没有对象,这个方法根本不可能被执行
  • 对象方法能访问实例变量(成员变量)

     2.类方法

  • 以加号+开头
  • 只能用类名调用,对象不能调用
  • 类方法中不能访问实例变量(成员变量)
  • 使用场合:当不需要访问成员变量的时候,尽量用类方法
  • 类方法和对象方法可以同名

    三、构造方法

  1. 对象创建原理
  • new的拆分两部曲
  • 分配内存(+alloc)
  • 初始化(-init)

          Person *p1 = [Person alloc];

          Person *p1 = [p1 init];

         合成一句后:

         Person *p = [[Person alloc] init];

     

     2.init方法的重写

  • 想在对象创建完毕后,成员变量马上就有一些默认的值
  • init方法的重写过程
- (id)init{    if (self = [super init])    {        _age = 10;    }    return self;}

      3.自定义构造方法

  • 构造方法的一些规范
  • 返回值是id类型
  • 方法名都以init开头
- (id)initWithAge:(int)age {    if (self = [super init]) {        _age = age;    }    return self;}
  • 传递多个参数进行初始化

- (id) initWithAge:(int)age andNo:(int)no;

转载于:https://www.cnblogs.com/yumian/p/5123596.html

你可能感兴趣的文章
博弈论
查看>>
Redis sentinel & cluster 原理分析
查看>>
我的工作习惯小结
查看>>
把word文档中的所有图片导出
查看>>
浏览器的判断;
查看>>
ubuntu 18.04取消自动锁屏以及设置键盘快捷锁屏
查看>>
Leetcode 589. N-ary Tree Preorder Traversal
查看>>
机器学习/深度学习/其他开发环境搭建记录
查看>>
xml.exist() 实例演示
查看>>
判断是否为空然后赋值
查看>>
zabbix监控日志文件
查看>>
正则表达式
查看>>
pip install torch on windows, and the 'from torch._C import * ImportError: DLL load failed:' s...
查看>>
环套树
查看>>
java基础(一):我对java的三个环境变量的简单理解和配置
查看>>
arcgis api 4.x for js 结合 Echarts4 实现散点图效果(附源码下载)
查看>>
YTU 2625: B 构造函数和析构函数
查看>>
apache自带压力测试工具ab的使用及解析
查看>>
C#使用Xamarin开发可移植移动应用(2.Xamarin.Forms布局,本篇很长,注意)附源码
查看>>
jenkins搭建
查看>>