0

可能重复:
Java 中的“this”是什么意思?

我对学习 Android 编程还是很陌生,我注意到“this”经常用在语言中方法调用的参数中。我正在通过 YouTube 关注 The New Boston 的教程,但他从未真正足够详细地解释“this”语句的含义。有人可以向我解释一下吗?或许可以把它弄糊涂一点?

4

3 回答 3

4

this指您当前正在编码的类的实例。

您不能在静态上下文中使用它,因为在这种情况下您不在任何对象上下文中。因此this不存在。

public class MyClass {

    public void myMethod(){
        this.otherMethod(); // Here you don't need to use 'this' but it shows the concept
    }

    private void otherMethod(){

    }

    public static void myStaticMethod(){
       // here you cant use 'this' as static methods don't have an instance of a class to refer to
    }

}
于 2012-12-25T20:18:32.840 回答
2

在androidclass.this中用于传递上下文。

上下文的正式定义:它允许访问特定于应用程序的资源和类,以及对应用程序级操作(例如启动活动)的向上调用。这意味着如果您需要访问资源(包括 R 和用户界面),您将不得不使用上下文。

在 java 中,这意味着您所在的类的实例。例如,MainActivity.this指向 MainActivity 的当前实例。因此,通过使用MainActivity.this.foo您正在访问 MainActivity 类的 foo 字段。

于 2012-12-25T20:30:09.437 回答
1
public class YourClass {

     private int YourInt;

     public setTheInt(int YourInt) {
         this.YourInt = YourInt;
     }
}

“this”用于查看一个属性或函数是否属于我们正在处理的类,更清晰。

此外,您会看到 setTheInt 操作获取一个与您的属性名称相同的整数。在该函数的命名空间中,YourInt 不是此类的 YourInt,而是来自 setTheInt 调用的整数的反映。“this”在这里有助于区分外部和内部的“YourInt”。

于 2012-12-25T20:25:29.453 回答