点个赞吧!

28 阅读1分钟
package level02

object Class07 {
  object Myschool {
    val name:String="XXX学校"
    def say():Unit={
      println(s"say:${name}")
    }
  }

  def main(args: Array[String]): Unit = {
    Myschool.say()
  }
}

类(class)和对象(object)同名,且在同一个文件中,此时他们互为伴生关系。

特点:可以相互访问对方的私有(private)成员

package level02

object Class08 {

  class Student(private val password: String) {
    private def validatePassword(input: String): Boolean = {
      input == password
    }
  }

  object Student {
    def check(stu: Student, pwd: String): Boolean = {
      stu.validatePassword(pwd)
    }
  }

  def main(args: Array[String]): Unit = {

    val stu1 = new Student("12345")
    if (Student.check(stu1, "12345")) {
      println("验证通过!")
    }
  }
}
package level02

object Class09 {
  
  class Student(private val password: String) {
 
    private def validatePassword(input: String): Boolean = {
      input == password
    }
  }

  object Student {

    def check(stu: Student, pwd: String): Boolean = {
      stu.validatePassword(pwd) 
    }
  }

  def main(args: Array[String]): Unit = {

    val stu1 = new Student("12345")

    if (Student.check(stu1, "12345")) {
      println("验证通过!")
    }
  }
}