1. 头文件依然是.h 2. .cpp变成了.m 3. #import代替了#include,#import保证只会引用一次,相当于.h里的#ifndef #define #endif模式 4. 用@interface … @end来声明类,取代class ClassName{} 5. 用@implementation … @end来实现类 6. Data Members放在@interface ClassName : Parent{ … }中,默认权限为@protected,在ObjC里称为Instance Variables 7. Member Functions放在@interface ClassName: Parent{} … @end中,在ObjC里称为Instance Methods 8. Instance Methods的声明方式为:scope (returnType) methodName: (parameter1Type) parameter1Name; 9. scope分instance和class两种,分别用-和+表示 10. 调用method的方式是[object method],相当于object->method() 11. 带参数调用method的方式是[object method: parameter] 12. 没有Object,只有Pointer to Object 13. 通常的构造方式: Object * obj = [[Object alloc] init] 14. 析构的方式:[obj release]15.多参数method的声明方式: scope (returnType) methodName: (parameter1Type) parameter1Name label1Name: (parameter2Type) parameter2Name … ; 16. labelName不是必须的 17. 这种特别的语法源自SmallTalk 18. private: [list of vars] protected: [list of vars] public: [list of vars] 改成了@private, @protected, @public 19. Class Variable用static的方法实现⋯⋯ 20. +(void) initialize 会在构造的时候被调用 21. ObjC通常用@符号表示语言的衍生部分 22. ObjC用id来表示范型对象的指针 23. 支持动态类型识别 24. Categories机制可用于不继承已有class的前提下加入新功能 25. Posing机制允许Child取代Parent 26. Protocol相当于pure virtual class 27. ObjC由两种内存管理的方法,1) retain and release,2) retain and release/autorelease 28. Foundation相当于STL,NSArray对应vector,NSDictionary对应map 29. ObjC不支持Namespace 30. 不支持重载
|
请发表评论