提供finish()
and this.finish()
in onPause()
oronStop()
方法是否相同?
5 回答
是的。请熟悉this.
-> 它的值是对当前对象的引用。例如,如果您有一个名为 的类Foo
,并且它有一个名为 的方法method()
,那么this
其中将是对 的实例Foo
(即:Foo
对象)的引用。通常你不需要使用this
.
this
在任何情况下都是指包含类。因此,如果您在 an 中使用该方法Activity
,则this.finish()
与finish().
但是,如果您this
在不同的类类型中使用,您可能没有this.finish()
即使这个问题已经存在 3 年了。我更愿意为现在和未来的研究人员点亮一些光。
this
只是一个对象引用。你不必this
每次都使用,除了你需要从子类实例中获取父类的引用。
让我们在使用Thread
类时考虑一个示例。
public class A
{
public A()
{
new Thread(new Runnable()
{
public void start()
{
B child=new B(A.this);//In this scenario,'A.this' refers to the parent class 'A' in which the 'Thread' class instantiated.If you simply pass 'this' ,then it would refer to the 'Thread' class as this statement executed in the current scope.
}
}).start();
}
}
public class B
{
A parent;
public B(A parent)
{
this.parent=parent;//'this' refers to the class B ,so that it can access the global variable 'parent' ,then assigns it with the local variable 'parent' passed through the constructor.
}
}
就像上面列出的那样,关键字有不同的用法。this
最好在这里参考oracle的文档https://docs.oracle.com/javase/tutorial/java/javaOO/thiskey.html
finish()
和this.finish()
是一样的。
对于问题的另一部分,请阅读 Activity 生命周期。
在你的情况下是一样的。有时使用 this->... 如果您有同名的成员和方法参数(如下例所示),这很重要:
class foo{
int number;
void setNumber(int number);
}
所以你可以用你的方法写
void foo::setNumber(int number)
{
this->number = number;
}
所以很清楚你使用了哪个元素。但是请注意不要使用相同的名称,这不是很好。