this关键字

当成员变量和局部变量重名,可以用关键字this来区分。
简单来说,哪个对象调用了this所在的函数,this就代表哪个对象。

class Person {
 
    private String name;
    private int age;
 
    Person2(String name) {
        this.name = name;
    }
 
    public void speak() {
        System.out.println(this.name + ", " + this.age);
    }
 
 
}
 
public class TestMain {
 
    public static void main(String[] args) {
        Person p = new Person("旺财");
        p.speak();
 
        Person p1 = new Person("小强");
        p1.speak();
 
    }
 
 
}

this关键字

this关键字

以上为初始化过程。

以下为调用speak( )

this关键字

class Person {

    private String name;
    private int age;

    Person() {
        this.name = "baby";
        this.age = 1;
        System.out.println("Person Run");
    }

    Person(String name) {
        this.name = name;
    }

    public Person(String name, int age) {
        this(name);
        this.age = age;
    }

    public void speak() {
        System.out.println(this.name + ", " + this.age);
    }

    /**
     * 判断是否同龄
     *
     * @param p
     * @return
     */
    public boolean compare(Person p) {
        return this.age == p.age;
    }


}

public class TestMain {

    public static void main(String[] args) {
        Person p = new Person("旺财");
        p.speak();

        Person p1 = new Person("小强");
        p1.speak();

    }


}