判断两个对象是相等的

判断this和obj是否相等的逻辑: 姓名和学号都相等,说明这两个学生是同一个人 目标,判断他们是一个人。使用 == 来输出的时候,应该要是true

scala 复制代码
package level

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

      println(this,obj)
      val other = obj.asInstanceOf[Student]

      this.name == other.name && this.id  == other.id
    }
  }

  def main(args: Array[String]): Unit = {
    val stu1=new Student("小花","20230012",18)
    val stu2=new Student("小花","20230012",18)
    val stu3=new Student("小花","20230012",18)
    println(stu1==stu2)
    println(stu1==stu3)
  }
}

单例对象 1.只有一个,不能被new; 2.适用于存放工具方法,常里。

scala 复制代码
package level

object class05 {
  // object 对象名{
  //    属性:
  //    方法;。。。。
  //  }
  object MyTool {
    val PI =3.14

    // 方法
    def Area(r:Double):Double = {
      PI*r*r
    }
  }
  
  def main(args: Array[String]): Unit = {
    
    //  对象,属性名
    //  对象,方法名()
    println(MyTool.PI)
    println(MyTool.Area(10))
  }
}

伴生类 和 伴生对象

  1. 类和对象同名
  2. 在一个文件中 类就是伴生类,对象就是伴生对象。 特点:可以相互访问对方的私有成员
scala 复制代码
package level02

object class06 {
  class Student() {
    // private 修饰的属性,无法在类的外部被访问!
    private val hobby = "打游戏"
  }

  object Student {
    def introduce(stu: Student): Unit = {
      println(s"我的爱好是:${stu.hobby}")
    }
  }

  def main(args: Array[String]): Unit = {
    val stu1 = new Student()
    // stu1.hobby // 无法访问私有属性
    Student.introduce(stu1)
  }
}
相关推荐
是阿威啊3 天前
【用户行为归因分析项目】- 【企业级项目开发第五站】数据采集并加载到hive表
大数据·数据仓库·hive·hadoop·spark·scala
是阿威啊6 天前
【用户行为归因分析项目】- 【企业级项目开发第四站】模拟三类用户行为数据上传到Hadoop
大数据·hadoop·分布式·sql·scala
今天没有盐8 天前
Python字符串操作全解析:从基础定义到高级格式化
后端·scala·编程语言
是阿威啊9 天前
【用户行为归因分析项目】- 【企业级项目开发第一站】项目架构和需求设计
大数据·hive·hadoop·架构·spark·scala
代码于老总11 天前
【Scala 技巧】用隐式类给 String “开挂”:一行代码实现手机号 / 身份证号校验
scala
scala舔狗汪11 天前
scala的隐式对象和隐式类
scala
是阿威啊12 天前
【maap-analysis】spark离线数仓项目完整的开发流程
大数据·分布式·spark·scala
豚踢兔x17 天前
正则表达式应用-手机号打码
scala
代码于老总18 天前
正则表达式在 Scala 中的应用
scala
凯新生物24 天前
聚乙二醇二生物素,Biotin-PEG-Biotin在生物检测中的应用
scala·bash·laravel·perl