• OC1_协议语句


    //
    //  Programmer.h
    //  OC1_协议语句
    //
    //  Created by zhangxueming on 15/6/24.
    //  Copyright (c) 2015年 zhangxueming. All rights reserved.
    //
    
    #import <Foundation/Foundation.h>
    #import "Coder.h"//遵守协议 必须包含协议所在的头文件
    
    @interface Programmer : Coder <Coder>
    
    @end
    
    
    //
    //  Programmer.m
    //  OC1_协议语句
    //
    //  Created by zhangxueming on 15/6/24.
    //  Copyright (c) 2015年 zhangxueming. All rights reserved.
    //
    
    #import "Programmer.h"
    
    @implementation Programmer
    
    - (void)writeCode
    {
        NSLog(@"作为一个码农, 我努力写代码");
    }
    
    - (void)debugCode
    {
        NSLog(@"这个程序有点问题,我再调试一下");
    }
    
    - (void)report
    {
        NSLog(@"老板这个程序调试OK, 可以上线了");
    }
    
    @end
    //
    //  Coder.h
    //  OC1_协议语句
    //
    //  Created by zhangxueming on 15/6/24.
    //  Copyright (c) 2015年 zhangxueming. All rights reserved.
    //
    
    #import <Foundation/Foundation.h>
    
    @protocol Coder <NSObject>
    
    - (void)writeCode;
    - (void)debugCode;
    - (void)report;
    
    @end
    
    @interface Coder : NSObject
    
    @property (copy,nonatomic)NSString *name;
    
    
    @end
    
    
    //
    //  Coder.m
    //  OC1_协议语句
    //
    //  Created by zhangxueming on 15/6/24.
    //  Copyright (c) 2015年 zhangxueming. All rights reserved.
    //
    
    #import "Coder.h"
    
    @implementation Coder
    
    @end
    //
    //  main.m
    //  OC1_协议语句
    //
    //  Created by zhangxueming on 15/6/24.
    //  Copyright (c) 2015年 zhangxueming. All rights reserved.
    //
    
    #import <Foundation/Foundation.h>
    #import "Programmer.h"
    
    //协议:约定双方相互遵守的规范
    //生活中,劳务合同, 就业协议
    //计算机中: http:// ftp:// smb://  tcp udp  uart usb spi i2c
    //OC中的协议:
    //一组方法的列表
    
    //1.定制协议
    //在Foundation中所有的协议直接或者间接的遵守NSObject协议
    //@protocol Coder <NSObject>
    //
    //- (void)writeCode;
    //- (void)debugCode;
    //- (void)report;
    //
    //@end
    ////2.遵守协议 协议名放在<>中, 遵守多个协议 ,协议之间用逗号隔开
    //@interface Programmer : NSObject <Coder,NSCopying>
    //
    //@end
    
    //3.实现协议
    //由遵守协议的类实现,协议中的方法默认是必须实现
    
    //4.使用协议
    
    int main(int argc, const char * argv[]) {
        @autoreleasepool {
            Programmer *xiaoHua = [[Programmer alloc] init];
            xiaoHua.name = @"小华";
            
            [xiaoHua writeCode];
            [xiaoHua debugCode];
            [xiaoHua report];
        }
        return 0;
    }
  • 相关阅读:
    Python测试框架:pytest
    用Python unittest搭建自动化测试框架
    unittest单元测试框架
    golang获取本地dns服务器
    Go语言HTTP请求头小写问题
    MAC上使用nginx搭建直播服务器
    go packages 学习
    Cloud Native Computing Foundation
    普通文件I/O需要两次复制,内存映射文件mmap一次复制
    page cache & buffer cache
  • 原文地址:https://www.cnblogs.com/0515offer/p/4598402.html
Copyright © 2020-2023  润新知