博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OC 实例变量(Instance Var)和成员变量(member var)区别
阅读量:6951 次
发布时间:2019-06-27

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

摘要:  Objective-C  引入了“实例变量"的概念,但同时, 也经常出现 “成员变量”的声音。 到底什么是实例变量,什么是成员变量,二者的区别是什么呢?

今天查看apple 的官方文档时(如下)。

 

 发现了一个新的名词: 成员变量(member variable)。 之所以感到新奇,因为之前 都管它叫 实例变量(instance variable)。 记得,初次接触Objective-C时,看到实例变量这一名词,觉得很新奇。 也试图把 实例变量 与 成员变量,做了一番对比,研究其不同之处。 从以下这个张图, 可以断定,我之前所看到的实例变量,本质上说,就是成员变量。 对于iOS 初学者来说, 一个新奇的名词,很容易让人产生太多的想法。 

Objective-C 基本语法:实例变量与成员变量的区别 - 悠悠电台 - 悠悠电台——移动流媒体收音机
 
                       MyClass *math=[[MyClass alloc] init];
  图中的 ”Member Variable declarations“ ,字面的意思: ”成员变量声明“。  貌似  {   } 中所声明的变量都为成员变量。 既然如此,实例变量又是什么意思呢?
既然OC的表达方式是英文, 不妨从英文中查知原本的含义。
类:     Class (description/template for an object)
实例: Instance (manifestation of a class)
消息: Message (sent to object to make it act)
方法: Method (code invoked by a Message)
实例变量: Instance Variable (object-specific storage)
成员变量(member varialbe)
超类/子类: Superclass/Subclass (Inheritance)
协议:  Protocol (non-class-specific methods)
 
 
从给出的英文说明,可以看出: 实例(Instance) 是针对 类(class)而言的。 实例是指类的声明; 由此推理, 实例变量(Instance Variable) 是指 由类声明的对象。
严格说来, 上图中的 int count; 是一个成员变量。 而 NSString * name; 是一个实例变量,math也是实例变量。 
至于 id data 应该属于成员变量还是实例变量呢? 因为 id 是 OC特有的类型。从本质上讲, id 等同于 (void *)。
 所以 id data 应属于 实例变量。
 
 
 

转载地址:http://ovkil.baihongyu.com/

你可能感兴趣的文章
Hands on Machine Learning with sklearn and TensorFlow —— 一个完整的机器学习项目(加州房地产)...
查看>>
正则表达式匹配a标签或div标签
查看>>
《跃迁-成为高手的技术》感悟
查看>>
ANSI设备驱动器
查看>>
面试-2
查看>>
Odoo 10的Linux安装
查看>>
常用概念比较
查看>>
各分支Linux的镜像下载地址
查看>>
读取XML的内容
查看>>
Devil fly
查看>>
结合项目实例 回顾传统设计模式(三)装饰者模式
查看>>
常用性能分析工具
查看>>
JZOJ 1003【东莞市选2007】拦截导弹——dp
查看>>
bzoj 2093 [Poi2010]Frog——滑动窗口
查看>>
Linux的一些基本命令
查看>>
学习笔记——WPF
查看>>
quartus 对比引脚兼容
查看>>
C# Listview 第一列不能居中
查看>>
I.MX6 uSDHC SD card register
查看>>
再转一篇gtest1.6安装
查看>>