文档章节

类和对象之Application特质

柳哥
 柳哥
发布于 2014/06/05 21:55
字数 369
阅读 95
收藏 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

没有更多内容

加载失败,请刷新页面

加载更多

下一页

idea新建springCloud项目(5)- 订单服务

1.创建订单api,如下: 2.创建订单实现逻辑 3.新建订单、订单商品表 -- 订单 create table `order_master` ( `order_id` varchar(32) not null, `buyer_name` varchar(32) not null comment......

monroeCode
24分钟前
1
1
游戏开发经验谈(二):对战类全球服游戏的设计与实现

上篇文章《游戏开发经验谈(一):游戏架构里隐藏的五个坑及其应对方案》,我们主要讲解了游戏架构设计当中隐藏的一些坑及其应对方案,错过的小伙伴可以回溯之前的内容。本期内容,将会重点介...

UCloudTech
34分钟前
0
0
Mysql基本语法

一.联合主键 drop table CONTENT_AND_CATALOG;CREATE TABLE `tobebetter`.`CONTENT_AND_CATALOG` ( `ID` VARCHAR(120) NOT NULL , `CONTENT_ID` VARCHAR(120) , `CA......

我是菜鸟我骄傲
35分钟前
0
0
179. centos7 安装mariadb

1. centos7 中安装mariadb 1.1 执行安装 centos7 自带了mariadb yum -y install mariadb mariadb-server 1.2 启动mariadb systemctl start mariadb 1.3 设置开机启动 systemctl enable maria......

Lucky_Me
43分钟前
0
0
【AI实战】动手训练自己的目标检测模型(YOLO篇)

在前面的文章中,已经介绍了基于SSD使用自己的数据训练目标检测模型(见文章:手把手教你训练自己的目标检测模型),本文将基于另一个目标检测模型YOLO,介绍如何使用自己的数据进行训练。 ...

雪饼
49分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部