gpt4 book ai didi

objective-c - Getter 和 Setter 解释了吗?

转载 作者:搜寻专家 更新时间:2023-10-30 19:42:10 24 4
gpt4 key购买 nike

我只是从我拿起的一本书(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 (尽管此时这对您来说可能有些不必要的详细信息)。

关于objective-c - Getter 和 Setter 解释了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8824157/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com