clarification of “this” keyword in Java

后端 未结 5 1236
陌清茗
陌清茗 2021-01-19 15:17

I have this code copied from Android developers website:

public class ExampleActivity extends Activity implements OnClickListener {
    protected void onCrea         


        
相关标签:
5条回答
  • 2021-01-19 15:54

    It refers to the instance of ExampleActivity on which onCreate() has been called.

    In general, from the Java Language Specification, 15.8.3:

    The keyword this may be used only in the body of an instance method, instance initializer or constructor, or in the initializer of an instance variable of a class. If it appears anywhere else, a compile-time error occurs.

    When used as a primary expression, the keyword this denotes a value that is a reference to the object for which the instance method was invoked (§15.12), or to the object being constructed. The type of this is the class C within which the keyword this occurs. At run time, the class of the actual object referred to may be the class C or any subclass of C.

    0 讨论(0)
  • 2021-01-19 15:56

    "this" is a reference to the current object.

    In your case, it refers to an instance of the ExampleActivity class.

    http://download.oracle.com/javase/tutorial/java/javaOO/thiskey.html

    0 讨论(0)
  • 2021-01-19 16:08

    Yes, 'this' refers to the instance of the enclosing class.

    0 讨论(0)
  • 2021-01-19 16:17

    this refers to the most inner class instance. In your example it refers to ExampleActivity which is of type OnClickListener which is passed in to setOnClickListener.

    0 讨论(0)
  • 2021-01-19 16:17

    Within an instance method or a constructor, this is a reference to the current object — the object whose method or constructor is being called. You can refer to any member of the current object from within an instance method or a constructor by using this.

    Reference (from the Sun Java Tutorial):

    • Using the this keyword
    • Understanding Instance and Class Members
    0 讨论(0)
提交回复
热议问题