DT大数据梦工厂 温故而知新 之11讲

王家林亲授 大数据开发语言《Scala深入浅出实战经典》(1-71讲全部视频、代码、PPT)下载 ,总共有140讲Scala视频!
百度云: http://pan.baidu.com/s/1jGjFpWy
腾讯微云: http://url.cn/TnGbdC

360云盘:http://yunpan.cn/cQ4c2UALDjSKy 访问密码 45e2

DT大数据梦工厂 温故而知新 之12讲scala 中apply应用


package TestPractice


/**
 * @author Administrator
 */
object ApplyDemo {
  def main(args: Array[String]) {
    //调用apply()方法的方式一
    //Dog.apply()
    //调用apply()方法的方式二
   // Dog()
   
 //创建对象的方式一
    val cat1 = new Cat
    println(cat1)
    //创建对象的方式二(需要在对象中定义apply()方法)
    val cat2 = Cat.apply
    println(cat2)
    //创建对象的方式三(需要在对象中定义apply()方法)(推荐)
    val cat3 = Cat()
    println(cat3)
    //获得对象的方式四
    val cat4 = Cat
    println(cat4 + "\t" + Cat)
    
    
    //用object  Student的apply()方法,创建对象
    Student1("stu001","zhangsan","shandong")
  }
}


//应用1
class Dog {
   println("class Dog apply()")
}
object Dog {
  //对象中的apply()方法
  def apply(): Unit = {
    println("object Dog apply()")
  }
}
//总结 在函数动调用可以直接调用其方法 还可以直接省去直接调用类构造器
//应用2
class Cat{
   println("class Cat apply()")
}
object Cat {
  //object中apply()方法一般去创建一个对象
  def apply() = new Cat
}




class  Student1(var id :String, var name:String,var addr:String){
}
object  Student1{
       def apply( id :String,  name:String, addr:String)={
         println("object Student.apply()")
         new Student1(id,name,addr)
       }


}


run 结果 

class Cat apply()
TestPractice.Cat@6a5714de
class Cat apply()
TestPractice.Cat@7b1b315c
class Cat apply()
TestPractice.Cat@3645ce28
TestPractice.Cat$@4838ddcc TestPractice.Cat$@4838ddcc
object Student.apple()


总结  object中apply()方法一般去创建一个对象

你可能感兴趣的:(scala)