本帖最后由 乔玉吉 于 2012-3-29 22:15 编辑
应该是这样的,当内存中没有其他对象比较的时候,又恰恰对象本身具有可比性 ,就只能和自己比较教了
我认为既然继承了comparable,每次new对象都会做比较动作.
流程:
当执行到这句话的时候 ts.add(new Student("lisi01",22));
内存中就有了Student类的实例,new Student("lisi01",22))这个实例就具备了类中的成员变量和方法,并同时给成员变量赋值;
这时候 this.name就是lisi01,age就是22,,这时候还没有其他Studetn类的实例存在,我想compareTo方法每次new对象都会执行的,这时候没有其他实例存在只能调用自身对象了
s.name也就成了lisi01
当再次new Student("lisi02",20))新的实例时,内存中就又会开辟新的空间,this.name就是自身实例的name,就是lisi02 ,
这时候内存中出现了两个实例,因为他们具备可比性,所以这个新的实例对象会调用其compareTo方法,并把lisi01对象传进来进行比较,s.name就是lisi01了.
再次new对象,就会再次和之前new过的对象进行比较,也就打印出你说的那种结果
|