您的位置:首页 > 职场人生

黑马程序员------OC 面向对象和面向过程思想(基础)

2015-07-28 21:22 363 查看
   ——Java培训、Android培训、iOS培训、.Net培训、期待与您交流!
——-

 

类和对象

面向对象编程中有两个重要的概念:类和对象。对象就是根据类创建出来的。 

类是抽象的不是具体的某一个事物,它描述了事物的属性和功能,我们根据类的描述便可以创造出一个具体的对象。就像现实生活中我们画图纸设计一辆

车,图纸上包括车的属性:轮子数、时速、等等,以及车的功能(行为):启动、跑、倒车、熄火、等等,这个就相当于面向对象编程中的类。我们可以

根据图纸的设计制造出具体的事物:汽车,这相当于面向对象编程中的对象。 

类的设计

我们在类的设计时,必须关心三个方面:事物名称(类名)、属性(成员变量或称实例变量)、行为(方法)。 

比如设计一个人类: 

事物名称(类名):人(person) 

属性(成员变量):身高(height)、年龄(age) 

行为(方法):跑(run)、跳(jump) 

类名有几点要注意:1.类名的第一个字母必须是大写;2.类名当中不能带有下划线;3.类名如果是由多个英文单词组成,则要使用驼峰标识

类的申明和实现

例如:

 #import <Foundation/Foundation.h>//用#import关键词导入Foundation框架,是这个系统框架中的类库

@interface
Car :
NSObject/*@interface 表示我们要声明一个类,后面跟类名,":"后面跟的是基类名,所有的类都继承它,它封装了一些东西供继承它的子类使用*/

{

   
int wheels;//声明成员变量即类的属性:表示也整型车轮数

    int speed;//表示汽车车速

}

- (void)run;//声明一个对象方法(行为),前面是“-”号则代表这是一个对象方法只能由具体的对象来调用

+ (void)test;//声明一个类方法,它可被类名直接调用,类方法不能直接访问成员变量

@end//@end意味着类的声明部分结束

@implementation
Car/*@implementation表明这是类的实现部分,类的声明和实现可以分开写(不同的文件当中也可),但是声明必须在main函数前面*/

- (void)run

{

   
NSLog(@"车子跑");//类的实现里面通常写方法怎么来完成该动作

}

+ (void)test

{

    NSLog(@"做模拟实验");}  //NSLog表示输出

@end//@end表明类的实现结束

OC 面向对象的实现

例如

#import <Foundation/Foundation.h>

@interface
Car : NSObject

{

    @public

    int wheels;

    int speed;

}

- (void)run;

+ (void)test;

@end

@implementation Car

- (void)run

{

    NSLog(@"%d个轮子的车跑起来了时速达%d公里每小时",
wheels, speed);

}

+ (void)test

{

    NSLog(@"做模拟实验");

}

@end

int main()

{

    [Car test];//用类名直接调用类方法,不依赖于对象

    Car *car;//声明一个指向Car类型的指针变量

    car = [Car new];//调用类的方法,直接赋值给指针变量car

    car->wheels =
4;//car类型变量直接指向wheels并直接赋值为4

    car->speed = 200;//给成员变量speed赋值为200

    [car run];//用调用对象方法,让汽车跑起来了

    return 0;

}

类方法和对象方法的区别 

1.类方法: 

1> 以加号“+”开头; 

2> 只能由类名调用,对象不能调用; 

3> 类方法中不能直接访问成员变量(实例变量); 

4> 可以在类方法中通过调用对象方法访问成员变量; 

5> 当不需要访问成员变量的时候尽量用类方法。 

对象方法: 

1> 以减号“-”开头; 

2> 只能由对象调用,没有对象,这个方法根本不可能被执行; 

3> 对象方法能访问实例变量。

oc语言中的方法与函数的区别: 

1. oc方法只能声明在@interface和@end之间,只能实现在@implementation和@end之间。不能独立于类存在; 

2. 函数不属于类,跟类没有联系,函数只归定义函数的文件所有; 

3. 函数不能访问oc对象的成员变量,指向对象的指针可以作为函数的返回值也可以作为函数的参数。 

 

@try 在oc异常捕捉机制

异常:程序的运行的时候有bug 捕捉机制,排除错误

@catch 

 捕捉具体的异常类型    捕捉一个比较重要的异常类型

@finally

不管有没有异常都会执行该命令

类的基本语法

类 的声明(规定的当前的类名,属性,行为)语法

@interface 类名:父类名

{

//定义类的属性

}

 //类的行为(必须写在大括号外)

@end 

类的实现(实现具体的行为)

@implementation类名

//行为的具体实现

@end 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: