------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
1、类和和对象的概念
【1】将现实中人们要研究或计算的任何事物的相关属性和行为封装起来,就是对象(个人总结,如果有误请谅解);
【2】类是抽象的对象,对象是具体化的类。换种说法就是类相当于对象的图纸,用来描述一种事物,也就是说要创建对象就得先有类;
2、如何设计类和对象
【1】对象:对我们要研究或计算的事物进行分析,从中抽取出我们需要的相关属性和行为;
用MJ老师课堂上讲过的例子,如何创造汽车对象:
a)需要先有汽车的建造图纸,图纸上描述清楚汽车应该具备的属性和功能(行为)
属性:轮子数、时速
行为:跑
b) 然后再根据图纸上的描述生成汽车
c) 每一辆汽车都是对象,都有自己具体的属性值,都是图纸的实例
d) 图纸是抽象的,汽车是具体的。图纸是对汽车对象的高度概括
【2】类:拥有相同属性和行为的事物都可以抽象出一个类,类除了定义属性和行为还要有一个类名(事物名称);
【1】如何创建OC中的类
OC中的类的创建分为两个步骤:
1)类的声明
a)抽象过程:定义一个车类,拥有2个属性:轮子数、时速,1个行为:跑
b)类名、属性名和方法名遵守规则:准确,且可读性强。其中类名的首字母应大写;
c)类的生命以@interface开始(具体书写格式见例程1);
d){ }中声明的变量,称为成员变量。默认值为0;
e)必须以@end为结束标志,类拥有的方法在}和@end之间进行声明(声明中不包含实现);
// 例程1 类的声明
@interface Car : NSObject
{
int wheels; // 轮子
int speed; // 速度
}
- (void)run; // 跑的行为
@end
2)类的实现
a)以@implementation开始(具体书写格式见例程2);
// 例程2 类的实现
@implementation Car
- (void) run
{
NSLog(@"%i个轮子,%i时速的车子跑起来了", wheels, speed);
}
@end
【2】如何创建OC中的对象
利用NSObject类共有的new方法,new方法每次都会创建出新的对象,指针car1用来指向新创建出来的Car类的对象(见例程3)。
// 例程3
Car *car1;
Car1 = [Car new];
通常我们把两句合成一句来写,使代码看起来更加简洁(见例程4)。
// 例程4
Car *car1 = [Car new];
4、类的声明与实现的意义
@interface就像钟表的表面;
@implementation 就像钟表内部元件组成的机械;
5、类方法与对象方法
关于类不能调用成员变量的个人见解:
类就像图纸,对象就像产品。
类方法是写在图纸上的,所以它没有产品拥有的零部件(成员变量);
对象方法才能拥有自己的零部件(成员变量);
所以类方法可以传外界的参数写进去实现,但本身不包含成员变量,没有的东西自然不能调用成员变量了;
对象方法除了传进去的形参以外,还包含了自身拥有的成员变量,所以就可以调用成员变量了;
类方法的效率更高,所以一般来讲只要不需要调用自己的成员变量的(类是抽象的东西,当然没有成员变量)就尽量用类方法来实现。