20世纪80年代早期,布莱德.考斯(Brad Cox)在其公司StepStone发明了Objective-c.
Objective-C是C语言的一个扩展集,Brad Cox意在将流行的、可移植的C语言与Smalltalk语言结合在一起。
这意味着Objective-C是能够创建和操作对象的一门新的程序设计语言。
(1) Objective-C是C语言的一个扩展集,C中可以使用的元素,在Objective-C中都可以使用。
数据类型int,float,struct,指针*
宏定义 #define
#if #endif
#ifndef #define
#include
(2) 支持三种基本的程序结构
顺序、选择、循环
(3) main()函数为程序的入口点
(4) 注视://或者/*......*/
(1) 布尔类型
C语言中使用bool,取值true,false
Objective-C中取值YES,NO
(2) 使用#import来包含头文件,但它也支持#include
#import<>:告诉编译器从系统自带的库文件中查找
#import"" :双引号表示从当前项目文件中查找。
(3)@符号是Objective-C在标准C语言基础上添加的特性之一。
@"Hello"表示该字符串应该作为Cocoa的NSString元素来处理。
Cocoa对其所有函数,常量和类型名称都添加了"NS"前缀。
(4) Objective-C中id是一种指针,用于表示指向任何种类的对象
(5) Objective-C是面向对象的。
(1) 类的声明
@interface Circle:NSObject
{
int i;
}
-(void) draw;//"-"表示类的实例即对象的方法
-(void) drawAgain; // "+"表示是类的方法
@end
如果使用Cocoa,那么每一个类都应该从NSObject中继承,它提供了大量有用的特性。
(2) 类的实现
@implementation Circle
-(void) draw
{
.....
}
+(void) drawAgain
{
.......
}
@end //circle
(3) 创建对象
Circle *circleOne = [Circle new];
Circle *circleTwo = [[Circle alloc] init];
大部分对象都穿件的是指向该对象的指针,少数数据类型除外,例如基本类型。
Objective-C把int,float看做对象的一部分。
alloc:表示分配内存
init: 表示初始化对象
(4) 初始化和释放对象
-(id) init 和 -(void) dealloc
继承自NSObject的类都要重写这两个方法。
(5) 不支持多继承
Objective-C不支持多继承,但是它采用其他的途径来达到多继承的目的。例如:类别、协议。
(6) 类别
类别:向某一个类中添加方法,不能添加新的数据成员。
声明类别:
@interface类名(类别名称);
.....//此处为该类别需要声明的方法名称
@end
实现类别:
@implementation 类名(类别名)
.....//这里是方法的实现
@end