OC中类的类、方法

OC中类的定义分为两部分:

1)累的声明(规定当前类的:类名、属性、行为)

 1   @interface 类名:父类名
 2 
 3   {
 4 
 5     //定义类的属性
 6   }
 7 
 8   //类的方法
 9 
10   @end

2)类的实现:

1 @implementation 类名
2 
3 //方法的实现
4 
5 @end

方法的声明格式:

 

方法的调用:

使用对象的调用方法就是OC的消息机制

OC语言中采用特定的语言调用类或者实例(对象)的方法称为消息发送或方法调用。

OC中方法调用种:

[类名或者对象名   方法名];
Car *car = [Car new];

OC中的方法分为两种:对象方法、类方法

对象方法:

1)对象方法以-开头如 -(void)xx;

2)对象方法只能由对象调用

3)对象方法中可以访问当前对象的成员变量

4)调用格式 [对象名   对象方法名];

类方法:

1)类方法以+开头  如  +(void)xx;

2)类方法只能由类来调用

3)类方法不能访问实例(成员)变量,因为类方法由类来调用,

  并没有创建存储空间来存储类中的成员变量。

4)调用格式[类名   类方法名];

5)类方法的好处和适用场合:

    不依赖与对象,执行效率更高,因为不用创建对象,节省内存空间。

 

带参数的方法的定义和实现:

 

C语言函数和OC对象方法的区别:

 

 

在工作中,通常把不同的类放在不同的文件中,每个类的声明和实现分开,声明写在.h头文件中,

实现写在对应的.m文件中去,类名是什么,文件名的前缀就是什么。

 

假设有两个类,分别是Person类和Dog类,则通常会有下面五个文件:

1)Person.h  Person类声明文件

2)Person.m  Person类实现文件

3)Dog.h  Dog类实现文件

4)Dog.m  Dog类实现文件

5)Main.m主函数(程序入口)

在主函数以及类的实现文件中只要使用#import包含相应的头文件。

 1 Dog类
 2 
 3 -(void)run;
 4 
 5 想调用run方法,
 6 
 7 Dog * dog = [Dog new];
 8 [dog run];
 9 
10 Dog类
11 
12 +(void)run;
13 
14 想调用run方法,
15 
16 [Dog run];

 

OC匿名类的使用方法:

 1                 先定义一个车类
 2         @interface car:NSObject
 3         {
 4                 int _speed;
 5         }
 6         -(void) stop;
 7         @end
 8         //实现类
 9         @implementation car
10         -(void)stop
11         {
12                 NSLog(@“ting”);
13         }
14         @end
15         @interface person:NSObject
16         -(void) gohome
17 car *)car;
18         @end
19         @implementation person
20         -(void)gohome
21 car*)car
22         {
23                 [car stop];
24         }
25         @end
 1 /*
 2                 1、使用匿名类访问实例变量(只能访问一次)        
 3                         以后再访问,实际上访问新的空间
 4                 [car new]->_speed = 250;
 5                 NSLog(@“_speed = %d”,[car new]->_speed );        //打印结果为0,因为匿名类只能访问一次,
 6                 2、使用匿名的类,可以调用方法
 7                 [[car new] stop];  == [[[car alloc ] init] stop]
 8                 [[car alloc] init]  等价与[car new]
 9 
10 匿名类作为方法的参数
11         person *p = [person new];
12         car *c = [car new];
13         1、[p go home:[car new]];
14         2、[[person new] go home:[car new]];
15 
16 
17 */

匿名类的优缺点:

  优点:可以简化代码,方便方法调用

  缺点:匿名对象实例化以后,只能正确的使用成员变量一次

 

posted @ 2015-07-02 00:21  预估计  阅读(631)  评论(0编辑  收藏  举报