JAVA this问题 求详细解答

compareTo()方法中的 if(this.getAge()>stu.getAge())  的this.getAge()指的是?实例化对象传入的参数不都是stu.getAge() 我想了好久都不知道这个this表示什么

import java.util.Arrays;

import java.util.Comparator;

public class Student implements Comparable{

//就简单点按年龄大小排序

private int age;

Student(){

    this.age = 0;

}

Student(int age){

    this.age = age;

}

public int getAge() {

    return age;

}



public void setAge(int age) {

    this.age = age;

}



@Override

public int compareTo(Student stu) {

    if(this.getAge()>stu.getAge()){

        return 1;

    }else if(this.getAge()<stu.getAge()){

        return -1;

    }else{

        return 0;   

    }

}

public static void main(String[] args) {

    Student stu[] = new Student[3];

    stu[0] = new Student(2);

    stu[1] = new Student(1);

    stu[2] = new Student(3);



    Arrays.sort(stu);

这个很好理解吧, compareTo的用法一般就是这样:
Student stu1 = new Student(3);
Student stu2 = new Student(5);

stu1.compareTo(stu2); // 对应代码: this就是对象stu1, 参数stu就是对象stu2

java中this代表的是当前对象的实例,例如Test t = new Test(); t为Test对象的一个实例,在t实例中this与t等价,回到你的代码所以
this.getAge()表示调用你当前对象的getAge()方法而stu.getAge()表示调用public int compareTo(Student stu)这个入参stu对象的
getAge()方法
谢谢

    在实例对象的非静态方法里面都有一个this和super对象,this指的是调用该非静态方法的实例对象,super是指调用该非静态方法的实例对象的父类对象,this.xxx()调用的是该实例对象里面的非静态方法,super.xxx()调用的是父类对象里面的非静态方法。 ps:   xxx表示的是方法名