dr20 发表于 2021-11-29 19:50

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]
查看完整版本: scala学习笔记Day-1