浅谈this关键字

1.this指向当前的对象,更确切的说this是执行当前对象的一个引用变量,比如以下代码,输出的结果的地址值是相同的,也就是this指向了P这个对象

 1 public class Person {
 2     String name;
 3     int age;
 4     public void say(){
 5         
 6         
 7         System.out.println("this:"+this);
 8     }
 9     public static void main(String[] args) {
10         Person p=new Person();
11         p.say();
12         System.out.println("p:"+p);
13     }
14 }

2.在一个类中,当这个类中的成员变量被与他同名的构造方法中的局部变量隐藏时,我们可以通过this.变量名调用。如下代码:当第7行我们不用this关键字时,输出是“张三吃”,反之“李四吃”,这里的this就是指向11行的p,相当于p.name。

 1 public class Person {
 2     String name="李四";
 3     int age;
 4     
 5     public Person(){
 6     String    name="张三";
 7         System.out.println(this.name+"吃");
 8         
 9     }
10     public static void main(String[] args) {
11         Person p=new Person();
12         
13     }
14 }

3.当构造方法调用构造方法时,我们可以用this([参数列表])来调用,无参用this(),如以下代码。需要追的是this必须书写在第一行。打印时先打印this的结果:12行,然后打印7行。

 1 public class Person {
 2     String name;
 3     int age;
 4     
 5     public Person(String name){
 6         this("李四",23);    
 7     System.out.println("一个变量的构造方法");
 8         
 9     }
10     public Person(String name,int age){
11         
12         System.out.println("两个变量的构造方法");
13     }
14     public static void main(String[] args) {
15         Person p=new Person("张三");
16     }
17 }
原文地址:https://www.cnblogs.com/dear-java/p/4966259.html