Object-c 之 複合與存取

來源:互聯網
上載者:User

標籤:object-c

說到複合與存取,我做完這個例子,感覺就是類的集合,也沒什麼東西。

主Car類:

#import "Engine.h"#import "Tire.h"//汽車@interface Car : NSObject{    Engine *engine;    Tire *tires[4];}-(Engine *)engine;-(void)setEngine:(Engine *) newEngine;-(Tire *)tireAtindex:(int) index;-(void)setTile:(Tire *)tile atindex:(int) index;-(void)print;@end

#import "Car.h"@implementation Car-(id)init{    NSLog(@"Car init");    if(self=[super init]){        engine=[Engine new];        tires[0]=[Tire new];        tires[1]=[Tire new];        tires[2]=[Tire new];        tires[3]=[Tire new];            }    return (self);}-(Engine *)engine{    return engine;}-(void)setEngine:(Engine *)newEngine{    engine=newEngine;}-(void)setTile:(Tire *)tile atindex:(int)index{    if(index<0||index>3){        NSLog(@"bad index %d in setTire:atindex",index);        exit(1);    }    tires[index]=tile;}-(Tire *)tireAtindex:(int)index{    if(index<0||index>3){        NSLog(@"bad index %d in tireAtindex",index);        exit(1);    }    return tires[index];}-(void)print{    NSLog(@"%@",engine);    NSLog(@"%@",tires[0]);    NSLog(@"%@",tires[1]);    NSLog(@"%@",tires[2]);    NSLog(@"%@",tires[3]);}@end

Tire類

#import <Foundation/Foundation.h>//輪胎@interface Tire : NSObject@end

#import "Tire.h"@implementation Tire- (NSString *)description{    return (@"I'm a tire,I last a while!");}@end

Tire的子類 AllWeatherRadial.h

#import "Tire.h"@interface AllWeatherRadial :Tire@end

#import "AllWeatherRadial.h"@implementation AllWeatherRadial-(NSString *)description{    return (@"I'm a tire for rain or shine!");}@end

Engine類

#import <Foundation/Foundation.h>//引擎@interface Engine : NSObject@end

#import "Engine.h"@implementation Engine-(NSString *)description{    return (@"I'm a engine,wuwuwu");}@end

Engine子類 Slant6

#import "Engine.h"@interface Slant6 : Engine@end

#import "Slant6.h"@implementation Slant6-(NSString *)description{    return (@"I'm a slant6 veoom");}@end

主函數

#import"Car.h"#import"AllWeatherRadial.h"#import"Slant6.h"int main(int argc, const char * argv[]){    Car *car=[Car new];    Slant6 *engine=[Slant6 new];    [car setEngine:engine];        for(int i=0;i<4;i++){        Tire *tire=[AllWeatherRadial new];        [car setTile:tire atindex:i];    }    [car print];    return (0);}

運行結果


Object-c 之 複合與存取

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.