0基础java入门:第二十九节.this关键字详解。
首先我们来看一下this一般在哪里出现。
从上图可以看出我们在封装javabean时在 set方法和有参数构造方法中使用到了this。
this 本身有 这 这个的意思。this关键字再我们代码中时有出现。这里this关键字主要的作用是:this指代当前调用的对象。当一个类中的局部变量和成员变量同名,并且需要一起使用时,区分成员变量和局部变量。this.之后的变量是成员变量。下边我们通过代码来理解this的特性。
代码演示:
Worker类
package com.demo.test3;
public class Worker {
// 定义一个成员变量name 赋值为 张三
private String name = "张三";
// 定义方法 test 参数是 name ,这时方法体内 分别输出 this.name 和 name 调用之后观察结果
public void test(String name){
// 方法先输出 this.name
System.out.println(this.name);
// 后输出name
System.out.println(name);
}
}
Test1类
package com.demo.test3;
public class Test3 {
public static void main(String[] args) {
// 实例化变量 w1
Worker w1 = new Worker();
// 调用 方法test 并传递参数 值 是 李四
w1.test("李四");
}
}
运行结果:
分析一波:
Worker 类中定义有成员变量 name 赋值为 张三。test方法参数也是name,这里可以发现方法参数和成员变量同名。在test方法内输出了this.name 和 name 。
Test3 类中再主方法内,实例化对象 w1 之后调用 test方法参数是 李四。
观察结果 先输出的是 张三后输出的是李四 ,也就是说 this.name的值 是成员变量的值。而方法中输出的name的值是参数中name的值。说明 this.后的变量代表成员变量。
最后根据这个特性我们来理解一下实例化过程中对象赋值的关系。
上图中就是有参数实例化时,参数值传递给成员变量的过程。
上图就是通过set方法赋值时,参数传递给成员变量的过程。