观察下面这段代码和以前代码的区别,主要是看self ; 一般self 是代表当前 对象。

1.#import <Foundation/Foundation.h>
2.
3.@interface Animal: NSObject
4.
5.@property int Speed, Legs;
6.
7.-(void) display;
8.
9.-(void) set_speed:(int) speed o:(int) legs ;
10.
11.@end
12.
13.@implementation Animal
14.
15.@synthesize Speed,Legs;
16.
17.-(void) display
18.{
19. NSLog(@"run speed %i",Speed);
20.    NSLog(@"I have %i legs",Legs);
21.}
22.
23.-(void) set_speed:(int) speed o: (int) legs
24.{
25.    Speed = speed;
26.    Legs  = legs;
27.    [self display];
28.}
29.@end
30.
31.
32.int main(int argc, const char * argv[])
33.{
34.
35.    @autoreleasepool {
36.        Animal *dog;
37.       
38.        dog = [Animal alloc];
39.        dog = [dog init];
40.       
41.       
42.        [dog set_speed:30 o: 4];
43.       
44.      
45.        Animal * rabbit = [[Animal alloc] init];
46.       
47.        [rabbit set_speed:56 o:4];
48.       
49.       
50.        // insert code here...
51.        NSLog(@"Hello, World!");
52.       
53.    }
54.    return 0;
55.}