溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

類與類之間調(diào)用Computer-CPU-Mouse--看懂它看懂類之間的調(diào)用

發(fā)布時間:2020-06-16 16:18:14 來源:網(wǎng)絡(luò) 閱讀:311 作者:M了個J 欄目:開發(fā)技術(shù)

舉個例子

大家會使用類并且會聲明并且實現(xiàn)類的setter 和 getter方法

那讓我們來更深入的學(xué)習(xí),類中包含另一個類的實現(xiàn)方法吧。


題目:


Computer類(電腦類)

該類用于描述一個具體的電腦類,可以對該類進(jìn)行一些基本的操作

屬性:

1. 電腦品牌   

2. 鼠標(biāo)   

3. CPU  


方法:

1、成員變量的set、get方法

2、電腦信息的詳細(xì)描述 包括電腦品牌 鼠標(biāo)信息,CPU信息等等


鼠標(biāo)類:

  1. 鼠標(biāo)品牌

  2. 類別

  3. 價格

CPU類:

  1. CPU型號

  2. 緩存

  3. 價格


解題思路:(有很多種,但大單位為程序員交流方便都做了一些規(guī)定,我們還是隨大流,讓大家養(yǎng)成一個良好的書寫習(xí)慣。)

定義三個類,因為并沒有完全一樣的屬性可以抽取而只是包含的關(guān)系

電腦有cpu和鼠標(biāo),但cpu和鼠標(biāo)不是電腦,所以電腦應(yīng)該是包含cpu和鼠標(biāo),而不是繼承。

在電腦屬性中包含cpu屬性和鼠標(biāo)屬性即可(當(dāng)然還可以后其他屬性,只是舉例說明,其他的就不列舉了)

在三個類中分別實現(xiàn)它的getter和setter

在電腦類中實現(xiàn)輸出電腦詳細(xì)信息的方法(- (void)showAllDetail;)

以下是實現(xiàn)和main函數(shù),聲明略去



#import <Foundation/Foundation.h>

#import "Mouse.h"

#import "CpuType.h"

//        Computer(電腦類)

//        該類用于描述一個具體的電腦類,可以對該類進(jìn)行一些基本的操作

//        屬性:

//        1. 電腦品牌

//        2. 鼠標(biāo)

//        3. CPU

@interface Computer : NSObject

{

    char * _brand;

    Mouse * _mouse;

    CpuType *_cpu;

}


// setmethod

- (void)setBrand:(char *)brand;

- (void)setMouse:(Mouse *)mouse;

- (void)setCpuType:(CpuType *)cpu;



// get method

- (char *)brand;

- (Mouse *)mouse;

- (CpuType *)cpu;



// 電腦信息的詳細(xì)描述 包括電腦品牌 鼠標(biāo)信息,CPU信息等等

// opration method

- (void)showAllDitatil;

@end

#import "Mouse.h"


@implementation Mouse

// set method

- (void)setBrand:(char *)brand{

    _brand = brand;

}

- (void)setType:(char *)type{

    _type = type;

}

- (void)setPrice:(float)price{

    _price = price;

}


// get method

- (char *)brand{

    return _brand;

}

- (char *)type{

    return _type;

}

- (float)price{

    return _price;

}


@end



#import "CpuType.h"


@implementation CpuType

// set method

- (void)setType:(char *)type{

    _type = type;

}

- (void)setCache:(int)cache{

    _cache = cache;

}

- (void)setPrice:(float)price{

    _price = price;

}



// get method

- (char *)type{

    return _type;

}

- (int)cache{

    return _cache;

}

- (float)price{

    return _price;

}

@end


#import <Foundation/Foundation.h>

#import "Computer.h"


int main(int argc, const char * argv[]) {

    @autoreleasepool {

//        練習(xí)2

//        Computer(電腦類)

//        該類用于描述一個具體的電腦類,可以對該類進(jìn)行一些基本的操作

//        屬性:

//        1. 電腦品牌

//        2. 鼠標(biāo)

//        3. CPU

//        

//        方法:

//        1、成員變量的set、get方法

//        2、電腦信息的詳細(xì)描述 包括電腦品牌 鼠標(biāo)信息,CPU信息等等

//        

//        鼠標(biāo)類:

//        鼠標(biāo)品牌

//        類別

//        價格

//        CPU類:

//        CPU型號

//        緩存

//        價格

        

        // 1.定義電腦對象

        Computer *computer = [[Computer alloc]init];

        char *comBrand = "lenovo";

        [computer setBrand:comBrand];

        

        // 2.定義鼠標(biāo)

        Mouse * mouse = [[Mouse alloc]init];

        char * mouseBrand = "jack";

        char * mouseType = "hit";

        float mousePrice = 1000;

        [mouse setBrand:mouseBrand];

        [mouse setType:mouseType];

        [mouse setPrice:mousePrice];

        [computer setMouse:mouse];

        

        // 3.定義CPU

        CpuType *cpu = [[CpuType alloc]init];

        char *cpuType = "UFO";

        int cpuCache = 199;

        float cpuPrice = 788.00;

        [cpu setType:cpuType];

        [cpu setCache:cpuCache];

        [cpu setPrice:cpuPrice];

        [computer setCpuType:cpu];

        

        // 4.打印信息

        [computer showAllDitatil];

        

    }

    return 0;

}


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI