首页 > 代码库 > 关于this关键字

关于this关键字

this:所在方法的调用者对象

  this关键字:
    1:如果存在成员变量和局部变量同名,方法中默认访问局部变量(就近原则),可以通过this关键之指定访问成员变量的数据
   
   2:如果在一个方法中访问了一个变量,且该变量只存在成员变量的情况下,java编译器会在该变量的前面添加this关键字
   
    3: 在一个构造函数中调用其它的构造函数       
         格式:
             this(参数列表)
   
  this关键字调用其它构造函数的注意点:
    
       1:在一个构造函数中调用其它的构造函数时,this关键字必须位于构造函数中的第一个语句     
       2: 不能在构造函数中出现构造函数互相调用的情况,因为这是个死循环

public class Demo4 {

    public static void main(String[] args) {
        Person p1 = new Person("张三",29);
        Person p2 = new Person("李四",28);
        String s =p1.compare(p2);
        System.out.println(s);

    }

}

class Person{
    String name;
    int age;
    
    Person(String name, int age){
        this.name = name;  //指向的是调用此构造函数的对象,Person p1 = new Person("张三",29);中 this.name 就是 p1.name = (传进来的)"张三";
        this.age = age;
    }
    
    String compare(Person p){
        if(this.age > p.age){  //此处的this.age中的this指的是compare方法的调用者:p1,意思类似于 p1.age ;
            return this.name+"比"+p.name+"大";
        }else if(this.age == p.age){
            return "两人一样大";
        }else{
            return this.name+"比"+p.name+"小";
        }
    }
    
}

 

关于this关键字