//
// main.m
// CAR3
//
// Created by jimzhai on 13-1-24.
// Copyright (c) 2013年 jimzhai. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "Car.h"
int main(int argc, const char * argv[])
{
Car *car = [Car new];
[car print];
Engine *engine2 = [Engine new];
[engine2 setBrand:@"兰博基尼1026"];
[car setEngine:engine2];
Tire *newTire = [Tire new];
[newTire setBrand:@"永久"];
[car setTire:newTire atIndex:2];
[car print];
return 0;
}//
// Car.h
// CAR3
//
// Created by jimzhai on 13-1-24.
// Copyright (c) 2013年 jimzhai. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "Engine.h"
#import "Tire.h"
@interface Car : NSObject
{
Engine *engine;
Tire *tire[4];
}
- (void) print;
- (void) setTire: (Tire*)tire atIndex: (int)index;
- (Tire*)tireAtIndex: (int)index;
- (void)setEngine: (Engine*)engine;
- (Engine*)getEngine;
@end//Car
//
// Car.m
// CAR3
//
// Created by jimzhai on 13-1-24.
// Copyright (c) 2013年 jimzhai. All rights reserved.
//
#import "Car.h"
@implementation Car
- (id) init
{
if(self = [super init])
{
engine = [Engine new];
[engine setBrand:@"法拉利10016"];
tire[0] = [Tire new];
tire[1] = [Tire new];
tire[2] = [Tire new];
tire[3] = [Tire new];
for(int i = 0 ; i < 4 ; i++)
[tire[i] setBrand:@"米其林"];
}
return self;
}//init
- (void) print
{
NSLog(@"%@" , engine);
NSLog(@"%@" , tire[0]);
NSLog(@"%@" , tire[1]);
NSLog(@"%@" , tire[2]);
NSLog(@"%@" , tire[3]);
}// print
- (void) setTire:(Tire *)_tire atIndex: (int) index
{
if(index < 0 || index > 3)
{
NSLog(@"Index is wrong!");
exit(1);
}
tire[index] = _tire;
}//setTire
- (Tire*) tireAtIndex:(int)index
{
if(index<0||index>3)
{
NSLog(@"index is wrong");
exit(1);
}
return tire[index];
}//tireAtIndex
- (void)setEngine:(Engine *)_engine
{
engine = _engine;
}//setEngine
- (Engine*)getEngine
{
return engine;
}//getEngine
@end//Car
//
// Engine.h
// CAR3
//
// Created by jimzhai on 13-1-24.
// Copyright (c) 2013年 jimzhai. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface Engine : NSObject
{
NSString *brand;
}
- (void) setBrand: (NSString*) _brand;
- (NSString*) getBrand;
@end
//
// Engine.m
// CAR3
//
// Created by jimzhai on 13-1-24.
// Copyright (c) 2013年 jimzhai. All rights reserved.
//
#import "Engine.h"
@implementation Engine
- (NSString*) description
{
return [NSString stringWithFormat:@"I am engine ! my brand is %@",brand];
}//description
- (void) setBrand:(NSString *)_brand
{
brand = _brand;
}//setBrand
- (NSString*) getBrand
{
return brand;
}//getBrand
@end//Engine
//
// Tire.h
// CAR3
//
// Created by jimzhai on 13-1-24.
// Copyright (c) 2013年 jimzhai. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface Tire : NSObject
{
NSString *brand;
}
- (void) setBrand: (NSString*) brandl;
- (NSString*) getBrand;
@end//Tire
//
// Tire.m
// CAR3
//
// Created by jimzhai on 13-1-24.
// Copyright (c) 2013年 jimzhai. All rights reserved.
//
#import "Tire.h"
@implementation Tire
- (NSString*) description
{
return [NSString stringWithFormat:@"I am a tire. My brand is %@",brand];
}//description
- (void) setBrand:(NSString *)brandl
{
brand = brandl ;
}//setBrand
-(NSString*) getBrand
{
return brand;
}//getBrand
@end//Tire