scala学习笔记Day-1
# Scala学习笔记Day-1## 概述
`Scala` 是 `Scalable Language` 的简写,是一门`多范式`的编程语言,具有面向对象、函数式编程、静态类型、扩展性、并发性的特性
## Scala 语言特点:
`Scala`是一门以Java虚拟机(JVM)为运行环境并将面向对象和函数式编程的最佳特性结合在一起的
静态类型编程语言(静态语言需要提前编译的如:`Java`、`c`、`c++`等,动态语言如:`js`)。
1)Scala是一门`多范式`的编程语言,Scala支持`面向对象`和`函数式编程`。(`多范式`,就是多种编程方
法的意思。有`面向过程`、`面向对象`、`泛型`、`函数式`四种程序设计方法。)
2)Scala源代码(.scala)会被编译成Java字节码(.class),然后运行于JVM之上,并可以调用现有
的Java类库,实现两种语言的无缝对接。
3)Scala单作为一门语言来看,非常的简洁高效**。**
```scala
object Hello {
def main(args: Array): Unit = {
println("hello scala")
}
}
Scala完全面向对象,故Scala去掉了Java中非面向对象的元素,如static关键字,void类型
1)static
Scala无static关键字,由object实现类似静态方法的功能(类名.方法名)。
2)void
对于无返回值的函数,Scala定义其返回值类型为Unit类
```
## Scala程序反编译:
```scala
1)Hello源代码
object Hello {
def main(args: Array): Unit = {
println("hello,scala")
}
}
2)Hello.class类
public final class Hello{
public static void main(String[] paramArrayOfString) {
Hello$.MODULE$.main(paramArrayOfString);
}
}
3)Hello$.class类
public final class Hello$ {
public static final MODULE$;
static
{
new ();
}
public void main(String[] args) {
Predef..MODULE$.println("hello,scala"); }
private Hello$(){
MODULE$ = this;
}
}
(1)Object编译后生成Hello$.class和Hello.class两个文件
(2)Hello中有个main函数,调用 Hello$ 类的一个静态对象MODULES$
(3)Hello$.MODULE$. 对象是静态的,通过该对象调用Hello$的main函数
```
## 注释
```scala
// Hello Scala 单行注释
/*
*多行注释
*Hello Scala
*Hello Scala
*/
/**
文档注释
*/
```
页:
[1]