equals 相等

51 阅读1分钟

equals 相等

特点:判断两个对象是否想定,两个对象做比较==时,会自动调用equals方法。

eg:

class Student(var name:String, var id:String, var age:Int) {
    //equals 相等
    override def equals(obj: Any): Boolean = {
      println("调用了equals..")

      println(this, obj)
      //判断this和obj是否相等的逻辑:姓名和学号都相等,说明是同一个人
      val other = obj.asInstanceOf[Student]
      this.name == other.name && this.id == other.id


    }

    override def toString: String = s"Student(${name},${id},${age})"
  }
  def main(args: Array[String]): Unit = {

    val stu1 = new Student("小花","20230012",18)
    val stu2 = new Student("小明","20230012",18)
    val stu3 = new Student("小明","20230012",18)
    //目标,判断他们是一个人。使用 == 老输出的时候,应该要是true

    println(stu1 == stu2) //false
    println(stu1 == stu3) //false
  }
}