1.1概述

1.1.1Scala和Java关系

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

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.3插件安装

1.4HelloWorld案例

1.4.1创建IDEA项目工程

1)打开IDEA->点击左侧的Flie->选择New->选择Project…

2)创建一个Maven工程,并点击next

3)GroupId输入com.atguigu->ArtifactId输入scala0513->点击next->点击Finish
注意:工程存储路径一定不要有中文和空格。


4)指定项目工作目录空间

5)默认下,Maven不支持Scala的开发,需要引入Scala框架。
在scala0513项目上,点击右键-> Add Framework Support… ->选择Scala->点击OK

注意:如果是第一次引入框架,Use libary看不到,需要选择你的Scala安装目录,然后工具就会自动识别,就会显示user libary。

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


7)在scala包下,创建包com.atguigu.chapter01包名和Hello类名,
右键点击scala目录->New->Package->输入com.atguigu.chapter01->点击OK。
右键点击com.atguigu.chapter01->New->Scala Class->Kind项选择Object->Name项输入Hello。

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) staticScala无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语言入门相关推荐

  1. (一)Scala语言——入门

    目录 一.Scala 入门 1. 概述 1.1 为什么学习Scala 1.2 Scala 发展历史 1.3 Scala 和 Java 关系 1.4 Scala 语言特点 2. Scala 环境搭建 3 ...

  2. 3000门徒内部训练绝密视频(泄密版)第1课:大数据最火爆语言Scala光速入门

    大数据最火爆语言Scala光速入门 scala 可以使用java的库 scala 的工厂方法:apply 条件表达式有返回值 数组可以用to ,箭头 <- 最后一行内容的值是整个代码块的返回值 ...

  3. Scala语言初入门

    scala介绍 Scala语言来自于Scalable(可伸缩的)既可以写一些小的脚本,又可以写一写复杂的服务器端的程序. Scala是一门纯正的面向对象语言,具有OO特征. Scala是一门函数式语言 ...

  4. Scala入门到精通——第一节 Scala语言初步

    本节主要内容 Scala简介 为什么要学习Scala Scala语言初步 1. Scala简介 Scala(scala Language的简称)语言是一种能够运行于JVM和.Net平台之上的通用编程语 ...

  5. Scala开发入门教程

    出处:http://blog.csdn.net/mapdigit/article/details/21878083 Scala语言和其它语言比如Java相比,算是一个比较复杂的语言,它是一个面向对象和 ...

  6. vhdl语言入门_初学Chisel语言,看这篇就够了:最方便简洁的入门资料整理

    声明:本文是我一个很优秀的学生总结的,放出来供广大chisel语言爱好者参考. Chisel(Constructing Hardware In a Scala Embedded Language)是U ...

  7. python语言入门-python语言入门资料

    PyQt5是基于Digia公司强大的图形程式框架Qt5的python接口,由一组python模块构成.PyQt5本身拥有超过620个类和6000函数及方法.在可以运行于多个平台.PyQt5拥有双重协议 ...

  8. 13:Scala语言的数据结构和算法

    第十九章 Scala语言的数据结构和算法 19.1 数据结构(算法)的介绍 数据结构的介绍   1.数据结构是一门研究算法的学科,只从有了编程语言也就有了数据结构.学好数据结构可以编写出更加漂亮.更加 ...

  9. Spark快速大数据分析——Scala语言基础(壹)

    Spark快速大数据分析--Scala语言基础(壹) 文章目录 Spark快速大数据分析--Scala语言基础(壹) 前记 Scala的历史 环境搭建: 1.SBT构建工具和REPL: 2.使用IDE ...

最新文章

  1. 数据蒋堂 | 倍增分段技术
  2. golang strings包部分函数使用
  3. python 自定义词典_pyhanlp用户自定义词典添加
  4. JVM六大垃圾回收器特点及区别
  5. java jpa性能_[Java Performance] 数据库性能最佳实践 - JPA和读写优化
  6. 微软解释 Edge 浏览器比 Chrome 更加安全的原因
  7. c语言利用fun求最小值,c语言:请编写函数fun(),他的功能是:求f(0)到f(50)的最小值,已知:f(0)=f(1)=1,f(2)=0,f...
  8. maven自定义webapp目录
  9. AndroidStudio_安卓原生开发_拍照存储在Uri中_利用图片后通过Uri获取文件真实路径_然后删除---Android原生开发工作笔记161
  10. Vue源码分析 - observer.js
  11. BZOJ 1619: [Usaco2008 Nov]Guarding the Farm 保卫牧场
  12. ubuntu五笔输入法安装_打造最强Windows 10微软拼音输入法 + 600万词库下载
  13. 雷达原理---时频分析--1.基本概念
  14. rplidar适配说明
  15. 小提琴弓是如何出现的?
  16. 什么是拖延症 ----- 时间管理:终结拖延症小技巧之高效利用时间
  17. 对于LSB的理解(位的LSB、模数转换的LSB
  18. 用echartsjs 实现动态绘制折线、柱状等图形,并实现多图联动效果
  19. 百度地图api html信息窗口,百度地图 javascript api自定义信息窗口
  20. 有关计算机的英语作文一千字,英语作文一封信大学1000词5篇

热门文章

  1. 2019.7.9 校内测试题 数学问题
  2. 协作翻译平台 调研 version 0.5
  3. 【转】开源应用架构之​SeleniumWebDriver(中)
  4. 无线安全专题_破解篇02--kali破解pin码
  5. Excel 单元格中增加下拉菜单并且填充不同的颜色
  6. html5shiv 源码,javascript,_请教一个html5shiv源码插入样式的问题,javascript - phpStudy...
  7. 张五常:救金融之灾有三派之别
  8. python游戏开发实战:酷跑游戏
  9. vivos9充电电池保护设置方法分享
  10. 使用POI导出word文档