最近想着没事自己学点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;
}
这段代码 为啥每次输出只能是最后一个数字,是哪里出错了呢...
#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;
}
这段代码 为啥每次输出只能是最后一个数字,是哪里出错了呢...
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 个对象都个赋值了其中的一个变量的值
当然是只有一个输出了