1)Objective-c简称OC,扩充自C语言; C语言为"面向过程"; OC语言为:面向对象.并且OC对C语言中的所有功能完全兼容; 2)Objective-c 是OS X 和 IOS操作系统的主要编程语言. 3)OC中关键字使用@开头,从而避免了与C中的关键字冲突. 例:@interface@implementation @end @protected @private 等; 4)相比OC中,"BOOL"的YES为1,"NO"为0; 而C中数字"0"为NO,非"0"为YES; 5) @public 在任何地方都可能直接访问对象的成员变量 二.Objective-c的特点; (一)Objective-c的特点: 1)上面讲到,在OC中,对于C语言中的所有功能完全兼容; 2)OC是主要倾向于面向对象的一项编程语言工具; (二)Objective-c 与C的区别及注意事项: 1) #include 和 #import 的区别 2)源文件 OC中的源文件是.m结尾 c 语言中是. c尾 #import #improt 是#include增强版 注要作用: 包含引入头文件,把指定的文件拷贝到指定的位置. 增强: 无论你#import 执行多少次,都只会拷贝一次. #include 如果要达到同样的效果,需要和条件编译指令一起使用. #import 底层就做了判断,判断你这个文件是否已经导入过了,如果已经有了,就不会重复导入. #import 也有<>和""; <>为导入系统文件,""是用来导入用户定义的文件. 3)框架 苹果公司和第三方扭扭捏捏想封装好了一些功能模块,这些功能模块的集合就是"框架" +++++C语言中的函数库+++++++ Foundation/Foundation.h:提供了我们OC开发基本的功能; 4)main 函数 *和C语言中一模一样 5) return 0; //返回; *和C语方中一模一样 NSlog 是 printf的增强版,同样用打印和输出; *1* 自动换行 *2* 日期和时间(精确到毫秒) *3* target 的名称 *4*进程号: 线程号 注要用@ 在OC中%@为字符串的占位符; · NSSting 是OC中的字符串类型. NSSting 为C中printf()的增强版; 三.类与对象的定义 (一) 1)类和对象是面向对象的核心. *定义类->>创建对象->>使用对象. *具有相同的特征和行为的事物的抽象. 例如: 电脑,手机类. *对象:对象是类的实例.类是对象的类型(可以理解为:类,是模具的象征; 对象,是个体的象征). (二)OC中类的定义; 1)定义类包含两部分:声明部分和实现部分. *声明部分* 对外声明类的特征和行为( 可以理解为说明书 ) * @interface 声明类型 NSobjert * ========================================================================== //其中:Person是类名,可以与文件夹不同名, NSObject父类 @interface Person : NSObject //实例变量(特征) { //public是设置变量权限为共有 @public //NSString *是OC里面特有的对字符类型处理的变量类型 //可以直接赋值,打印时用占位符%@ //注意:命名规范实例变量 下划线和名字 NSString _name;//姓名 NSString _sex; NSString *_hobby;NSInteger _age; } //方法(行为) - (void) sayHi; - (void) eat; @end 实现部分: 对内实现行为 @implementation Person //实现方法 · (void) sayHi {NSLog(@"你好,我叫%@,今年%ld岁,喜欢%@, _name, _age, _hobby); } · (void) eat {NSLog(@"我要去吃饭"); //NSLog作用于printf相同,NSLog会自动换行. } @end 类与文件: .h是头文件. .m称为实现文件 2) 创建对象 * 类是模板, 对象是具体表现,任何对象都占用内存空间. *创建对象分两步: *1.分配内存空间 *2.初始化 *3.返回地址* *分配内存空间: 根据类中声明的实例变量为对象分配内存,将所有实例变量置为默认为0,并反回首地址. Person p = [Person alloc]; p = [pinit]; // 初始化:为对象的实例变量设置初始值。 Person p = [[Person alloc]init]; //通常写为这种 +(void)alloc; "+"表示这人方法属于类,只能由类执行和调用. ("void")为返回值类型.表示任意类弄的对象, 即创建好的对象. -(void)init; "-" 表示这个方法属于对象,只能由对象执行和调用. "(void)"为返回值类型,表示初始化完成的对象. ======初始化====== //重新实现init方法,系统将不会在调用系统本来的方法 · (id) init { _age = 18;return self; //self 表示本身,返回初始化完成的自己 } =======例题========== import //引用Person声明文件 import "Person.h" int main(int argc, const char * argv[]) { @autoreleasepool {
创建对象或实例化对象 Person *person =[[Person alloc] init]; //对象成员赋值,也可以重新写init是赋值 person->_name =@"张三"; person->_age =20; person->_hobby = @"篮球"; //使用对象 [person sayHi]; [person eat]; } return 0; }============================================================= 四. 类的声明及调用方法; 1.类的声明:@interface 类名:NSObject @end 2.类的实现:@implementation 类名@end * 无参方法: 1.无参方法声明:-(返回值类型)方法名; 2 .无参方法实现:-(返回值类型)方法名{} 3.无参方法调用:[对象名 方法名] * 有一个参数的方法: 1.声明:-(返回值类型)方法名:(参数类型)参数名; 2.实现:-(返回值类型)方法名:(参数类型)参数名{} 3.调用:[对象名 方法名:参数] * 有多个参数的方法: 1.声明:-(返回值类型)方法名:(参数类型)参数名 andXX:(参数类型)参数名 andXX:(参数类型)参数名 andXX:(参数类型)参数名; 2.实现... 3.调用...
|