Scala 是一门多范式(multi-paradigm)的编程语言,Scala 运行在Java虚拟机上,并兼容现有的Java程序。
设计初衷是
- 集成面向对象编程
- 函数式编程的各种特性
HelloScala.scala:
object HelloScala{
def main(args: Array[String]):Unit={
println("Hello Scala");
}
}
//方法2:
object HelloSala{
def main(args:Array[String]){
print("hello sacla");
}
}
HelloJava.java:
public class HelloJava{
public static void main(String[] args){
System.out.println("Hello Java");
}
}
java相比,没有了public 这种类/方法使用限制得关键字。
方法部分增加了def关键字。
定义方法:
def methodName(args:Array[String])):Unit={}
现在说一说Scala得两大特性:1面向对象,2函数式编程
1.
Scala是一种纯面向对象的语言,每个值都是对象。对象的数据类型以及行为由类和特质描述。
类抽象机制的扩展有两种途径:一种途径是子类继承,另一种途径是灵活的混入机制。这两种途径能避免多重继承的种种问题
2.
Scala也是一种函数式语言,其函数也能当成值来使用。Scala提供了轻量级的语法用以定义匿名函数,支持高阶函数,允许嵌套多层函数,并支持柯里化。Scala的case class及其内置的模式匹配相当于函数式编程语言中常用的代数类型。
更进一步,程序员可以利用Scala的模式匹配,编写类似正则表达式的代码处理XML数据。
对应的框架:Lift,Play
基本语法:
- 区分大小写 - Scala是大小写敏感的,这意味着标识Hello 和 hello在Scala中会有不同的含义。
- 类名 - 对于所有的类名的第一个字母要大写。
如果需要使用几个单词来构成一个类的名称,每个单词的第一个字母要大写。
例如:object HelloScala - 方法名称 - 所有的方法名称的第一个字母用小写。
如果若干单词被用于构成方法的名称,则每个单词的第一个字母应大写。
例如:def method() - main入口:
def main(args:String[]){} - 关键字:java里面没有的,用黑色框圈起来了。
- 包与引用:
包定义:
package com.runoob
class HelloWorld
引用:
import java.art._
import java.awt.Color
def handler(evt: evnet.AtionEvent){// java.awt.event.ActionEvent
//...
}
第一个要学习的关键字,selector,他来喽!
如果想要引入包中的几个成员,可以使用selector(选取器):{}
import java.awt.{Color,Font}
//重命名成员
import java.util.{HashMap=>JavaHashMap}
//隐藏成员
import java.util.{HashMap=>_,_}