apply基本使用

55 阅读1分钟
package level02

/**
 * apply
 *      作用:写在半生对象中,就可以永许创建对象的时候,省new
 */
object Class11 {
//伴生类
  class logger {}
  //伴生对象
  object logger {
    val instance = new logger()
    def apply():logger = {
      println("logger.....")
      instance
    }
  }

  def main(args: Array[String]): Unit = {
    //创建一个类的对象
    //val log1 = new logger()
    //在伴生对象中提供了apply方法,那么这里就会自动调用它
    val log1 = logger()
    val log2 = logger()
    println(log1 == log2)//这里会输出什么 true,因为它的到都是同一个对象
  }
}
package level03

/**
 * apply
 *      作用:写在半生对象中,就可以永许创建对象的时候,省略new
 */
object Class12 {
//伴生类
  class logger {
  def log(content:String):Unit= {
    val writer = new FilerWriter("test.log",true)
    writer.write(s"$message\n")
    wrier.closs()
    //println(s"$content")
  }
}
  //伴生对象
  object logger {
    val instance = new logger()
    def apply():logger = {
      println("logger.....")
      instance
    }
  }

  def main(args: Array[String]): Unit = {
    //创建一个类的对象
    //val log1 = new logger()
    //在伴生对象中提供了apply方法,那么这里就会自动调用它
    val log1 = logger()
    log.log("2025-11-06 9:37:16 上课 \n")
    log.log("2025-11-06 9:40:16 下课 \n")
 
  }
}