1. 为什么要使用类?
在OC的编程中引入了对象的概念,一切元素皆可以看做是对象,对象拥有属性和行为,而具有相同属性和行为的对象就分为一个类。
2. 如何设计类?
第一步:
定义类名:
类名的第一个字母必须是大写
不能有下划线
多个英文单词,用驼峰标识
第二步:
属性
行为(功能)
例如:电脑
类名:Computer
属性:band、expireDate
行为:open、close
3.在OC中使用类
(1)类的声明:声明对象的属性、行为
@interface类名 :父类
{用来声明对象属性(实例变量\成员变量,默认会初始化为0)
@public/@protect/@private
成员变量1;
成员变量2;
成员变量3;
}
-/+ (方法返回值类型)方法名:(参数类型)形参变量名1 :(参数类型)形参变量名1;
-/+ (方法返回值类型)方法名:(参数类型)形参变量名1 :(参数类型)形参变量名1;
@end
说明:
@public可以让外部的指针间接访问对象内部的成员变量
@protect可以使这个类的子类对象访问接访问对象内部的成员变量
@private只有这个类的方法可以访问
只要是OC对象的方法,必须以减号 -开头
OC方法中任何数据类型都必须用小括号()扩住
OC方法中的小括号():括住数据类型
(2)类的实现:实现类声明中定义的方法,即用来实现@inteface中声明的方法
@implementation类名
-/+ (方法返回值类型)方法名:(参数类型)形参变量名1 :(参数类型)形参变量名1
{
方法1;
}
-/+ (方法返回值类型)方法名:(参数类型)形参变量名1 :(参数类型)形参变量名1;
{
方法2;
}
@end
(3)方法注意点小结
a.对象方法都是以减号 -
b.对象方法的声明必须写在@interface和@end之间
c.对象方法的实现必须写在@implementation和@end之间
d.对象方法只能由对象来调用
e.对象方法归类\对象所有
f.方法(行为):方法名、参数、返回值(声明、实现)
h.OC方法中,一个参数对应一个冒号
i.方法名包括冒号
(4)成员变量注意点
a.不允许在类的实现中初始化成员变量
b.默认成员变量是protect
c.想要访问private成员变量,可以通过对象方法来实现
4.创建和使用对象
(1)实例化一个对象:
[类名 new];
使用注意:该类必须继承自NSObject才可以使用父类的new方法,该语句的返回值是一个对象。
(2)使用对象
类名 *p = 对象;
oc中要获取和操作对象,必须使用一个指针变量指向这个对象,然后用指针来操作对象。
(3)实例化对象同时操作它
可以这样直接实例化一个对象,并用一个指针指向它:
类名 *p = [类名 new];
(4)访问对象的成员变量:
p->成员变量名
(5)使用对象方法:
[p 方法名]
5.函数与类和对象的关系
(1)函数能写在文件中的任意位置(@interface和@end之间除外),函数归文件所有
(2)函数调用不依赖于对象
(3)函数内部不能直接通过成员变量名访问某个对象的成员变量
6.匿名对象
[类名 new]->成员变量名 = 值;
上面代码创建的对象就是匿名对象,在编程中很少使用,尽量不要使用这样的方式实例化对象。