Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中使用this.someProperty访问属性与直接使用someProperty访问属性之间的区别 这个问题不是重复的_Java - Fatal编程技术网

在Java中使用this.someProperty访问属性与直接使用someProperty访问属性之间的区别 这个问题不是重复的

在Java中使用this.someProperty访问属性与直接使用someProperty访问属性之间的区别 这个问题不是重复的,java,Java,这个问题与Java中“This”的含义无关。这是一个关于属性的不同语法的问题,基于我对另一种语言的理解,我试图澄清这个问题。我一直在浏览android文档,看到相同的属性被不同的引用,我想知道为什么 问题: 在Objective-C中,当声明属性时,它会自动合成getter和setter,然后通过点语法访问它们,如下所示: self.someProperty; 然而,在后台,这实际上是在呼吁: [self someProperty]; - (id) someProperty { re

这个问题与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;
}
自动合成的一部分还生成了一个带有前缀“\u1”的变量,您可以直接访问该变量。总而言之

_someProperty;
// and
self.someProperty;
经常引用同一个变量;然而,实际上,
self.someProperty
调用该方法,并且
\u 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中,this指的是“当前”对象,即被调用的方法或构造函数所属的对象。通常您会使用
这个。someProperty
而不仅仅是
someProperty
用来区分局部变量和对象的属性(参见示例)。

除了自动装箱之外,Java没有太多自动功能。如果需要访问器方法,可以编写一个,并使用普通方法语法调用它。不过,任何Java教程都会涉及到这个问题。谢谢@DaveNewton-我一定错过了这一部分,我还在学习过程中。我只是在Android文档中看到它在同一个类中有两次不同的使用,我很好奇是否有原因。@Vash-我的问题不是关于“这个”的真正含义这些答案并没有回答我关于这些电话在背景中是否不同的问题。我不明白为什么投票结果被否决和关闭。被引用为重复的问题不是重复问题。如果你阅读了我的问题,以及这个问题和答案,你会发现我要求澄清一个与语言相关的特定概念。在我这方面,或者在问题中,关于“这”意味着什么,没有任何混淆。我相信人们看了这个问题,投了否决票/关闭了,因为他们做出了一个假设。我要重新打开,但我理解为什么它关闭了——这在本质上是一个重复,但方法明显不同。