zoukankan      html  css  js  c++  java
  • OC基础:实例变量和成员变量的区别 分类: ios学习 OC 2015-06-14 17:59 16人阅读 评论(0) 收藏

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

    在Objective-C中,定义一个类,需要有两部分: 第一是接口(interface),第二是实现(implementation)。 接口对应接口文件,而实现对应了实现文件。 接口文件包含了类的声明,成员变量(member variable)和方法(method)。 接口文件通常是.h

     实现文件通常是.m文件。  接口中所声明的方法(method),需要在.m 文件中,通过xcode 来实现这个方法(method)。

    今天查看apple 的官方文档时(如下)。https://developer.apple.com/library/mac/referencelibrary/GettingStarted/Learning_Objective-C_A_Primer/index.html

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

    如果你之前接触过C++, 对成员变量(member varialbe) ,肯定不陌生。  今天,你又看到了这个熟悉的叫法, 定会感到 Objective-C  没想象中的那么难。

    行文至此,耳边又响起了那个广告语 : 还是原来的配方,还是熟悉的味道。 呵:)

    Objective-C 基本语法:实例变量与成员变量的区别 - 悠悠电台 - 悠悠电台——移动流媒体收音机
      图中的 ”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) 超类/子类: Superclass/Subclass (Inheritance) 协议:  Protocol (non-class-specific methods)

    从给出的英文说明,可以看出: 实例(Instance) 是针对 类(class)而言的。  实例是指类的声明; 由此推理, 实例变量(Instance Variable) 是指 由类声明的对象。 
    严格说来, 上图中的  int  count;  是一个成员变量。  而 NSString * name;  是一个实例变量。 至于 id data 应该属于成员变量还是实例变量呢?  因为 id 是 OC特有的类型。从本质上讲, id 等同于 (void *)。 
     所以 id data 应属于 实例变量。

    该文章是本人在查询问题时得到的文章讲解,并非本人原创.
    这里.很感谢原文章作者的解释.在此表示感谢.
     
  • 相关阅读:
    在可变字符串类型varchar建立索引时有什么要注意的吗?
    单表行数多少时适合分库分表?
    存储字符串时怎么设计或者考量那?
    小数类型选择float、double正确吗?
    解决mysql java.sql.SQLException: The server time zone value‘XXXXXX' is unrecognized or represents...
    阿里云 Windows Server 2012 密码过期设置
    规则引擎 drools
    day-06
    微信小程序前端开发踩坑(一)
    CornerStone使用跳坑总结(陆续更新)
  • 原文地址:https://www.cnblogs.com/shaoting/p/4619823.html
Copyright © 2011-2022 走看看