gpt4 book ai didi

java - 在 Java 中直接使用 this.someProperty 和 someProperty 访问属性之间的区别

转载 作者:行者123 更新时间:2023-12-01 12:59:36 26 4
gpt4 key购买 nike

这个问题不是重复的

这个问题与Java中“this”的含义无关。这是一个关于属性不同语法的问题,我试图根据我对另一种语言的理解来澄清。我一直在研究 android 文档,看到相同的属性有不同的引用,我想知道为什么。

问题

在 Objective-C 中,当声明属性时,它会自动合成 getter 和 setter,然后通过点语法访问它们,如下所示:

self.someProperty;

但是,在后台,这确实是在调用:

[self someProperty];

- (id) someProperty {
return _someProperty;
}

// or

[self setSomeProperty:someValue];

- (void) setSomeProperty:(id)someProperty {
_someProperty = someProperty;
}

自动合成的一部分还会生成一个带有“_”前缀的变量,您可以直接访问该变量。总结一下,

_someProperty;
// and
self.someProperty;

经常引用同一个变量;然而,事实上,self.someProperty 调用该方法,而 _someProperty 直接访问内存。在 Java 中,如果我在文件顶部声明一个属性,如下所示:

private String someStringProperty;

后台是否有某种自动合成会使这些语句不同?

someStringProperty = new String();
// or
this.someStringProperty = new String();

最佳答案

没有什么区别。当你使用“this”时,你正在使用这个对象。使用“this”并不是进行方法调用。

someStringProperty = new String();
// or
this.someStringProperty = new String();

这两个陈述是相等的。使用“this”只会使其更具可读性。

关于java - 在 Java 中直接使用 this.someProperty 和 someProperty 访问属性之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23621369/

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