最近想着没事自己学点OC语言,之前有点jave基础.就买了本书边学边看.现在遇到点问题,如下:
#import <Foundation/Foundation.h>@interface Car : NSObject-(void) print;
-(void) buyBenz:(int) a;
-(void) driveBmw:(int) b;
-(void) washBuick:(int) c;
-(void) addoilAudi:(int) d;
-(void) sellPhaeton:(int) e;
@end@implementation Car
{
    int benz;
    int bmw;
    int buick;
    int audi;
    int phaeton;
}
-(void) print
{
    NSLog(@"I bought a car cost %i,drive it %i day one week,wash it %i everytime,addoil %i/time,and at last I sold it out for %i",benz,bmw,buick,audi,phaeton);}-(void) buyBenz:(int)a
{
    benz=a;
}
-(void) driveBmw:(int)b
{
    bmw=b;
}
-(void) washBuick:(int)c
{
    buick=c;
}
-(void) addoilAudi:(int)d
{
    audi=d;
}
-(void) sellPhaeton:(int)e
{
    phaeton=e;
}@end
int main(int argc, const char * argv[]) {    @autoreleasepool {
        Car*buy=[[Car alloc] init];
        Car*drive=[[Car alloc] init];
        Car*wash=[[Car alloc] init];
        Car*addoil=[[Car alloc] init];
        Car*sell=[[Car alloc] init];
        
        [buy buyBenz:300000];
        [drive driveBmw:80];
        [wash washBuick:10];
        [addoil addoilAudi:80];
        [sell sellPhaeton:280000];
        
        
        [buy print];
        [drive print];
        [wash print];
        [addoil print];
        [sell print];
        
        
       
    }
    return 0;
}
这段代码 为啥每次输出只能是最后一个数字,是哪里出错了呢...

解决方案 »

  1.   

    你干嘛实例化那么多 实例化car就好了
      

  2.   

    你每次都只是初始化了一个Car对象的一个实例对象而已
      

  3.   

    Car*buy=[[Car alloc] init];
            Car*drive=[[Car alloc] init];
            Car*wash=[[Car alloc] init];
            Car*addoil=[[Car alloc] init];
            Car*sell=[[Car alloc] init];你这是定义了 5 个 类的对象,
    事实上你是没搞清楚 类 和 对象 的区别[buy print];
            [drive print];
            [wash print];
            [addoil print];
            [sell print];你这是分别打印 5 个类的对象,
    而你都只是 给5 个对象都个赋值了其中的一个变量的值
    当然是只有一个输出了
      

  4.   

    还说你有java基础的,都是面向对象,你这是多少个对象了?好好学习呀