伴生对象

51 阅读1分钟
创建对象的方法:

1.class-> new

2.直接通过object来定义(单例对象,只有一个,孤单)

3.使用了数据存储,提供一些工具方法,公用方法。。。。。。

object Class05 {
  object Myschool {
    val name :String = "xxx学校"

    def say():Unit = {
      println(s"say:${name}")
    }
  }
  def main (array: Array[String]): Unit = {

  }
// 对象名.属性名
  Myschool,name
  // 对象名,方法名()
  Myschool.say()
在伴生对象的内部,可以访问类的private成员

伴生类,伴生对象的特点:

可以互相访问对方的私有的(private)成员
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]): util = {
    val stu1 = new Student("12345")
    
    if(Student.check(stu1,"12345")){
      println("验证通过!")
    }
  }
单利模式:一个类(class)只能有一个对象!

new会自动调用__构造__函数?

步骤: 1.不让它new,把构造函数设置为私有的

2.在伴生对象中调用new来生成一个对象:提供换一个方法来获取这个对象