OC語言day02-13匿名對(duì)象

pragma mark 匿名對(duì)象

pragma mark 概念

/**
 匿名 就是沒有名字
 切換一個(gè)類的 .h .m文件 快捷鍵:control + command + 上、下
 */

pragma mark 代碼

#import <Foundation/Foundation.h>
#pragma mark 類
#import "Person.h"
#import "IPhone.h"
#pragma mark main函數(shù)
int main(int argc, const char * argv[])
{
    
    // 匿名就是沒有名字, 匿名對(duì)象 就是沒有名字的對(duì)象
#warning 普通對(duì)象
    // 1.有名字的對(duì)象
    // 只要用一個(gè)指針 保存了某個(gè)對(duì)象的地址,我們就可以稱這個(gè)指針為某個(gè)對(duì)象
    Person *p = [Person new]; // offc1
    p->_age = 24;
    p->_name = @"lyh";
    
    [p say];
#warning 什么是匿名對(duì)象
    // 2.沒有名字的對(duì)象
    // 無論有沒有名字, 只要調(diào)用了 new 方法都會(huì)返回對(duì)象的地址
    // 每次new 都會(huì)新開辟一塊存儲(chǔ)空間
    [Person new]->_age = 24;
    [Person new]->_name = @"Lyh";
    [[Person new] say];
    
#warning 匿名對(duì)象的使用場(chǎng)景
    // 3.匿名對(duì)象的應(yīng)用場(chǎng)景
    // 3.1 當(dāng)對(duì)象只需要使用一次的時(shí)候 就可以 使用匿名對(duì)象
    
    // 創(chuàng)建對(duì)象 使用方法
    /*
    IPhone *phone = [IPhone new];   // 返回地址 offc1   則 phone = offc1
    [phone brand];                  // [offc1 brand]
    */
    
    // 使用匿名對(duì)象
    [[IPhone new] brand];   //  [offc1 brand];
    
    // 3.2 匿名對(duì)象 可以作為方法的參數(shù)(實(shí)參)
    Person *p1 = [Person new];
    // 通過創(chuàng)建對(duì)象來作為方法的實(shí)參 (如果只是調(diào)用1次 可以使用匿名對(duì)象)
    /*
    IPhone *phone1 = [IPhone new];
    [p1 signal:phone1];
    */
    [p1 signal:[IPhone new]];
    return 0;
}
Person.h // 人類
#import <Foundation/Foundation.h>
#import "IPhone.h"
/**
 *  切換.h .m文件 快捷鍵:control + command + 上、下
 */
@interface Person : NSObject
{
    @public
    int _age;
    NSString *_name;
}

-(void)say;

// 打電話
- (void)signal:(IPhone *)phone;
@end
#import "Person.h"

@implementation Person
-(void)say
{
    NSLog(@"age = %i name = %@",_age,_name);
}

- (void)signal:(IPhone *)phone
{
    [phone callWithNumber:22334455];
}
@end

IPhone.h // 手機(jī)類
#import <Foundation/Foundation.h>

@interface IPhone : NSObject

- (void)brand;
// 電話撥打的號(hào)碼
- (void)callWithNumber:(int)number;
@end
#import "IPhone.h"

@implementation IPhone

- (void)brand
{
    NSLog(@"蘋果手機(jī)");
}

- (void)callWithNumber:(int)number
{
    NSLog(@"打電話給%i",number);
}
@end

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容