*  面向过程编程(Procedure Oriented programming)

 * :以事件为中心,关心完成该事件的详细步骤,一步一步如何实现

 面向对象编程(Object oriented programming)

 以事物为中心,也就是参与事件的参与者,设计事物的功能,而完成事件,只是事件的所有功能中的一个小功能

 //消息发送机制

    //[ receiver   Message (消息 , 相对于方法) ]

    //receiver :消息的接收者,   类 或者 对象

   // Message : 消息 , 相对于方法

    // 如何区分消息是给类还是给对象的消息

    //如果方法是一个 - 号 方法,--------对象

    //如果方法是一个 + 号方法, --------类.

 //创建对象分两步:

        //1.开辟空间.

        //通过 [person alloc] 在堆区开辟的空间才是真正的对象 ,只不过对于指针变量per 存储着堆区的首地址,通过它才能访问对象,所以我们把指针变量per 叫做对象 , (但是 真正的对象是堆区空间 ,per 本质上就是一个指针变量).

        //id 可以代表所有的对象类型 ,可以用对应类型的对象来接受.

 //    Person *per =   [Person alloc];

        //2.初始化(赋初值) inti方法 完成初始化操作 - 号方法,对象调用.

   //    per =  [per init];

        //通常创建对象操作连起来写

 //NO visible @interface for 'MobilePhone' declares the selector 'call'

        //产生原因: 没有找到给接收者发送的消息 ,(也就是没有找到方法 . h文件中没有该方法)

        //解决方法: 查看接受者和对应的消息是否匹配,如果不匹配,改成匹配, 或者给该类添加该方法.



  //类: 具有相同特征 和相同行为的事物的抽象,

        //类是一个抽象的概念在生活中不具体.

        //对象是累的实例, 也就是类的具体表现, 是具体的,生活中的万物都是对象.

        //描述一个类: 通过特征(静态属性) 以及行为(动态属性 ,动作)

        // insert code here...

        //@ 的作用: OC 的标志.



*  类的定义分为两部分: 

 1,类的接口部分 : 提供外部访问的接口, 相当于使用说明书

 2,类的实现部分:相当于功能的实现

 */

/**

 *  类的接口部分写下.h文件中

 接口部分的定义 : 

 1. 以@interface 开头,以@end 结束.只有把累的接口定义内容下在开始和结束之间才有效

 2. person 代表类名. 

 3. : 冒号表示继承.表示它有父类.

 4. NSObject 父类名

  //实例变量必须写在大括号之内 , 而且括号内只能写实例变量

    //对应描述一个类的特征.

    //实例变量 类似结构体中的结构体成员


 *  类的实现部分写在.m文件中

 类的实现部分 :

 1.@implementation 开头 @end 结束,实现内容必须写在中间才有效

 2.@implementation 后的person 是要实现的类(需要指定要对哪一个类做实现)

 Method definition for ' print:' not found. 

 原因 : print: 方法虽然在.h文件中声明了,但是没有在 . m 中实现

 解决方案: 将该方法在 .m文件中实现

 

类的实现其实就是实现该类的方法