OC4_遵守多个协议

//
//  Calulator.h
//  OC4_遵守多个协议
//
//  Created by zhangxueming on 15/6/24.
//  Copyright (c) 2015年 zhangxueming. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "Adder.h"
#import "Subber.h"
#import "Multter.h"
#import "Divver.h"

//遵守多个协议, 协议之间用逗号隔开
@interface Calulator : NSObject <Adder,Subber,Multter,Divver>

@end

//
//  Calulator.m
//  OC4_遵守多个协议
//
//  Created by zhangxueming on 15/6/24.
//  Copyright (c) 2015年 zhangxueming. All rights reserved.
//

#import "Calulator.h"

@implementation Calulator

+ (int)addA:(int)a andB:(int)b
{
    return a+b;
}

+ (int)subA:(int)a andB:(int)b
{
    return a-b;
}

+ (int)divA:(int)a andB:(int)b
{
    return a/b;
}

+ (int)mulA:(int)a andB:(int)b
{
    return a*b;
}

@end
//
//  Divver.h
//  OC4_遵守多个协议
//
//  Created by zhangxueming on 15/6/24.
//  Copyright (c) 2015年 zhangxueming. All rights reserved.
//

#import <Foundation/Foundation.h>

@protocol Divver <NSObject>

+ (int)divA:(int)a andB:(int)b;

@end

//
//  Multter.h
//  OC4_遵守多个协议
//
//  Created by zhangxueming on 15/6/24.
//  Copyright (c) 2015年 zhangxueming. All rights reserved.
//

#import <Foundation/Foundation.h>

@protocol Multter <NSObject>

+ (int)mulA:(int)a andB:(int)b;

@end

//
//  Subber.h
//  OC4_遵守多个协议
//
//  Created by zhangxueming on 15/6/24.
//  Copyright (c) 2015年 zhangxueming. All rights reserved.
//

#import <Foundation/Foundation.h>

@protocol Subber <NSObject>

+ (int)subA:(int)a andB:(int)b;

@end

//
//  Adder.h
//  OC4_遵守多个协议
//
//  Created by zhangxueming on 15/6/24.
//  Copyright (c) 2015年 zhangxueming. All rights reserved.
//

#import <Foundation/Foundation.h>

@protocol Adder <NSObject>

+ (int)addA:(int)a andB:(int)b;

@end
//
//  main.m
//  OC4_遵守多个协议
//
//  Created by zhangxueming on 15/6/24.
//  Copyright (c) 2015年 zhangxueming. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "Calulator.h"

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        // insert code here...
        NSLog(@"add = %i", [Calulator addA:3 andB:5]);
        NSLog(@"mul = %i", [Calulator mulA:5 andB:10]);
    }
    return 0;
}
时间: 2024-08-11 09:52:12

OC4_遵守多个协议的相关文章

iOS:实现MKAnnotation协议,在地图上设置大头针,点击显示具体的位置信息

如何添加大头针(地标): 通过MapView的addAnnotation方法可以添加一个大头针到地图上 通过MapView的addAnnotations方法可以添加多个大头针到地图上 –(void)addAnnotation:(id <MKAnnotation>)annotation; 说明:需要传入一个遵守了MKAnnotation协议的对象 基本步骤为: <1>新建一个遵守MKAnnotation协议的类: @interface MyAnnotation : NSObject 

OpenStack?网关协议

一 动态页面与静态页面区别 静态页面:每一个网页都有一个固定的URL,且网页的URL以.html..htm..shtml等常见的形式为后缀. 网页内容已经发布到网站服务器上,无论是否有用户访问,每个静态页面都保存在网站服务器上,也就是说静态网页是实实在在的保存在服务器上的文件,每个网页都是一个独立的文件 静态网页没有数据库支持,在网站制作和维护方面工作量较大 静态网页的交互性较差,在功能方面有较大的限制 说白了就是把页面上所有的东西设定好.做死了,然后放上去,不管谁在任何时候看到的页面内容都是一

