1 Scala语言入门

1.1概述

1.1.1Scala和Java关系

一般来说,学Scala的人,都会Java,而Scala是基于Java的,因此我们要将Scala和Java以及JVM之间的关系搞清楚.

1 Scala语言入门_第1张图片

1.1.2语言特点

Scala是一门以Java虚拟机(JVM)为运行环境并将面向对象和函数式编程的最佳特性结合在一起的静态类型编程语言
(静态语言需要提前编译的如:Java、c、c++等,动态语言如:js)

1)Scala是一门多范式的编程语言,Scala支持面向对象和函数式编程。
	多范式:就是多种编程方式的意思,有面向过程、面向对象、泛型、函数式四种程序设计方法。
2)Scala源代码(.scala)会被编译成Java字节码(.class),然后运行于JVM之上,并可以调用现有的Java类库,实现两
种语言的无缝对接。
3)Scala单作为一门语言来看,非常的简洁高效。
4)Scala在设计时参考了Java的设计思想,同时也将函数式编程语言的特点融入其中。

1.2环境搭建

1)安装步骤
(1)首先确保JDK1.8安装成功
		Win+R---->cmd----->java -version
(2)下载对应的Scala安装文件scala-2.11.8.zip
(3)解压scala-2.11.8.zip,我这里解压到E:\02_software
(4)配置Scala的环境变量
		Win+R----->cmd---->scala
		注意:解压路径不能有任何中文路径,最好不要有空格
					环境SCALA_HOME要大写

1 Scala语言入门_第2张图片
1 Scala语言入门_第3张图片

1.3插件安装

1.4HelloWorld案例

1.4.1创建IDEA项目工程

1)打开IDEA->点击左侧的Flie->选择New->选择Project…
在这里插入图片描述
2)创建一个Maven工程,并点击next
1 Scala语言入门_第4张图片
3)GroupId输入com.atguigu->ArtifactId输入scala0513->点击next->点击Finish
注意:工程存储路径一定不要有中文和空格。

1 Scala语言入门_第5张图片
4)指定项目工作目录空间
1 Scala语言入门_第6张图片
5)默认下,Maven不支持Scala的开发,需要引入Scala框架。
在scala0513项目上,点击右键-> Add Framework Support… ->选择Scala->点击OK
1 Scala语言入门_第7张图片
注意:如果是第一次引入框架,Use libary看不到,需要选择你的Scala安装目录,然后工具就会自动识别,就会显示user libary。

6)创建项目的源文件目录
右键点击main目录->New->点击Diretory -> 写个名字(比如scala)。
右键点击scala目录->Mark Directory as->选择Sources root,观察文件夹颜色发生变化。

1 Scala语言入门_第8张图片
7)在scala包下,创建包com.atguigu.chapter01包名和Hello类名,
右键点击scala目录->New->Package->输入com.atguigu.chapter01->点击OK。
右键点击com.atguigu.chapter01->New->Scala Class->Kind项选择Object->Name项输入Hello。
1 Scala语言入门_第9张图片
8)编写输出Hello Scala案例
在类中中输入main,然后回车可以快速生成main方法;
在main方法中输入println(“hello scala”)

1.4.2class和object说明

对第一个程序进行说明
	main方法名
小括号表示参数列表
参数声明方式:java  -  类型  参数名
                       scala  -  参数名:类型
public修饰符:scala中没 有ipublic关键字,如果不声明访问权限,那么就是公共的。
static修饰符:scala中没 有静态语法,所以没有static关键字。
void关键字:表示返回做,但是不遵循面向对象语法,所以scala中没有,但是有Unit类型,表示没有返回值
scala中:方法名(参数列表):返回值类型
scala中声明方法必须采用关键字def声明
scala中方法实现赋值给方法声明,所以中间需要等号连接
Scala是一 个完全面向对象的语言,所以没有静态语法,为了能调用静态语法(模仿静态语法),
采用伴生对象单例的方式调用方法

Scala完全面向对象,故Scala去掉了Java中非面向对象的元素,如static关键字,void类型
1) static
	Scala无static关键字,由object实现类似静态方法的功能(类名.方法名)。
	class关键字和Java中的class关键字作用相同,用来定义一个类;
2) void
	对于无返回值得函数,Scala定义其返回值类型为Unit类

1.4.3Scala程序反编译

1)在项目的target目录Hello文件上点击右键->Show in Explorer->
	看到object底层生成Hello$.class和Hello.class两个文件
2)采用Java反编译工具jd-gui.exe反编译代码,将Hello.class拖到jd-gui.exe页面
object 名称
	从语法角度讲,上面语法表示声明了一个伴生对象
 伴生对象
    伴随类产生的一个对象
     当我们对源文件进行编译之后,默认会生成两个字节码文件,一个是伴生类,另一个是伴生对象所属类
 伴生类
    Scala_HelloWorld
 伴生对象所属类
    Scala_HelloWorld$
    伴生对象 (单例对象)
      MODULE$
注意:以后在Scala语言中,如果要定义类似Java的static内容,都应该放到伴生对象中去声明

1 Scala语言入门_第10张图片

你可能感兴趣的:(Scala,scala)