day05 _未完待续

@proerty 和 @synthesize

@proerty:编译器指令,当我们在类的声明中使用 @property,它会自动生成标准的setter和getter方法的声明 
@synthesize: 
1、用类的实现中,可以生成setter和getter方法的实现 
2、生成一个私有成员变量,这个私有的成员变量与@synthesize后面的名字一样 
我们可以指定 @synthesize 生成setter 和getter放的时候使用哪个成员变量,这个时候它就不会生成与@synthesize 后面的名字同名的私有成员变量了

 
@synthesize age = _age;

当然还可以使用增强的#proerty和@synthesize,参考 
Objective-C中的@property和@synthesize用法 
http://blog.youkuaiyun.com/zhiganglet/article/details/7546333 
需要注意的是

在使用@property增强的时候如何自定义setter方法 
1、如果你实现自定义的setter方法,@property就不会帮你生成它的setter方法,但仍然会帮你生成getter方法和私有的成员变量 
2、如果你实现自定义的getter方法,@property就不会帮你生成它的getter方法,但仍然会帮你生成setter方法和私有的成员变量

3、如果你同时实现自定义的setter 和 getter方法,@property就不会帮你生成它的setter 和 getter方法,同时也不会帮你生成私有成员变量了

id 类型 (类似C++11 的auto)

id 类型是一个万能对象指针类型,它可以指向任意类对象 
id 类型本身就是一个指针类型,接收对象时候不要再加 * 了;

id:缺点: 
所有它任意对象上的方法它都可以调用,但如果这个对象上不存在这个方法,那再运行时就报错 
它不会进行编译时的检查 
当是用id类的变量去调用一个方法的时候,它会提示很多类似方法,不容易找到自己对象上的方法

优点:在只有是同时实现了某些方法的对象上产生多态特性

id 也叫 类型动态类 
静态类型: 特定类的类型 
1、提供编译时,如果对象上没有这个方法就再编译的时候报错 
2、写代码的时候它的提示比较准确 
在一般情况我们使用的都是静态类型 
例子:

 
#import "CZPerson.h"
#import "CZDog.h"
 
int main(int argc, const char * argv[]) {
CZPerson *person = [CZPerson new];
person.age = 10;
NSLog(@"%d",person.age);
 
// [person setName:@""];
id pi = person;
 
[pi setAge:20];
NSLog(@"%d",[pi age]);
// id类型不可以使用点语法,也不可以使用 ->
// pi.age = 40;
 
// [pi setName:@"haha"];
 
pi = [CZDog new];
[pi setAge:4];
NSLog(@"%d",[pi age]);
 
 
 
return 0;
}

私有方法 其实就C++的类的私有方法(也叫私有函数,只不过oc中这种方法不写在声明中,外部看不到而已)

//私有方法:不能在外界调用的方法,只有实现没有声明的方法 
//OC只有在实现文件中的定义的这个方法是私有,但是不是绝对的私有; 
//私有方法:就是不让外界调用方法

//如果在一个类的方法可以写成私有的就不要写成公开的

重写init方法

重写init必须要做三件事 
1、必须要调用父类init 
2、必须检验父类的init是否成功初始化 
3、返回自己指针 
//有时候需要在初始化的时候从外界传入一些值 
//OC init family 
//自定义自己的初始化方法 
//1、必须以initWith开头 
//2、返回值类型必须是id 或 instancetype 
//不是init 家族的方法,就不可以给self赋值

参考文章:iOS开发系列--Objective-C之类和对象

基于数据驱动的 Koopman 算子的递归神经网络模型线性化,用于纳米定位系统的预测控制研究(Matlab代码实现)内容概要:本文围绕“基于数据驱动的Koopman算子的递归神经网络模型线性化”展开,旨在研究纳米定位系统的预测控制问题,并提供完整的Matlab代码实现。文章结合数据驱动方法与Koopman算子理论,利用递归神经网络(RNN)对非线性系统进行建模与线性化处理,从而提升纳米级定位系统的精度与动态响应性能。该方法通过提取系统隐含动态特征,构建近似线性模型,便于后续模型预测控制(MPC)的设计与优化,适用于高精度自动化控制场景。文中还展示了相关实验验证与仿真结果,证明了该方法的有效性和先进性。; 适合人群:具备一定控制理论基础和Matlab编程能力,从事精密控制、智能制造、自动化或相关领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①应用于纳米级精密定位系统(如原子力显微镜、半导体制造设备)中的高性能控制设计;②为非线性系统建模与线性化提供一种结合深度学习与现代控制理论的新思路;③帮助读者掌握Koopman算子、RNN建模与模型预测控制的综合应用。; 阅读建议:建议读者结合提供的Matlab代码逐段理解算法实现流程,重点关注数据预处理、RNN结构设计、Koopman观测矩阵构建及MPC控制器集成等关键环节,并可通过更换实际系统数据进行迁移验证,深化对方法泛化能力的理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值