黑马程序员——走进面向对象

来源:互联网 发布:淘宝网副总裁张勤 编辑:程序博客网 时间:2024/05/16 11:52
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

        面向对象编程(Objective-Oriented Programming)的首字母缩写为OOP,这是一种编程技术,最初是为了编写模拟程序开发的。OOP很快就俘获了其他种类软件(比如涉及图形用户界面的软件)开发者的心。很快OOP就成为了业内一个非常重要的流行词。它被誉为具有魔力银色子弹,可以使编程工作变得简单而愉快。

        OOP是一种编程架构可构建由多个对象组成的软件。对象就好比存在于计算机中的小零件,它们通过互相传递信息来完成工作。Cocoa就是基于OOP概念,并且Objective-C是一种面向对象的语言。


有关术语


           类class)是一种表示对象类型的结构体。对象通过它的类来获取自身的各种信息,尤其是执行每个操作需要运行的代码。简单的程序可能仅包含少量的类,中等复杂的程序会包含实际各类。一般类名首字母都是大写。

        对象object)是一种包含值和指向其类的隐藏指针的结构体。运行中的程序通常都包含成百上千个对象。指向对象的变量通常不需要首字母大写。

        实例instance)是对象的另一种称呼。比方说circle对象也可以称为Circle类的实例。

        方法method)是为响应消息而运行的代码。根据对象的类,消息可以调用不同的方法。

        接口interface)是类为对象提供的特性描述。

        实现implemantation)是使接口能正常工作的代码。


类和对象之间的关系 


类(Class) 一个类由3个部分构成 类的名称:

       1)类名

       2)类的属性:一组包含数据的属性

       3)类的方法:允许对属性中包含的数据进行操作的方法

对象(Object)
        是系统中的基本运行实体 对象就是类类型(class type)的变量 定义了一个类,就可以创建这个类的多个对象 一个类就是具有相同类型的对象的抽象 


关于类的几个名词 


        .h:类的声明文件,用于声明成员变量、方法。类的声明使用关键字@interface和@end。 

         注意:.h中的方法只是做一个声明,并不对方法进行实现。也就是说,只是说明一下方法名、方 法的返回值类型、方法接收的参数类型而已,并不会编写方法内部的代码。 

         .m:类的实现文件,用于实现.h中声明的方法。类的实现使用关键字@implementation和@end。 

方法 

         方法的声明和实现,都必须以 + 或者 - 开头的。+ 表示类方法(静态方法),- 表示对象方法(动态方法) 在.h中声明的所有方法作用域都是public类型,不能更改 。

         方法的声明:

                                       -(void)insertObject:(id)anObject  atIndex:(NSUInteger)index

成员变量(实例变量\属性) 

             成员变量的常用作用域有3种: 
                                @public 全局都可以访问
                                @protected 只能在类内部和子类中访问

                                @private 只能在类内部访问 


类的声明(规定当前类的:类名、属性、方法)


1)声明类使用关键字 @interface 

2)声明类,我们通常放到.h的头文件中 

@interface 类名:父类名

{

//定义类的属性

}

//类的行为

@end


类的实现 


1)实现一个类 使用关键字:@implementation 

2)实现一个类通常放到.m的文件中 

3)实现类主要是对方法的具体实现 

@implementation 类名

//行为的具体实现

@end

下面代码实现了在main函数外声明实现一个类:

//车的类的声明@interface Car : NSObject{    @public    //类的属性    int wheel;    NSString *color;    int speed;    }    //类的方法@end@implementation Car//行为的具体描述@end


创建一个对象 


                         Car *car=[Car new]; 

在内存中干三件事:
        1.开辟存储空间 

        2.初始化成员变量(写在类声明大括号中的属性就叫成员变量,也叫实例变量) 

        3.返回指针地址 

 理解方式1:

        定义了一个Car类型的指针变量;

         指针变量指向新申请的空间。

理解方式2:

        用Car类实例化一个实例对象,对象的名称是p。

        并每一个对象中都有一份属于自己的属性。通过对象->对象成员(注意声明属性为:@public)的方式操作对象中的成员, 对其中一个对象的成员进行了修改。和另一个对象没有关系。 

下面代码创建了一个实例对象:

int main(int argc, const char * argv[]) {    @autoreleasepool {        // 创建Car类型的对象  car1        Car *car1=[Car new];        //创建一个对象,实质是返回一个指针(用指针间接访问实例变量)        car1->wheel=3;        car1->speed=150;        car1->color=@"蓝色";        NSLog(@"轮子数量:%d,速度:%d,颜色:%@",car1->wheel,car1->speed,car1->color);    }    return 0;}

最后控制台输出结果:



0 0
原创粉丝点击