2015-10-13 OC語言中的複合

複合,就是對象之間的組合,它不限制對象的個數,但至少有兩個對象。
spa

複合時,將要複合的對象(類實例化)的頭文件導入被複合的類的頭文件中,並在接口中定義複合對象的對象類型和設置方法的聲明。.net

具體細節用實例說明;3d

如 如今有一個汽車,它由輪胎和引擎組成orm

main.m
對象

#import <Foundation/Foundation.h>接口

#import "Car.h"get

#import "Engine.h"it

#import "Tire.h"io


int main() {class

   

    //實例化一個Car對象

    Car *car = [[Car alloc]init];

    

    //實例化一個Engine對象

    Engine *engine = [[Engine alloc]init];

    

    // 實例化一個Tire對象

    Tire *tire = [[Tire alloc]init];

    

    //給汽車設置發動機

    [car setEngine:engine];

    //給汽車設置輪胎

    [car setTire:tire];

    

    //汽車調用自身接口裏面的方法

    [car describeCar];

        

}


Engine.h:

#import <Foundation/Foundation.h>


@interface Engine : NSObject


 //engine的方法聲明

-(NSString *) describeI;


@end


Engine.m:

#import "Engine.h"


@implementation Engine


//engine 的方法的實現

-(NSString *)describeI

{

    return @"發動機";

}


@end


Tire.h

#import <Foundation/Foundation.h>


@interface Tire : NSObject


//tired的方法聲明

-(NSString *) describeII;



@end


Tire.m:

#import "Tire.h"


@implementation Tire


//tire的方法實現

-(NSString *)describeII

{

   return @"輪胎";

    // 也能夠返回一句話

    //return @"我是一個輪胎";

}


@end


Car.h:

#import <Foundation/Foundation.h>

// 頭文件中導入enginetire

#import "Engine.h"

#import "Tire.h"


@interface Car : NSObject

{

    //Car類裏面設置以類爲返回類型的類屬性,以前的通常是基本的幾種數據類型,規則和以前設置類屬性時同樣。

    Engine * _engine;

    Tire * _tire;

}


// 設置引擎方法的聲明

-(void) setEngine : (Engine *) engine;

-(Engine *) engine;


//設置輪胎方法的聲明

-(void) setTire : (Tire *) tire;

-(Tire *) tire;


//設置汽車對象的方法聲明

-(void) describeCar;

@end


Car.m:

#import "Car.h"


@implementation Car


//引擎方法的實現

-(void)setEngine:(Engine *)engine

{

    _engine = engine;

}


-(Engine *)engine

{

    return _engine;

}


//輪胎方法的實現

-(void)setTire:(Tire *)tire

{

    _tire = tire;

}


-(Tire *)tire

{

    return  _tire;

}


//汽車對象方法的實現

-(void) describeCar

{

    NSLog(@"我是一輛車,我有%@%@.",[_engine describeI],[_tire describeII]);

}

@end

相關文章
相關標籤/搜索