scala> //////////////////////////////////////////// scala> // A Class without 'Ordered' trait #264 scala> //////////////////////////////////////////// scala> class Temperature(val temp: Double) { | def < (that: Temperature): Boolean = { | println("Comparing : <") | this.temp < that.temp | } | def > (that: Temperature) = { | println("Comparing : >") | that < this | } | def <= (that: Temperature) = { | println("Comparing : <=") | (this < that) || (this == that) | } | def >= (that: Temperature) = { | println("Comparing : >=") | (this > that) || (this == that) | } | } defined class Temperature scala> scala> val t1 = new Temperature(90.5) t1: Temperature = Temperature@1e90062d scala> val t2 = new Temperature(80.5) t2: Temperature = Temperature@17806b85 scala> scala> t1 > t2 Comparing : > Comparing : < res91: Boolean = true scala> t1 >= t2 Comparing : >= Comparing : > Comparing : < res92: Boolean = true scala> t1 < t2 Comparing : < res93: Boolean = false scala> t1 == t2 res94: Boolean = false scala> scala> //////////////////////////////////////////// scala> // A Class with 'Ordered' trait #264 scala> //////////////////////////////////////////// scala> class Temperature(val temp: Double) extends Ordered[Temperature]{ | def compare(that: Temperature) = { | val res = this.temp - that.temp | if(res == 0) { | 0 | }else if(res < 0) { | -1 | }else{ | 1 | } | } | } defined class Temperature scala> val t1 = new Temperature(90.5) t1: Temperature = Temperature@1512113f scala> val t2 = new Temperature(80.5) t2: Temperature = Temperature@6cba4b01 scala> scala> t1 > t2 res95: Boolean = true scala> t1 >= t2 res96: Boolean = true scala> t1 < t2 res97: Boolean = false scala> t1 == t2 res98: Boolean = false