文档章节

类和对象之Application特质

柳哥
 柳哥
发布于 2014/06/05 21:55
字数 369
阅读 96
收藏 0

Scala提供了特质scala.Application,可以减少一些输入工作。尽管现在所学的知识还不足以弄懂它的工作原理,不过我们认为了解一下还是有必要的。如例:

package scalaTest
object Test5 extends Application {
    println("eeeee")
}

使用方法是,首先在单例对象名后写上“extends Application”。然后代之以main方法,你可以把想要执行的代码直接放在单例对象的花括号之间。如此而已,之后可以正常的编译和运行。
能这么做,是因为特质Application声明了带有合适签名的main方法,并被你写的单例对象继承,使它可以像scala程序那样。花括号之间的代码被收集进了单例对象的主构造器,并在类被初始化时执行
继承自Application比编写完整的main方法要方便,不过它也有些缺点。首先,如果想访问命令行参数的话就不能用它,因为args数组不可访问(因为代码在主构造器中执行的??)。
第二,因为某些JVM线程模型里的局限,如对于多线程的程序需要自行编写main方法。最后,某些JVM的实现没有优化被Application特质执行的对象的初始化代码。因此只有当程序相对简单并且是单线程的情况下才可以继承Application特质

© 著作权归作者所有

共有 人打赏支持
柳哥
粉丝 203
博文 405
码字总数 347782
作品 0
杭州
技术主管
Scala学习笔记(5)-类和方法

Scala里的类和方法的概念都是差不多的,这里只列出Scala重要的一些概念: 1.Public是Scala的缺省访问级别,可以省略不写。 2.Scala里方法参数的一个重要特征是它们都是val,不是var(参数是v...

山海经
2013/08/26
0
0
深入理解Scala-使用面向对象编程

Scala所有的值都是对象,连函数都可以是对象。Scala通过Trait提供了混入机制。对象是Scala的核心,所以我们有必要了解Scala背后的一些详细信息。 对象、类、特质(Trait)用来定义Scala的API...

开源中国驻成都办事处
2014/04/16
0
0
Scala下Play框架学习笔记(Body parsers)

什么是Body Parsers 一个HTTP请求是一个头部后面紧随着一个body,头部很小,可以在内存中缓存,因此Play的模型中使用了这个类。Body有时候也可能很长,以致于不能缓存,反而作为一种流而被建...

金明略
2016/12/29
0
0
Scala学习笔记(12)-特质、包和引用

1.特质:trait是Scala里代码复用的基础单元。特质封装了方法和字段的定义,并可以通过混入到类中重用它们。不像类的继承那样,每个类都只能继承唯一的超类,类可以混入任意个特质。一旦特质被...

山海经
2013/08/31
0
0
浅析Scala单例对象与伴生类

Scala的单例对象 Scala不能定义静态成员,而是代之定义单例对象(singleton object)。以object关键字定义。 对象定义了某个类的单个实例,包含了你想要的特性: 当你在应用程序中需要一个新的...

qq_39521554
05/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

初级开发-编程题

` public static void main(String[] args) { System.out.println(changeStrToUpperCase("user_name_abc")); System.out.println(changeStrToLowerCase(changeStrToUpperCase("user_name_abc......

小池仔
今天
4
0
现场看路演了!

HiBlock
昨天
14
0
Rabbit MQ基本概念介绍

RabbitMQ介绍 • RabbitMQ是一个消息中间件,是一个很好用的消息队列框架。 • ConnectionFactory、Connection、Channel都是RabbitMQ对外提供的API中最基本的对象。Connection是RabbitMQ的s...

寰宇01
昨天
9
0
官方精简版Windows10:微软自己都看不过去了

微软宣布,该公司正在寻求解决方案,以减轻企业客户的Windows 10规模。该公司声称,企业客户下载整个Windows 10文件以更新设备既费钱又费时。 微软宣布,该公司正在寻求解决方案,以减轻企业...

linux-tao
昨天
19
0
TypeScript基础入门之JSX(二)

转发 TypeScript基础入门之JSX(二) 属性类型检查 键入检查属性的第一步是确定元素属性类型。 内在元素和基于价值的元素之间略有不同。 对于内部元素,它是JSX.IntrinsicElements上的属性类型...

durban
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部