问答详情
源自:6-8 学生选课--- 实现学生序列排序

谁能告诉我这里面的this代表什么?如果o是代表传入的学生对象,那么this又代表什么?

代码:

@Override

public int compareTo(student o) {

// TODO 自动生成的方法存根

return this.id.compareTo(o.id);

}


提问者:福工刘德华 2017-11-06 16:36

个回答

  • 慕粉3617928
    2017-11-06 21:13:38
    已采纳

    比如你有Student   A,Student B,两个对象,这样用:A.compareTo(B)。这里的compareTo就是上面写的方法,f方法里的this就是你调用方法的这个对象,也就是这的A,o是传入的对象,就是这的B。

  • _Devil___4213279
    2017-11-06 21:10:47

    这里的this指的是调用该改写后的compareTo方法的对象,比如一个Student对象a,那么在对象a中调用compareTo方法就是a.compareTo(o),那么这个this指针指向的就是a对象,那么这个a.compareTo(o)的作用就是返回a.id与o.id的比较值,也就是在这里再调用a的属性id中的compareTo方法与o.id进行比较。从而实现根据学生id来对学生进行排序。重写这个方法主要是因为用sort方法对集合元素进行排序的时候,sort方法是通过对集合里的元素两两之间调用compareTo方法来排序的。