美文网首页八天学会OC
第02天OC语言(12):匿名对象

第02天OC语言(12):匿名对象

作者: liyuhong | 来源:发表于2017-07-20 14:54 被阅读6次

    一、概念

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

    二、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
    
    

    相关文章

      网友评论

        本文标题:第02天OC语言(12):匿名对象

        本文链接:https://www.haomeiwen.com/subject/qwcphxtx.html