Objective-C 学习笔记 - part 9 - 静态标记的类型
2011-08-17 15:49
176 查看
默认的动态行为:
对象是动态类型推断的
只有在运行时才分配内存
消息是动态绑定的,对象只能执行它所理解的消息”方法调用“
虽然动态执行让程序变得灵活,但是也少了编译时的类型检查,你可以使用静态类型来进行编译时检查。
Rectangle *thisObject = [[Square alloc] init];
象这样指定类型,基本上只影响到编译时的检查,其它的行为跟 typed as id 是一样的。
好处;
1。 静态类型检查
2。显式的方法参数类型与返回值。
3。允许你使用 structure pointer 直接访问对象的实例变量。
使用静态类型后,如果一个对象没有响应一个它应该响应的消息,那么会报错
把一个静态类型的变量赋值给另一个静态类型 变量时,编译器保证它他们是相容的。
重要:一般来说不同类的同名方法(selector )需要使用同类型参数和返回值。这是因为运行值只为同名方法创建一份元数据。
但是对于静态类型没有此限制。
子类的实例可以标记为父类类型,以实现多态。
对象是动态类型推断的
只有在运行时才分配内存
消息是动态绑定的,对象只能执行它所理解的消息”方法调用“
虽然动态执行让程序变得灵活,但是也少了编译时的类型检查,你可以使用静态类型来进行编译时检查。
Rectangle *thisObject = [[Square alloc] init];
象这样指定类型,基本上只影响到编译时的检查,其它的行为跟 typed as id 是一样的。
好处;
1。 静态类型检查
2。显式的方法参数类型与返回值。
3。允许你使用 structure pointer 直接访问对象的实例变量。
使用静态类型后,如果一个对象没有响应一个它应该响应的消息,那么会报错
把一个静态类型的变量赋值给另一个静态类型 变量时,编译器保证它他们是相容的。
重要:一般来说不同类的同名方法(selector )需要使用同类型参数和返回值。这是因为运行值只为同名方法创建一份元数据。
但是对于静态类型没有此限制。
子类的实例可以标记为父类类型,以实现多态。
相关文章推荐
- Objective-C 学习笔记 - part 1 - 对象、类型、消息
- Objective-C 学习笔记 - part 2 - 类型定义
- Objective-C学习笔记(二十一)——函数的返回值与參数类型
- Objective-C学习笔记12:高级数据类型一
- objective-c学习笔记第六章《objective-c 多态,动态类型,动态绑定与java中的区别》
- [学习笔记—Objective-C]《Objective-C 程序设计 第6版》第四章 数据类型和表达式 课后练习题 4-10
- Objective-C 学习笔记 - part 11 - 错误处理
- Programming in Objective C学习笔记03——多态、动态绑定和动态类型
- haXe学习笔记:写一个支持类型参数的静态方法
- Objective-C 学习笔记 - part 7 - 相关引用
- 《objective-c基础教程》学习笔记 (一)—— 开发环境配置和简单类型输出
- Python学习笔记(3)强类型静态语言
- 学习笔记(objective-c)-判断指针变量的实际类型
- Objective-C 学习笔记 - part 4 - 协议
- Objective-C 学习笔记 - part 12 - 多线程
- 黑马程序员----Objective-C学习笔记之类的本质与SEL类型
- Objective-C学习笔记三:基本数据类型和表达式
- objective-C学习笔记(八) 集合类型 Collection Types
- Programming in Objective-C 学习笔记04——变量和数据类型
- Objective-C学习笔记:数据类型和表达式