oc协议


协议就是定义一组方法实现类必须实现这些方法,类似于java的接口和抽象类

 

协议的定义语法:

 

Java代码   收藏代码
  1. @protocol  协议名  <父协议>  
  2. 定义方法  
  3. @end  
  4. 注:定义协议的关键字是@protocol,同时协议也是可以继承父协议的  
  5.   
  6. 协议中定义的方法还有两个修饰符:  
  7. @required:这个表示这个方法是其他类必须实现的,也是默认的值  
  8. @optional:这个表示这个方法对于其他类实现是可选的  

 

协议的定义TestProtocol.h

Java代码   收藏代码
  1. //oc协议的简单使用  
  2. @protocol TestProtocol <NSObject>  
  3.   
  4. @required//必须实现  
  5. -(void)printlf;  
  6. +(void)getHotel;  
  7.   
  8. @optional//可选实现  
  9. -(void)setHotel;  
  10.   
  11. @end  
  12.   
  13.   
  14. #endif /* TestProtocol_h */  

伦理片 http://www.dotdy.com/ 

文件TestExtends.h

Oc代码   收藏代码
  1. #import "TestProtocol.h"  
  2.   
  3. @interface TestExtends: NSObject<TestProtocol>{  
  4.       
  5. NSString* name;  
  6.       
  7. }  
  8. @property NSString *name; //类似set和get方法  
  9.   
  10. //@property name;  
  11.   
  12.   
  13. -(void)setName:(NSString*)newName;//定义方法  
  14.   
  15. -(id)initWithC:(NSString*)newName;//定义构造方法  
  16.   
  17.   
  18. @end  
  19.   
  20. #endif /* TestExtends_h */  

 

TestExtends.m文件

Java代码   收藏代码
  1. #import "TestExtends.h"  
  2.   
  3. @implementation TestExtends  
  4.   
  5. @synthesize name;  
  6.   
  7. -(void)setName:(NSString*)newName{  
  8.   
  9.     NSLog(@"调用父类的setName方法");  
  10.   
  11. }  
  12.   
  13. +(void)getHotel{  
  14.  NSLog(@"getHotel");//必须实现的方法  
  15. }  
  16.   
  17. -(void)printlf{  
  18.     NSLog(@"printlf");//必须实现的方法  
  19. }  
  20.   
  21. -(void)setHotel{  
  22.     NSLog(@"setHotel");//可选的方法  
  23. }  
  24.   
  25.   
  26. -(id)initWithC:(NSString *)newName{  
  27.     if (self==[super init]) {  
  28.         name=newName;//  
  29.         NSLog(@"父类的构造方法被调用。。。。");  
  30.     }  
  31.   
  32.     return self;  
  33. }  
  34.   
  35. @end  

 

 影音先锋电影 http://www.iskdy.com/

mian文件

Java代码   收藏代码
  1. TestExtends* te=[[TestExtends alloc] init];  
  2.        [te setName:@"Object-c"];  
  3.        NSLog(@"简单的实现");  
  4.        [te printlf];<span style="font-family: Menlo;"> </span>//调用协议的方法  

 

运行结果:

2015-11-04 23:04:40.179 test_01[1432:80295] 调用父类的setName方法

2015-11-04 23:04:40.180 test_01[1432:80295] 简单的实现

2015-11-04 23:04:40.180 test_01[1432:80295] printlf

 

(lldb) 

 

 

【SCI复现】基于纳什博弈的多微网主体电热双层共享策略研究(Matlab代码实现)内容概要:本文围绕“基于纳什博弈的多微网主体电热双层共享策略研究”展开,结合Matlab代码实现,复现了SCI级别的科研成果。研究聚焦于多个微网主体之间的能源共享问题,引入纳什博弈理论构建双层优化模型,上层为各微网间的非合作博弈策略,下层为各微网内部电热联合优化调度,实现能源高效利用与经济性目标的平衡。文中详细阐述了模型构建、博弈均衡求解、约束处理及算法实现过程,并通过Matlab编程进行仿真验证,展示了多微网在电热耦合条件下的运行特性和共享效益。; 适合人群:具备一定电力系统、优化理论和博弈论基础知识的研究生、科研人员及从事能源互联网、微电网优化等相关领域的工程师。; 使用场景及目标:① 学习如何将纳什博弈应用于多主体能源系统优化;② 掌握双层优化模型的建模与求解方法;③ 复现SCI论文中的仿真案例,提升科研实践能力;④ 为微电网集群协同调度、能源共享机制设计提供技术参考。; 阅读建议:建议读者结合Matlab代码逐行理解模型实现细节,重点关注博弈均衡的求解过程与双层结构的迭代逻辑,同时可尝试修改参数或扩展模型以适应不同应用场景,深化对多主体协同优化机制的理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值