在finish()
或this.finish()
方法中提供onPause()
和onStop()
是否相同?
答案 0 :(得分:3)
是。请熟悉this.
- >的含义它的值是对当前对象的引用。例如,如果您有一个名为Foo
的类,并且它具有名为method()
的方法,则其中的this
将是对Foo
的实例的引用(即是:Foo
对象)。通常您不需要使用this
。
答案 1 :(得分:2)
this
都是指包含类。因此,如果您在Activity
中使用该方法,则this.finish()
与finish().
相同但是,如果您在其他类类型中使用this
,则可能不会有this.finish()
答案 2 :(得分:1)
即使这个问题已经有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
答案 3 :(得分:0)
finish()
和this.finish()
是一样的。
对于问题的其他部分,请read about the Activity lifecycle。
答案 4 :(得分:0)
在你的情况下它是一样的。使用this->有时很重要...如果你有一个成员和一个方法参数具有相同的名称,如下例所示:
class foo{
int number;
void setNumber(int number);
}
所以你可以写你的方法
void foo::setNumber(int number)
{
this->number = number;
}
所以很明显你使用了哪个元素。但要小心不要使用相同的名称它不是很好。