1.能够继续使用Java的语法
2.Scala 有自己的特有语法,例如元祖
3.增加功能,比如函数式编程
4.。形式上看,是scala的类,但是这个类是对java的类/接口进行包装 (数组)
环境安装:
scala_home
安装目录
path
bin目录
IDEAR 注册激活码
https://blog.csdn.net/zhw0596/article/details/81394870
IDE 激活方式:License Server
1、将地址 http://active.chinapyg.com/ 或者 http://idea.toocruel.net 任意一个复制到License Server中
scala-intellij-bin-2017.2.6.zip
1. object 表示一个伴生对象,这里我们可以简单的理解就是一个对象
2、HelloScala 就是一个对象名字,它底层真正对应的类名是HellScala$,
对象是HelloScala$类型的一个静态对象MOdule$
3.编写 object HelloScala 底层会生成两个.class he和 HelloScala$
4. scala在运行时,(1)先从Hello Scala 的mian开始执行
(2)然后调用HelloScala类的方法 HelloScala$.MODULE$.main
public static void main (String [] paramArrayIOfString )
{
Hellscala$.MODULE$.main(paramArrayOfString);
}
(3)执行下面的代码
public void main (String [] args)
{
Predef.. MODULE$.println(“hello,scala”)
}
Scala的设计这将静态和非静态分为2部分,
静态不属于面向对象部分(把一个类分为2部分) 【非静态写在class helloScala】 [【静态写在Object HelloScala】object HelloScala {
1. def 表示一个方法,这是一个关键字
2.main 表示方法名字,程序入口
3. args : Array[string] 表示形参, scala的特点是将参数名在前,类型在后 【和Java 相反 】
4.Arrayp[String]表示类型数组
5、Unit = 表示该函数的返回值为空
def main (args: Array [String]): Unit = {
println("hello,scala ")
}
}
scala 源码执行
public class CsScala {
public static void main (String [] paramArrayOfString)
{
CsScala$.MODULE$.main(paramArrayOfString);
}
}
final class CsScala$
{
public static final CsScala$ MODULE$;
static
{
MODULE$ = new CsScala$ ();
}
public void main (String [] args)
{
System.out.print("hello ,scala");
}
}