黑马程序员 —OC(@property和@synthesize)

本文详细介绍了Objective-C中的@property和@synthesize指令的使用方法及原理。包括如何利用@property自动生成成员变量的setter和getter方法声明,以及@synthesize如何为成员变量生成实际的setter和getter方法实现。

                                         ------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 


1.  @property


  @property用在@interface中,写法如下:        

#import<Foundation/Foundation.h>

@interface  Person :NSObject
{
           int  _age ;    <span style="color:#003300;">//   定义成员变量  年龄</span>
           
           int  _height ;  <span style="color:#003300;">//   定义成员变量  身高
</span>      
           NSString  *_name ;  <span style="color:#003300;">//  定义成员变量   姓名
}</span>
@property  int  age ;  <span style="color:#003300;">//  @property作用:可自动生成这个成员变量的setter和getter的声明
</span>
@property  int  height ;<span style="color:#003300;">  //  相当于height的set和get方法的声明
</span>
@property NSString  *name ;
@end
 这里的@property 想当于给成员变量进行set和get 方法的声明。



  @property   int  age 等同于  如下

- (void)setAge:(int)age;   <span style="color:#003300;"> //   对成员变量 _age的set方法的声明</span>
-  (int)age;     <span style="color:#003300;">//     对成员变量 _sge方法的get方法的声明</span>



 当成员变量的类型一致时。可连续进行声明:

@propery  nt  age , height;  <span style="color:#003300;">//   一般不建议这么写,了解就可以了</span>
 
        
2. @synthesize


  用在@mplementation 中

@implementation  Person 

@synthesize  age = _age ;   <span style="color:#003300;">//   对成员变量  _age 进行方法实现</span>
@end
      
 @synthesize 自动生成成员变量的set和get的实现,并且会访问当前成员的这个变量
等同于下面的这个实现


 - (void)setAge:(int)age    <span style="color:#003300;">//  set方法对成员变量的实现</span>
{
          _age = age ;
}
-  (int)age         <span style="color:#003300;">//   get 方法对成员变量的实现</span>
{
        return  _age ;
}


 @synthesizer 细节:


                     1>  @synthesize   age = _age;


                           set 和get实现中会访问成员变量_age。


                            如果成员变量 _age不存在时,就会自动生成一个@private的成员变量 _age。


                      2> @synthesize  age


                             set 和get 实现中会访问成员变量age。


                             如果成员变量age不存在,就会自动生成一个private的成员变量age。


                     3> 手动的实现


                             当手动实现了set 方法,编译器就只会自动生成get方法。


                             当手动实现了get 方法, 编译器就只会自动生成set方法。


                             若同时实现了set 和get 方法,编译器就不会自动生成不存在的成员变量。

                              

                          

      

内容概要:本文详细介绍了一种融合灰狼优化算法(GWO)、BP神经网络与AdaBoost集成学习的复合预测模型,旨在通过Matlab代码实现高效、高精度的非线性系统预测。该模型首先利用GWO算法优化BP神经网络的初始权重与阈值,有效缓解传统BP网络易陷入局部最优、收敛速度慢的问题;随后引入AdaBoost集成策略,通过对弱学习器的迭代加权训练,进一步提升模型的泛化能力、鲁棒性与预测稳定性。该方法适用于能源、环境、金融等领域的时间序列预测任务,文中提供了完整的算法实现流程与案例分析,便于科研人员复现、验证并拓展至其他应用场景。; 适合人群:具备一定机器学习理论基础与Matlab编程能力,从事科研工作的研究生、高校教师及工程技术人员,尤其适合工作1-5年、致力于发表高水平学术论文的研发人员。; 使用场景及目标:①解决传统BP神经网络在复杂数据下收敛缓慢、精度不足的问题;②构建高精度、强鲁棒性的预测模型,服务于科研项目申报、高水平论文撰写或工程实际预测需求;③深入理解GWO优化机制、AdaBoost集成思想及其在神经网络中的融合应用,掌握智能优化与集成学习的协同建模范式。; 阅读建议:建议读者结合提供的Matlab代码逐模块实践,重点剖析GWO的种群更新机制、BP网络的结构设计与训练过程、AdaBoost的误差反馈与权重调整逻辑,同时尝试将模型迁移至风电预测、负荷预测等具体场景,以深化理解并激发创新研究思路。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值