频道栏目
首页 > 程序开发 > 软件开发 > 其他 > 正文
大数据系列修炼:Scala课程79
2016-10-09 09:40:31         来源:数据分析玩家  
收藏   我要投稿

核心内容:

1、Scala单例深入讲解及单例背后的链式表达式操作代码实战


1、Scala单例深入讲解及单例背后的链式表达式

1>任何一个对象本质上都是一个单例类型,即每个类的实例都有唯一的一个(.type)单例类型,而
单例类型只对应于当前对象的实例。
2>在scala当中,this.type依附于具体对象的实例,因此是动态的,而利用this关键字的动态特性可以完成链式调用。


实例程序:

//本程序的目的是学习scala单例深入讲解及单例背后的链式表达式

object Animal
class Persion
{
   def g() = println("芸芸众生之中class,我们每个人又何尝不是至尊宝object呢?")  
   def fun():this.type =
   {
     this
   }
}
class Student extends Persion
{
   def fun2() = println("大话西游!")  
}
object App6 
{    
   def main(args:Array[String]):Unit=      
   {       
      //在scala当中,object的背后其实是有具体的类的
      println(Animal.getClass)      //class IT01.Animal$
      //object对象是我们最早知道的单例对象
      println(typeOf[Animal.type])  //IT01.Animal.type

      //从宏观的角度讲,每一个类的具体实例何尝不是一个单例对象呢?
      val persion = new Persion
      println(typeOf[persion.type])  //persion.type
      val content:persion.type = persion
      println(content.fun())  //IT01.Persion@137e0d2

      //this关键字的冬天特性引出了链式调用
      val student = new Student()
      //this关键字指向当前时刻正在调用该方法的对象,因此返回的是student.type,而student当然含有fun2方法
      student.fun().fun2()  //大话西游!   
   }
}

如有问题,欢迎留言!

点击复制链接 与好友分享!回本站首页
上一篇:Servlet规范总结
下一篇:大数据系列修炼:Scala课程80
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站