scala基础13-apply(至关重要)

来源:互联网 发布:网络中gr什么意思 编辑:程序博客网 时间:2024/06/05 07:20
/* * apply可以用在object中(常用),也可以用在class中 * 好处: * 1、不需要方法使用new * 2、构建的时候实例对象的单例控制,比如判断是否有权限构造对象 * 3、实例构建时做需要的相关处理 * 4、在抽象类的伴生对象中,实例化抽象类的实现类,面向接口编程(不需要关心实现类) */class ApplyTest {  def apply() = println("I am class")    def haveATry {    println("Have a try on apply!")  }}object ApplyTest {  def apply() = {    println("I am object")    new ApplyTest  }}object HelloOOP {  def main(args: Array[String]) {    val app = ApplyTest()    app.haveATry        println("----------------------分割线----------------------")        val app2 = new ApplyTest    app2.haveATry    println(app2()) //用对象加(),来调用class中的apply方法,class中的apply不常用  }}

0 0
原创粉丝点击