Scala2.11.7学习笔记(六)Scala特质介绍

特质

Scala的trait 和Java 的Interface相比,可以有方法的实现。Scala的Trait支持类和Singleton对象和多个Trait混合(使用来自这些Trait中的 方法,而不时不违反单一继承的原则)。

Scala为Singleton对象的main定义了一个App trait类型,因此上面的例子可以简化为:

HelloWorld.scala
object HelloWorld extends App {
    println("Hello World!");
}

这段代码就不能作为脚本运行,Scala的脚本要求代码最后以表达式结束。因此运行这段代码,需要先编译这段代码,然后再运行。

// 第一次直接运行,无任何输出    
G:\Hadoop\scala-SDK\source>scala HelloWorld.scala

// 进行编译
G:\Hadoop\scala-SDK\source>scalac HelloWorld.scala
// 再次运行
G:\Hadoop\scala-SDK\source>scala HelloWorld
Hello World!

注意: Scala提供了一个快速编译代码的辅助命令fsc (fast scala compliler) ,使用这个命令,只在第一次使用fsc时启动JVM,之后fsc在后台运行,这样就避免每次使用scalac时都要载入相关库文件,从而提高编译速度。

多重继承

特质使用

特质构造

特质应用

时间: 2024-08-23 10:45:06

Scala2.11.7学习笔记(六)Scala特质介绍的相关文章

Scala2.11.7学习笔记(六)文件操作

欢迎访问:鲁春利的工作笔记,学习是一种信仰,让时间考验坚持的力量. 1.读取文件 import scala.io.Source; if (args.length > 0) {     for (line <- Source.fromFile(args(0)).getLines()) {         println(line.length + "\t" + line);     } } else {     Console.err.println("Please

Scala2.11.7学习笔记(七)Scala包介绍

欢迎访问:鲁春利的工作笔记,学习是一种信仰,让时间考验坚持的力量. 本文出自 "鲁春利的工作笔记" 博客,请务必保留此出处http://luchunli.blog.51cto.com/2368057/1705420

Scala2.11.7学习笔记API说明

欢迎访问:鲁春利的工作笔记,学习是一种信仰,让时间考验坚持的力量. Scala Standard Library 2.11.7 This is the documentation for the Scala standard library. Package structure The scala package contains core types like Int, Float, Arrayor Option which are accessible in all Scala compil

Scala2.11.7学习笔记(四)

欢迎访问:鲁春利的工作笔记,学习是一种信仰,让时间考验坚持的力量. 简单的类定义 class CheckSumAccumulator {     private var sum = 0;     def add (b : Byte) : Unit = sum += b;     def checksum () : Int = ~ (sum & 0xFF) + 1; } Scala中class的缺省修饰符为public(public,protected,private),类的方法以def定义开始,

Scala2.11.7学习笔记汇总

欢迎访问:鲁春利的工作笔记,学习是一种信仰,让时间考验坚持的力量. 本文出自 "闷葫芦的世界" 博客,请务必保留此出处http://luchunli.blog.51cto.com/2368057/1715754

Scala2.11.7学习笔记(七)类和对象

鲁春利的工作笔记,好记性不如烂笔头 apply 需要构造有参数需求的伴生对象时,可定义并使用apply方法. class HelloWorld (var m : String, var n : Char) {     println("I'm class HelloWorld!");     def speak () {         println("Class HelloWorld Speak.");     } } object HelloWorld {  

Scala2.11.7学习笔记(八)private修饰符说明

欢迎访问:鲁春利的工作笔记,学习是一种信仰,让时间考验坚持的力量. public protected private

Scala2.11.7学习笔记(一)

环境准备 基础入门

java之jvm学习笔记六-十二(实践写自己的安全管理器)(jar包的代码认证和签名) (实践对jar包的代码签名) (策略文件)(策略和保护域) (访问控制器) (访问控制器的栈校验机制) (jvm基本结构)

java之jvm学习笔记六(实践写自己的安全管理器) 安全管理器SecurityManager里设计的内容实在是非常的庞大,它的核心方法就是checkPerssiom这个方法里又调用 AccessController的checkPerssiom方法,访问控制器AccessController的栈检查机制又遍历整个 PerssiomCollection来判断具体拥有什么权限一旦发现栈中一个权限不允许的时候抛出异常否则简单的返回,这个过程实际上比我的描述要复杂 得多,这里我只是简单的一句带过,因为这