文档章节

类和对象之Application特质

柳哥
 柳哥
发布于 2014/06/05 21:55
字数 369
阅读 94
收藏 0
点赞 0
评论 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特质

© 著作权归作者所有

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

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

山海经 ⋅ 2013/08/26 ⋅ 0

深入理解Scala-使用面向对象编程

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

开源中国驻成都办事处 ⋅ 2014/04/16 ⋅ 0

Scala下Play框架学习笔记(Body parsers)

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

金明略 ⋅ 2016/12/29 ⋅ 0

Scala学习笔记(12)-特质、包和引用

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

山海经 ⋅ 2013/08/31 ⋅ 0

浅析Scala单例对象与伴生类

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

qq_39521554 ⋅ 05/24 ⋅ 0

【Scala】Cake模式和依赖注入

依赖注入(Dependency Injection)和控制反转(Inversion of Control) Dependency Injection & Inversion of Control是Martin Fowler在2004年所提出來的一个概念,Martin Fowler在这篇文章中...

JasonDing ⋅ 2016/03/11 ⋅ 0

Scala2.10新特性之 Value Classes

Value Classes and Universal Traits http://docs.scala-lang.org/overviews/core/value-classes.html 简介 在Scala中,值类是避免分配运行时对象(avoid allocating runtime objects)的新机......

Ellipse ⋅ 2013/01/24 ⋅ 4

Scala类型系统——高级类类型(higher-kinded types)

高级类类型就是使用其他类型构造成为一个新的类型,因此也称为 类型构造器(type constructors)。它的语法和高阶函数(higher-order functions)相似,高阶函数就是将其它函数作为参数的函数;高...

Barudisshu ⋅ 2016/06/13 ⋅ 0

Scala中trait的使用详情

单基础多实现,但是接口只能包含抽象方法,不能包含字段。 trait可以同时拥有抽象方法和具体方法,而类可以实现多个trait。 做接口使用的trait trait Logger{ } 不需要将方法声明为abstract—...

LC900730的博客 ⋅ 2017/12/18 ⋅ 0

Scala极速入门

定义 Scala语言是一种面向对象语言,同时又结合了命令式(imperative)和函数式(functional)编程风格。官网描述:Object-Oriented Meets Functional(面向对象遇到函数式编程)。 安装 下载...

Jackson_Mu ⋅ 2015/01/04 ⋅ 58

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Python爬虫,抓取淘宝商品评论内容

作为一个资深吃货,网购各种零食是很频繁的,但是能否在浩瀚的商品库中找到合适的东西,就只能参考评论了!今天给大家分享用python做个抓取淘宝商品评论的小爬虫! 思路 我们就拿“德州扒鸡”...

python玩家 ⋅ 14分钟前 ⋅ 0

MySQL 内核深度优化

MYSQL数据库适用场景广泛,相较于Oracle、DB2性价比更高,Web网站、日志系统、数据仓库等场景都有MYSQL用武之地,但是也存在对于事务性支持不太好(MySQL 5.5版本开始默认引擎才是InnoDB事务...

java高级架构牛人 ⋅ 37分钟前 ⋅ 0

用户登录信息-钉子效果(基于jquery2.0)

本js效果使用jquery2.0,清晰的分解用户登录信息的(钉子效果),该效果直接用在作者网站(www.phpkhbd.com)上。 里面的难点有:定时器,延时。 大致效果如下: 一开始: 鼠标放上去的时候:...

宁哥实战课堂 ⋅ 38分钟前 ⋅ 0

解决yum安装报错Protected multilib versions

使用yum安装报错Protected multilib versions原因是因为多个库不能共存,不过更新的话也并不行,但是可以在安装命令后面加上如下一段命令: --setopt=protected_multilib=false 案例: 比如需...

北岩 ⋅ 49分钟前 ⋅ 0

为什么要学习Typescript???

简单来说 目前的typescript就是未来的javascript 为什么?? 这要从ECMA-262标准的第4版说起 对了 我们说的ES5 其实是ECMAScript3.1这个替代性建议被扶正了而已... 那么 第4版标准是什么? 看看...

hang1989 ⋅ 53分钟前 ⋅ 0

linux安装ipfs

一、下载ipfs # cd /usr/local/ipfs/ # wget https://dist.ipfs.io/go-ipfs/v0.4.15/go-ipfs_v0.4.15_linux-amd64.tar.gz # tar -zxvf go-ipfs_v0.4.15_linux-amd64.tar.gz 二、安装ipfs # ......

八戒八戒八戒 ⋅ 59分钟前 ⋅ 0

jvm程序执行慢诊断手册

生产环境最多的几种事故之一就是程序执行慢,如果是web服务的话,表现就是响应时间长。本文分享,从业多年形成的排查守则。 诊断步骤 系统资源查看 首先是系统资源查看,而且必须是在第一步。...

xpbob ⋅ 今天 ⋅ 0

YII2 advanced 高级版本项目搭建-添加API应用以及多应用

一、YII安裝 安裝yii可以用composer安裝,也可以在yii中文社区下载归档文件安装 composer安装就不介绍了,因为要安装composer,比较麻烦,当然安装了composer是最好的,以后安装yii的插件要用...

botkenni ⋅ 今天 ⋅ 0

在jdk1.8的环境下模拟永久代内存溢出

相信不少小伙伴在看深入理解Java虚拟机的时候,作者给我们举例一个demo来发生PermGen space 1、通过List不断添加String.intern(); 2、通过设置对应的-XX:PermSize与-XX:MaxPermSize(更快看到...

虾几把写 ⋅ 今天 ⋅ 0

开发OpenDaylight组件的完整流程

在前面介绍学习了OpenDaylight的几个重要模块后,这里再来介绍下完整开发一个模块的过程。 OSGI的bundles提供被其他OSGI组件调用的服务。这个教程中展示的是Data Packet Service去解析数据包...

wangxuwei ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部