OC语言BLOCK和协议

一.BOLCK (一)简介 BLOCK是什么?苹果推荐的类型,效率高,在运行中保存代码.用来封装和保存代码,有点像函数,BLOCK可以在任何时候执行. BOLCK和函数的相似性:(1)可以保存代码(2)有返回值(3)有形参(4)调用方式一样. 标识符 ^ (二)基本使用 (1)定义BLOCK变量 int (^SumBlock)(int, int); // 有参数,返回值类型为int void (^MyBlock)():// 无参数,返回值类型为空 (2)利用block封装代码 (3)Block访

oc 协议

@protocol myProtocol <NSObject> // 基协议 @required // 声明了必须要实现的,默认情况下都是 @required - (void)walk; - (void)speak; - (void)think; // think在类实现中未实现会警告!!! @optional - (void)sing; - (void)laugh; @end 协议可以声明一大堆方法,但不能声明成员变量: 两个协议之间不能继承,但协议可以遵守另一个协议: 子类可以遵守父类遵守

快速入门互联网协议

我们一定都听过互联网协议,可以互联网协议是什么呢? 互联网的核心是一系列的协议,该协议称为互联网协议(Internet Protocal Suite).互联网协议大体上可以分为五层. 1.应用层(Application Layer) 2.传输层(Transport Layer) 3.网络层(Network Layer) 4.链接层(Link Layer) 5.实体层(Physical Layer) 首先,大家先接受以下几点: 越靠近上面的层,越接近用户:越靠近下面的层,越接近硬件. 每一层都是为

Swift 学习笔记(面向协议编程)

在Swift中协议不仅可以定义方法和属性,而且协议是可以扩展的,最关键的是,在协议的扩展中可以添加一些方法的默认实现,就是在协议的方法中可以实现一些逻辑,由于这个特性,Swift是可以面向协议进行编程的. 扩展协议和默认实现 protocol Record { var wins: Int{get} var losses:Int{get} func winningPercent() -> Double } struct BasketballRecord:Record,CustomStringCon

协议Protocol

1.协议:是一组声明方法的集合,不能声明成员变量,作用类似于接口. 遵守此协议的类就相当于拥有了这个协议的所有方法的声明,如果父类遵守了某个协议,子类也遵守了这个协议. 遵守这个协议的类可以实现协议中的方法. 关键字: @required:声明必须遵守的方法 @optional:声明可选的方法 2.代理:实现协议的某个方法 3.委托:指定要实现协议方法的对象(代理),代理来实现对应的方法 总结: 委托方:1.定义协议:2.引用代理:3.发送消息 代理方:1.遵守协议:2.实现方法:3.设置自己为

ISO 基础之 (十三) protocol 协议

一 简绍 protocol,简单来说就是一系列不属于任何类的方法列表,其中声明的方法可以被任何类实现.这种模式一般称为代理(delegation)模式.通过Protocol定义各种行为,在不同的场景采用不同的实现方式.在iOS和OS X开发中,Apple采用了大量的代理模式来实现MVC中View和Controller的解耦. 1.Protocol:就一个用途,用来声明一大堆的方法(不能声明成员变量),不能写实现. 2.只要某个类遵守了这个协议,就拥有了这个协议中的所有方法声明. 3.只要父类遵守

33-oc协议&amp;代理

协议基本概念 其他语言有接口的概念,接口就是一堆方法的声明没有实现. OC中没有接口的概念,OC中的接口就是协议. 协议Protocol是由一系列的方法声明组成的 书写协议的格式 格式: @protocol协议名称 <NSObject> // 方法声明列表 @end 一个类怎么遵循协议 类遵守协议格式: @interface类名 : 父类 <协议名称1, 协议名称2,…> @end 注意: 一个类可以遵守1个或多个协议 任何类只要遵守了Protocol,就相当于拥有了Protoco