this用来指向当前对象的地址。
this的用法:
1)在普通方法中,this总是指向调用该方法的对象。在普通方法中,它是作为一种隐式参数一直就存在着(这句话的意思,就是其实在普通方法中,编译器一直就在用它,只是没有显示出来而已)
例如:
- public class TestThis {
- int a, b, c;
-
- void sing(){ //这是一个普通方法
- }
-
-
- public static void main(String[] args) {
- TestThis abc = new TestThis();
- abc.sing();//abc这个对象调用sing()这个方法,实际上这时是this.abc.sing
- //只不过没有显示出来而已。这时this就指向abc这个对象的地址。
-
- }
- }
2)在构造方法(即前面学习过的构造器)中,this总是指向正在初始化的对象。
- public class TestThis {
- int a, b, c;
-
- TestThis(){//这是一个无参的构造方法
-
- }
-
- public static void main(String[] args) {
- TestThis abc = new TestThis();//这个时候this是指向abc
- }
- }
3)在构造方法的重载中,用this避免相同的初始化代码。这种用法中,this必须放在构造方法的第一句。
- public class User {
- int id;
- String name;
- String pwd;
-
- public User(){}
-
- public User(int id, String name, String pwd) {//上面已经
- //有一个构造方法,所以这里是构造方法重载
- //下面的this,就是为了在用这个构造方法时,可以正确将参数传递
- this.id = id;
- this.name = name;
- this.pwd = pwd;
- }
-
- public static void main(String[] args) {
- User u = new User();
- User u1 = new User(100,"Jason","12345678")
-
-
- }
- }
4)this不能用于static方法中。