文章目录
this 关键字的总结: this. 和 this() 的区别
1.在本类的成员方法中,访问本类的成员变量 this.
- 虽然局部变量
num
和本类的成员变量重名,但是使用this
之后依然可以非常容易地进行区分。
2. 在本类的成员方法中,访问另一个成员方法 this.
- 这里的
this.
也可以省略,可以直接写methodA()
也是可以的
3. 在本类的构造方法中,访问本类的另一个构造方法 this()
- 本类的无参构造,调用本类的有参构造,要使用
this()
。 - 这里的
this(...)
调用有参构造方法,也必须放在 无参构造方法的第一个语句。这一点可以去看我前面的文章 :Java学习之:继承关系中,父类和子类构造方法的访问特点 - 因此,在同一个构造方法中,
super()
和this()
构造调用不能同时使用。也就是一个构造方法在调用其他构造方法的时候,要么通过super()
调用父类的构造方法,要么通过this()
调用 本类的其他构造方法,但不能同时使用。 - 但是如果一个类中,重载了多个构造方法,那么这些构造方法之间可以相互调用,如下:
- 无参构造方法可以通过 this(参数1) 来调用本类中一个参数的构造方法
- 一个参数的构造方法可以通过 this(参数1,参数2) 调用本类中两个参数的构造方法
- 但是如果现在 两个参数的构造方法再闭环地调用本类中无参数的构造方法,就会报错,如下: