objective-c – Getter和Setter解释?
发布时间:2020-12-14 17:37:09 所属栏目:百科 来源:网络整理
导读:我只是从我读过的一本书(Big Nerd Ranch)学习OOP,它只是通过了getter和setter章节.我想澄清一点,我明白我刚刚做了什么.我创建了使用@property和@synthesize语法来定义这两种方法,而不是创建一个设置实例值的方法,然后是另一个提取值并显示它的方法. 而不是这
我只是从我读过的一本书(Big Nerd Ranch)学习OOP,它只是通过了getter和setter章节.我想澄清一点,我明白我刚刚做了什么.我创建了使用@property和@synthesize语法来定义这两种方法,而不是创建一个设置实例值的方法,然后是另一个提取值并显示它的方法.
而不是这样做: -(void) setHeightOfObject:(int)h; -(void) setWeightOfObject:(float)w; -(int) heightOfObject; -(float) weightOfObject; 并像这样定义它: - (int)heightOfObject { return heightOfObject; } - (void)setHeightOfObject:(int)h { heightInMeters = h; } - (float)weightOfObject { return weightOfObject; } - (void)setWeightOfObject:(float)w { weightOfObject = w; } 我会在.h文件中使用getter和setter来执行此操作: @property int heightOfObject; @property float weightOfObject; 然后转到我的.m文件并链接它: @synthesize heightInMeters,weightOfObject; 这使我能够设置我的对象的值,然后如果我需要它打印它得到它?我知道这是一个重要的概念,我想确保我对它有适当的把握. 解决方法
你是对的. @synthesize必需扩展到编译时编写的实现.
由于编写getter和setter是无聊和重复的(并且大多数对象都有一堆属性,你需要getter和setter),这个小小的快捷方式可以让你花费更少的时间在boilerplate code上,更多时间实现一些有趣的东西. 如果您想了解有关objective-c属性的更多详细信息,可以查看programming guide(尽管此时可能有点不必要的详细信息). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |