代码语言:javascript复制
public class TestThis {
int a,b,c;//成员变量abc
TestThis(){//构造无参方法
System.out.println("Hellow!CSDN!");
}
TestThis(int a,int b){ //局部变量ab,通常没有this下,就近原则,下面单写a就是局部变量
//Testthis();这样是无法调用构造方法的
this();//调用无参的构造方法,并且必须位于第一行!
this.a= a;//这里都是指的局部变量而不是成员变量
//这样就区分了成员变量和局部变量,这种情况占了this使用情况的大多数!
}
TestThis(int a ,int b,int c){
this(a,b);//调用带参数的构造方法,并且必须位于第一行!,在一个构造方法中调用另一个构造方法,需用this来调用
this.c =c;
}
void sing(){
System.out.println("############");
}
void eat(){
this.sing();//调用本类中的sing(),去掉this.就sing();也可以完全做到调用类内一般方法
System.out.println("my name is 李寻欢!");
}
public static void main(String[] args){
TestThis hi = new TestThis(2,3);
hi.eat();
}
}
运行结果:
Hellow!CSDN! ############ my name is 李寻欢!
this用法总结: this定义是 为了表示当前类的对象,当前->那我们无需再定义一个对应以便我们调用;对象->表示我们可以引用完全此类中的所有属性、方法。
特别是在我们在一个类里面,自己调用自己的情况时用的就是this.
比如: 1.调用类内部自己属性和一般方法(default:可以不写this,如上例中的sing()) 2.调用构造方法(分为有参和无参构造方法,且必须位于第一行),其构造方法都是用this()来调用的,区别是方法调用的输入参数不同,其会导致调用不同的重载构造方法 3.全局变量和局部变量同名使用this 4.返回this对象 5.this不能用于static方法中