一们颜、概念
匿名 就是沒有名字,匿名對象 就是沒有名字的對象
二吕朵、code
>>>main.m
#pragma mark 12-匿名對象
#pragma mark 概念
/*
匿名 就是沒有名字,匿名對象 就是沒有名字的對象
*/
#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[])
{
// 1.有名字的對象
// 只要用一個指針保存了某個對象的地址,我們就可以稱 這個指針未某個對象
// 稱p為Person對象
Person *p = [Person new];
p->_age = 12;
p->_name = @"lyh";
[p say];
// 2.沒有名字的對象
// 無論有沒有名字, 只要調(diào)用 new 方法都會返回對象的地址
// 每次 new 都會新開辟一塊內(nèi)存空間
[Person new]->_age = 30;
[Person new]->_name = @"lll";
[[Person new] say];
#pragma 1.匿名對象的應(yīng)用場景
// 1.當(dāng)對象只需要使用一次的時候, 就可以使用匿名對象
IPhone *phone = [IPhone new];
[phone brand];
[[IPhone new]brand];
// 3.2 匿名對象 可以作為方法的參數(shù)(實參)
Person *p1 = [Person new];
[p1 signal:[IPhone new]];
return 0;
}
>>>Iphone
.h
#import <Foundation/Foundation.h>
@interface IPhone : NSObject
// 打印手機(jī)品牌
- (void)brand;
- (void)callWithNumber:(int)number;
@end
.m
#import "IPhone.h"
@implementation IPhone
- (void)brand
{
NSLog(@"蘋果品牌");
}
- (void)callWithNumber:(int)number
{
NSLog(@"打電話給 %i",number);
}
@end
>>>Person
.h
#import <Foundation/Foundation.h>
#import "IPhone.h"
@interface Person : NSObject
{
@public
int _age;
NSString *_name;
}
- (void)say;
- (void)signal:(IPhone *)phone;
@end
.m
#import "Person.h"
// .h 和 .m 之間的切換 command + control + 上下箭頭
@implementation Person
- (void)say
{
NSLog(@"age = %i,name = %@",_age,_name);
}
- (void)signal:(IPhone *)phone
{
[phone callWithNumber:12344];
}
@end
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者