第02天OC语言(12):匿名对象
第02天OC语言(12):匿名对象
lyh2017iOS 发表于4个月前
第02天OC语言(12):匿名对象
  • 发表于 4个月前
  • 阅读 0
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 学生专属云服务套餐 10元起购>>>   

####一、概念

 匿名 就是没有名字,匿名对象 就是没有名字的对象

####二、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函数
int main(int argc, const char * argv[])
{
    
    // 1.有名字的对象
    // 只要用一个指针保存了某个对象的地址,我们就可以称 这个指针未某个对象
    // 称p为Person对象
    Person *p = [Person new];
    p->_age = 12;
    p->_name = @"lyh";
    [p say];
    // 2.没有名字的对象
    // 无论有没有名字, 只要调用 new 方法都会返回对象的地址
    // 每次 new 都会新开辟一块内存空间
    [Person new]->_age = 30;
    [Person new]->_name = @"lll";
    [[Person new] say];
    
    
#pragma 1.匿名对象的应用场景
    // 1.当对象只需要使用一次的时候, 就可以使用匿名对象
    IPhone *phone = [IPhone new];
    [phone brand];
    [[IPhone new]brand];
    
    
    // 3.2 匿名对象 可以作为方法的参数(实参)
    Person *p1 = [Person new];
    [p1 signal:[IPhone new]];
    return 0;
}

>>>Iphone
.h
#import <Foundation/Foundation.h>
@interface IPhone : NSObject
// 打印手机品牌
- (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

标签: OC语言
共有 人打赏支持
粉丝 2
博文 354
码字总数 137380
×
lyh2017iOS
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: