OC 複合

//
//  main.m
//  oc02_複合
//
//  Created by Vision on 9/12/14.
//  Copyright (c) 2014 Vision. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "Computer.h"
#import "Mouse.h"
#import "Monitor.h"
#import "Keyboard.h"
#import "Host.h"
int main(int argc, const char * argv[])
{

    @autoreleasepool {
        
        Monitor *monitor = [[Monitor alloc]initWithPrice:700];
        Host *host = [[Host alloc]initWithPrice:3000];
        Mouse *mouse = [[Mouse alloc]initWithPrice:400];
        Keyboard *keyboard = [[Keyboard alloc]initWithPrice:100];
        
        //複合類對象的創建
        Computer *myComputer = [[Computer alloc]initWithMonitor:monitor keyboard:keyboard host:host mouse:mouse];
        NSLog(@"%f",[myComputer totalPrice]);
        
    }
    return 0;
}
<pre name="code" class="objc">//
//  Computer.h
//  oc02_複合
//
//  Created by Vision on 9/12/14.
//  Copyright (c) 2014 Vision. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "Monitor.h"
#import "Host.h"
#import "Mouse.h"
#import "Keyboard.h"
@interface Computer : NSObject
{
    //將其他類的對象,作爲複合類的成員變量
    Monitor *_monitor;
    Keyboard *_keyboard;
    Host *_host;
    Mouse *_mouse;
    

}

///複合類的初始化方法
- (id)initWithMonitor:(Monitor *)monitor
             keyboard:(Keyboard *)keyboard
                 host:(Host *)host
                mouse:(Mouse *)mouse;
///合算總價格
- (float)totalPrice;

@end

//
//  Computer.m
//  oc02_複合
//
//  Created by Vision on 9/12/14.
//  Copyright (c) 2014 Vision. All rights reserved.
//

#import "Computer.h"

@implementation Computer

///複合類的初始化方法
- (id)initWithMonitor:(Monitor *)monitor
             keyboard:(Keyboard *)keyboard
                 host:(Host *)host
                mouse:(Mouse *)mouse
{
    _monitor = monitor;
    _keyboard = keyboard;
    _host = host;
    _mouse = mouse;
    return self;
    
}
///合算總價格
- (float)totalPrice
{
    float total = [_monitor price] + [_host price] + [_mouse price] + [_keyboard price];
    return total;
}

@end

//
//  Mouse.h
//  oc02_複合
//
//  Created by Vision on 9/12/14.
//  Copyright (c) 2014 Vision. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface Mouse : NSObject
{
    float _price;
}
///初始化方法
- (id)initWithPrice:(float)price;

- (float)price;
@end

//
//  Mouse.h
//  oc02_複合
//
//  Created by Vision on 9/12/14.
//  Copyright (c) 2014 Vision. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface Mouse : NSObject
{
    float _price;
}
///初始化方法
- (id)initWithPrice:(float)price;

- (float)price;
@end

//
//  Monitor.h
//  oc02_複合
//
//  Created by Vision on 9/12/14.
//  Copyright (c) 2014 Vision. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface Monitor : NSObject
{
    float _price;
}
///初始化方法
- (id)initWithPrice:(float)price;
- (float)price;
@end

//
//  Monitor.m
//  oc02_複合
//
//  Created by Vision on 9/12/14.
//  Copyright (c) 2014 Vision. All rights reserved.
//

#import "Monitor.h"

@implementation Monitor
- (id)initWithPrice:(float)price
{
    _price = price;
    return self;
}
- (float)price
{
    return _price;
}
@end
//
//  Host.h
//  oc02_複合
//
//  Created by Vision on 9/12/14.
//  Copyright (c) 2014 Vision. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface Host : NSObject
{
    float _price;
}
///初始化方法
- (id)initWithPrice:(float)price;
- (float)price;
@end


//
//  Host.m
//  oc02_複合
//
//  Created by Vision on 9/12/14.
//  Copyright (c) 2014 Vision. All rights reserved.
//

#import "Host.h"

@implementation Host
- (id)initWithPrice:(float)price
{
    _price = price;
    return self;
}
- (float)price
{
    return _price;
}
@end

//
//  Keyboard.h
//  oc02_複合
//
//  Created by Vision on 9/12/14.
//  Copyright (c) 2014 Vision. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface Keyboard : NSObject
{
    float _price;
}
///初始化方法
- (id)initWithPrice:(float)price;
- (float)price;
@end

//
//  Keyboard.m
//  oc02_複合
//
//  Created by Vision on 9/12/14.
//  Copyright (c) 2014 Vision. All rights reserved.
//

#import "Keyboard.h"

@implementation Keyboard
- (id)initWithPrice:(float)price
{
    _price = price;
    return self;
}
- (float)price
{
    return _price;
}
@end




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章