this关键字,我们经常使用的一个关键字,那么我们接下来一起来看一下它究竟有什么用处。
那么this有什么用呢?其实this关键字具有一种指向作用,类似于指针的作用,可以为你的变量或方法提供一个指向。那么我们接下来通过代码来演示一下吧。
public class Demo {
String name = "张三";
public static void main(String[] args) {
new Demo().out();
}
public void out() {
String name = "李四";
//那么我们分别在定义一个类变脸和局部变量,分别看一下用不用this会输出什么吧?
//下面这一句输出的将会是:李四
System.out.println("没使用this关键字:"+name);
//下面这句输出的是:张三
System.out.println("使用this关键字:"+this.name);
}
}
那么通过上面这个例子,我们可以看出,使用this关键字的变量它的指向是指向对象的变量,也就是我们说的类变量。
上面列举的是一种方法,其实我们的this会根据我们使用的位置不同而作用不同,但是实际上也没什么不同。上面这种情况是我们在方法中对变量的应用,还有另一种就是在构造器中的初始化。
public class Demo{
String name ;
public Demo(String name){
//通过this对变量name进行初始化
this.name = name;
}
public static void main(String[] args){
Demo demo = new Demo("张三");
//接下来这句将会输出张三
System.out.println(demo.name);
}
}
我们可以通过代码可以看到,在构造器中对name进行初始化后将会输出张三字样,也就是说,this如果作用在构造器中的作用就是对变量进行初始化。但是其实有时候this又是隐式存在的,不需要我们去调用。例如
public class Demo {
String name = "张三";
public static void main(String[] args) {
new Demo().out();
}
public void out() {
System.out.println(name);
System.out.println(this.name);
}
}
我们可以看到上面输出的两个name变量都会是张三,这就说明在调用类变量的时候this关键字是隐式调用的。