Objective-C基础(面向对象-上)

来源:互联网 发布:字数统计 英文编程 编辑:程序博客网 时间:2024/05/14 20:06

 

一、面向对象概念

 

        Objective-C 是一种面向对象语言,而C语言是面向过程的语言,二者在解决问题时的思想不同

          下面以几个例子来说明面向对象和面向过程的区别:

           1.   以用电脑听歌为例

            a)  面向过程:

                  --- > 打开电脑

                  --- > 播放电脑中的歌曲

                  --- > 关闭电脑

 

            b)  面向对象:

                  --- > 开机

                  --- > 播放歌曲

                  --- > 关机

 

            2.  区别分析

              1)面向过程关注的是解决问题需要哪些步骤,而面向对象关注的是解决问题需要哪些对象

              2)两种思想都可以达到解决问题的目的,但是它们解决思路不一样。

            

            3.  现实中面向对象的例子

               --- > 想打电话\发短信   --> 找手机,不用分析电话要怎样才能拨通。

               --- > 去饭店吃饭  --- > 找服务员,不用分析怎么到厨房炒菜。

               --- > 汽车坏了  --- > 找汽车维修工,不用分析修车的步骤。

               --- > 用业内一句有内涵的话说就是 “万物皆对象”。

            4.  常用术语

               --> 面向过程  Procedure Oriented

               --> 面向对象 Objective Oriented , 简称 OO

               --> 面向对象编程  Object Oriented Programming ,简称OOP

 

 

 

二、 类和对象的关系

 

         1.  如何创建对象

             1) 类是很抽象的概念,在解决问题是需要有具体的对象,那么怎么来创建对象呢?

                  以汽车的例子来说:

              a)  首先,我们在造一辆车子时,必须要明确这些车子需要什么零件,在造车子之前要先造好这些零件

              b)  其次,我们要造一辆汽车,必须要明白这辆汽车能做什么,也就是这辆车有什么功能,它能实现什么功

 能,能不能满足生活的需要。然后把这些有相同特性的车抽象为一个类,然后可以根据个类型的车造出一辆具体的

车,通过这个过程,我们就利用一个类创建了一个具体对象。

            2.  OC中的面向对象

             1) OC中的类相当于图纸,用来描述一类事物。也就是说,要创建对象,必须现有类

             2) OC利用类来创建对象,对象是类的具体的存在

             3) 因此,面向对象解决问题应该是先考虑需要设计哪些类,再利用类创建多少个对象

            3.  需要设计哪些类,如何设计类

              1)  类的设计,只关心3样东西:

                 -->  事物名称(类名):  人 (Person)

                 -->  属性:身高(height)、年龄(age)

                 -->  行为(功能):跑(run)、吃东西(eat)   

             2)   类的设计 

                   a. 类名

                    -- > 类名的第一个字母必须大写

                    -- > 不能有下划线

                    -- > 多个英文单词,用驼峰标识

                    b.属性

                    c.行为(功能)

 

 

三、 类的声明和实现

        

        1.以汽车例子来说明类的声明和实现

          

            1) 分析汽车类的属性和功能

                    类名:Car

                    属性:轮胎个数、时速

                    行为:跑

                下面根据上述的描述变编写相应的代码

#import <Foudation/Foundation.h>//声明对象的属性、行为@interface Car{     int wheels;  // 汽车的轮胎个数          int speed;  //  汽车的时速}//声明对象的行为- (void)run;@end
@implementation Car // 行为的实现- (void)run{     NSLog(@"汽车跑起来了!");}@end
int main(){    // 创建对象   Car *c = [Car new];    //对象C调用方法run    [c run];    return 0;}


           在这段代码中,通过@interface 接口来声明了Car类,在“{}”内声明了轮胎数和时速两个属性,后边声明了run行为。这段代码就是类的声明,概括为:

             @interface 类名

             {

                        成员变量1;

                        成员变量2;

                              .......

               }

              - (方法类型)方法名;   (该方法是无参数类型的声明方式)

             @end

        类的声明就是按照上述格式,成员变量又称实例变量,而且成员变量必须放在括号里面。方法的声明以 ” - “ 开头来说明这是对象的方法。

 

        类的实现:

               @implementation  类名

                 - (方法的类型)方法名

                 {

                       方法的具体实现;

                 }

               @end

           对象在interface接口声明后 ,在implementation内实现。如该Car类在interface中声明了对象的run方法,并在implementation中实现了该对象的行为。

          后面的main函数:

                  在main函数中创建了Car对象,通过Car *c = [Car new]; 创建了对象c,通过对象c就可以调用对象的方法。

           在Objective-C中,想执行一些行为就写上一个中括号[行为执行者 行为名称],利用类来创建对象时是通过类的new行为来创建新对象。该程序定义了一个指针变量c, c指向的是Car类型的对象,[Car new]每次都会创建出一个新的对象,并且会返回新对象本身(新对象的地址)。

       

          2.   关于方法的一些总结

                --> 只要是Objective-C对象的方法,必须以 “ - ” 开头

                --> Objective-C方法中任何数据类型都必须用小括号( )扩住

                --> Objective-C方法中的小括号( ): 扩住数据类型 

                --> 对象方法的声明必须写在@interface和@end之间

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

                --> 对象方法只能由对象来调用

                --> 对象方法归类\对象所有

 

0 0