-2

提供finish()and this.finish()in onPause()oronStop()方法是否相同?

4

5 回答 5

3

是的。请熟悉this.-> 它的值是对当前对象的引用。例如,如果您有一个名为 的类Foo,并且它有一个名为 的方法method(),那么this其中将是对 的实例Foo(即:Foo对象)的引用。通常你不需要使用this.

于 2012-10-22T07:49:34.243 回答
2

this在任何情况下都是指包含类。因此,如果您在 an 中使用该方法Activity,则this.finish()finish().但是,如果您this在不同的类类型中使用,您可能没有this.finish()

于 2012-10-22T07:52:07.080 回答
2

即使这个问题已经存在 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

于 2015-12-07T13:19:08.720 回答
0

finish()this.finish()是一样的。

对于问题的另一部分,请阅读 Activity 生命周期

于 2012-10-22T07:50:49.783 回答
0

在你的情况下是一样的。有时使用 this->... 如果您有同名的成员和方法参数(如下例所示),这很重要:

    class foo{

    int number;

    void setNumber(int number);

    }

所以你可以用你的方法写

    void foo::setNumber(int number)
    {
    this->number = number; 
    }

所以很清楚你使用了哪个元素。但是请注意不要使用相同的名称,这不是很好。

于 2012-10-22T08:01:00.447 回答