基 础 语 法
Objective-c是c语言的母集合,就是面向对象的。
1、面向对象和面向过程
面向对象和面向过程是编程的两种思考方式。
面向对象,简称OOP,是完成一项工作需要那些步骤。
面向过程,简称OPP,是完成工作的每一步是怎么完成的,注重过程。
2、类和对象
(1)类是一组具有相同(特征)属性和行为(功能)事物的集合。
对象就是类的具体实现。世间万物皆对象。
(2)类的定义
在OC中,类的定义分两部分:声明部分和实现部分;
声明部分(@interface):声明了类与父类的名字、方法是实例变量。声明文件以.h为后缀。.h用来声明类的变量和函数。
声明类时,成员变量要声明在大括号中,方法声明在大括号外。
如果是对象方法要写-开头。
类方法要写+开头。
所有在.h文件当中声明的方法都是公共方法,凡是类型,都要写括号。在方法名后,一个参数要一个括号,
实现部分(@implementation):包含了方法的实现,真正意义上定义了类的行为。实现文件以.m为后缀。.m文件负责实现。
实现类时,首先要导入.h的声明
OC中最根本的类叫NSObject,OC是单继承的。声明类以@interface开头,以@end结尾,实现类用@implementation开头,以@end结尾。
注意:一个声明对应一个类。
3、对象的创建和使用
1>对象的创建
内存分配:为对象动态的分配内存地址。
初始化:在内存中初始化成员变量的值。
对象的创建需要调用类的类方法alloc分配内存,调用类方法要写[ ],里面是类名和方法名,返回值需要用指针来接收,也就是说OC中的对象都要写个*。
比如:调用了Student的一个类方法alloc分配内存,并返回了一个指针来接收,其实alloc方法返回的是id类型,万能指针类型:
这与我们后面将要学习的,是构造类型的前身。Student *stu = [Student alloc] init]; 先分配内存空间,然后初始化。就是把new方法 拆分出来。
2>对象的使用其实就是赋值。
赋值必须实例变量的修饰符是@public。实例变量的修饰符还有@protected和@private,系统默认实例变量的类型是@protected,对于这两种类型的实例变量,我们需要调用方法为其赋值或者取值。
4、#import<Foundation/Foundation.h>
预处理指令import的两个作用:一是和include一样,完完全全的拷贝文件的内容;
二是可以自动检验头文件有没有被包含过,防止文件内容的重复拷贝(即使文件被多次包含,也只拷贝一份)。
NSLOG是日志输出,OC字符串以@开头,自动换行,int类型的占位符是@i。
OC中几乎所有关键字以@开头有特殊的。@autoreleasepool与内存管理有关。
5、set方法 和 get方法
1>set方法:给外界提供一个能修改内部成员变量属性的方法。可写不可读。
写法:是对象方法 - (void)set成员变量名(首字母大写):(参数类型)变量名;变量名与成员变量名不同。
是类方法:前面用+ 后面一样。
2>get方法:返回值成员变量的属性值。可读不可写。
写法:对象方法 - (类型与成员变量类型相同)原成员变量名;
返回值带下划线的成员变量名。
类方法 + 开头 后面一样。
oc中的小语法:一个参数对应一个冒号,冒号写在参数的前面。冒号也是方法名的一部分。
冒号的作用:分隔方法调用时参数的值,把后面的值传递给前面方法的形参。