[学习笔记—Objective-C]《Objective-C 程序设计 第6版》第十章 变量和数据类型

来源:互联网 发布:sql 2005 32位标准版 编辑:程序博客网 时间:2024/04/27 03:14

Part 1. 实例变量和属性

  • 目前的趋势是使用(_)作为实例变量名字的起始字符。
  • 在实现部分显式声明实例变量是私有的
    • 因此不能在子类中通过名字直接获取到实例变量的值。
    • 在子类中只能通过继承的存取方法获取实例变量的值。
  • 不必用@synthesize指令生成存取方法,只要在属性中声明即可。

Part 2. 全局变量

  • 小写的g作为全局变量的首字母:int gMoveNumber = 1;,也是外部变量。
  • 外部变量:被其他任何方法或函数访问和更改值的变量
  • 访问:加上关键字externextern int gMoveNumber;
    • 加上extern是对变量的声明,而不是定义。声明不会引起变量存储空间分配,而定义会。
    • 如果很多方法访问全局变量,那么在文件开始进行一次extern
    • 只有少数访问的话,最好在每个方法内部单独进行extern声明

Part 3. 静态变量

  • 定义成全局变量,但不是外部变量:除了特定类中的方法之外,再没有其他方法需要访问这个特定的变量:static int gGlobalVar = 0;:位于这条语句之后的方法或函数都可以访问gGlobalVar的值,而其他文件中的方法和函数都不行。

Part 4. 枚举数据类型

  • 枚举类型:提供了一种方法,能将整数值和有象征意义的名称对应起来。
    • 若需要更改这个整数的值,只能在定义枚举的地方改。
    • 例子:enum direction {up, down, left = 10, right};
    • 元素序列的增加,整数值+1,以此类推。

Part 5. typedef语句

typedef:改变数据类型的名称

typedef int Counter;Counter j,n;
  • 增加了变量定义的可读性,清晰地看出这些变量在程序中的使用目的。

Part 6. 数据类型转换

不同类型的数据类型运算:

  • 如果其中一个操作数是long double,double,float型,结果也是long double,double,float型。
  • 如果其中一个操作数是Bool,char,short int, bit field或枚举类型,则全部转换为int型。
  • 如果其中一个操作数是long long int, long int型,另一个操作数转换为long long int, long int型,则结果也是long long int, long int型。
  • 两个操作数均为int型,则结果也是int型。
0 0