OC学习之 类和对象

来源:互联网 发布:杜莎夫人蜡像馆 知乎 编辑:程序博客网 时间:2024/05/29 19:06

一、什么是面向对象?                                                                                        

提到面向对象,就要知道两个概念,一个是类,一个就是对象。

类:

类定义了一个事物的抽象特点,比如事物的属性和一些行为。比如“狗”这个类,就会有一些基础的属性,它毛的颜色,它的个头,它的性别等;也会有它的一些行为,比如是否可以生育,是否会咬人等等。类的作用就是为程序提供出一个模板,类里的属性称作成员行为称作方法

对象:

对象就是类的实例,通过类创建出来对象。比如“狗”这个类列举了狗的属性和行为,但是它无法实现,它没有颜色,没有身高,不能叫唤等等。而对象就是把这些属性和行为具体化,比如一条叫Tom的黄色的狗。

需要注意的是,当创建一个类的时候,系统不会给他分配存储空间,只会给对象分配,可以想象,抽象的类当然是不需要内存的,但是具体的对象则是需要的。

面向对象和面向过程的区别                                                                                    

面对过程:注重的是步骤

面对对象:注重的是对象

先设计好类,利用类来设计多个对象,类就相当于图纸

类名/属性/行为


二、OC中的类

1、类的声明

——包括类的成员变量、方法、类方法的声明

         (1)、一般形式:

         @interface 类名 : NSObject

         //成员变量的声明

         {

                 //@public

  类型 成员变量名1;

  类型 成员变量名2;

  ……

}

//方法的声明

- (类型)方法名;

         //类方法的声明

         + (类型)方法名;

@end

(2)、说明:

1)、NSObjectOC库中基类,可以让声明的类具备创建对象的能力;

2)、成员变量必须放在{ }中,方法的声明必须放在{ }外,两者都要放在@interface@end之间;

3)、声明的成员变量默认初始化为0

4)、@public:使类创建的对象的成员变量可以被外界访问,没有则默认为protected;

2、类的实现

——包括对象方法、类方法的实现

(1)、一般形式:

@implementation  类名

- (类型)方法名

{

  ……

}

+ (类型)方法名

{

  ……

}

@end

例如:

 

三、OC对象

1、对象的创建

一般形式:

类名  *对象名 = [类名 new];

如:Person *p = [Person new];

四、对象方法和函数的区别                                                                                          

1.对象方法都是以减号开头

2.对象方法都必须声明在@interface和@end之间

   对象方法的实现必须声明在@implementation和@end之间

3.对象方法只能由对象来调用

4.对象方法归类\对象所有

函数

1.函数可以卸载文件的任意位置,函数归文件所有,比如函数写在@implementation和@end之间,然后也可以在main函数里调用

2.但是函数不能声明在@interface和@end之间

3.函数调用不以来于对象

4.函数内部不能直接通过成员变量名访问某个成员变量

五、类方法                                                                                                                 

类方法和对象方法差不多,都需要在@interface里声明,在@implementation里定义

类方法的都是以”+”开头的,而且不用创建对象,直接用类调用

对象方法只能用对象来调用 


类方法和对象方法的对比


注意:对象方法中可以调用类方法

在类方法中调用自己,可以引发死循环



0 0
原创粉丝点击