Scala基础语法全书教案教学设计.docx
《Scala基础语法全书教案教学设计.docx》由会员分享,可在线阅读,更多相关《Scala基础语法全书教案教学设计.docx(175页珍藏版)》请在咨信网上搜索。
1、Scala基础语法全书教案教学设计课程名称:Scala基础语法 章节名称:Scala入门与基础 202203月目 录一、 基本说明2二、 教学目标2三、 教学重点2四、 教学难点3五、 教学方法3六、 教学准备3七、 教学过程3八、 板书设计18九、 教具19十、 教学反思19一、 基本说明1 授课班级:2 授课人数:3 教学时间:4 课时:6课时5 课型:理论+实践二、 教学目标1 知识与技能 通过学习本课程,学生能够了解Scala的发展和关键特性。 通过学习本课程,学生能够了解Scala的应用场景。 通过学习本课程,学生能够掌握Scala的编译原理与运行。2 过程与方法 通过相关的理论学习
2、和案例练习,学生可以掌握Scala的安装和环境配置。 通过相关的理论学习和案例练习,学生可以掌握Scala的解释器(REPL)和命令行编程技巧。 通过相关的理论学习和案例练习,学生可以掌握Scala的标识符、命名规范、注解和换行符、常量与变量等3 情感、态度、价值观 通过Scala的特征学习,学生可以了解Scala与Java的关系,以及Scala相对Java的优势和新特性。三、 教学重点 HelloWorld案例的编译与运行。四、 教学难点 无。五、 教学方法 对比教学法+实战演练:教师以对比教学的方式,介绍Scala与Java的关系,以及Scala相对Java的优势和新特性,并通过Scala
3、和Java对比的基础语法学习,向学生展示Scala在标识符、关键字和变量的定义等方面与Java的相同点和不同点。同时,通过REPL的案例练习,向学生展示了如何在REPL中编写程序,以及REPL编程的常用技巧。六、 教学准备1 学生准备 Windows操作系统。 JDK8版本以上的安装包。 Scala2.1x安装包。2 教师准备 Windows操作系统。 JDK8版本以上的安装包。 Scala2.1x安装包。七、 教学过程1 导入新课(1)引出要讲解的知识我们为什么要学习Scala这门语言呢?Java之父James Goslin在一次参加JavaOne会议期间被人问道除了Java之外,还会在Ja
4、va虚拟机(JVM)上运行或者使用哪种语言,他脱口而出的答案就是Scala,足见Scala语言在他心目中的地位。而Groovy语言的创始人James Strachan认为将来可能代替Java的就是Scala,他甚至说如果有人在2003年把Martin Odersky、Lex Spoon以及Bill Venners编写的那本Programming in Scala拿给他看的话,Groovy这门语言很有可能就不会诞生了。因为在他看来,拥有众多出色特性的Scala语言不仅跟Groovy语言十分相似,而且还优于Groovy语言。另外,使用Scala语言的程序员能够获得令人满意的收入。根据国外知名IT网
5、站Stack Overflow 2019 年关于编程语言薪酬排行开发者调查报告得出的数据,Scala入选了全球前十大收入最高的编程语言排名。(2)进入主题,展开详细讲解本节课主要讲解一下Scala的入门与基础,主要包括4部分内容。第1部分将介绍何为Scala以及Scala的特点和应用;第2部分将讲解Scala的环境配置和安装;第3部分主要讲解Scala的编译和运行;第4部分我们将详细讲解Scala的基础语法。(3)明确学习目标 了解Scala的发展和关键特性。 了解Scala的应用场景。 掌握Scala的安装和环境配置。 掌握Scala的编译原理与运行。 掌握Scala的解释器(REPL)和命
6、令行编程技巧。 掌握Scala的标识符、命名规范、注解和换行符、常量与变量等。2 讲授课程(1)Scala的简介、特点和应用1)为什么选择Scala 技术大牛对Scala语言的评价非常之高。 使用Scala语言的程序员能够获得令人满意的收入。2)何为ScalaScala是Scalable Language的缩写,它是一门多范式的编程语言。Scala最早由瑞士洛桑联邦理工学院(EPFL)的Martin Odersky于2001年基于Funnel(Funnel是把函数式编程思想和Petri网相结合的一种编程语言)的工作开始设计,并于2003年底、2004年初发布Java平台的Scala。Scala
7、是一门将函数式编程和面向对象相结合的语言。 Scala是一门纯面向对象的语言Scala是一个纯面向对象的语言,它比Java更面向对象,前面提到的基本类型、方法,它都当作是一个对象去处理,另外Scala没有静态成员,它采用单例对象来实现与Java静态成员同样的功能。即使是一个+、-、*、/这样的操作符, Scala也认为是一个方法的调用。 Scala的函数式编程函数式编程最主要有两个特性:l 第一个特性就是在函数式编程中,函数是“一等公民”。l 第二个特性就是函数式编程这个方法不应该有副作用。3)Scala的面向对象和函数式编程示例前面为大家讲解了Scala的两个最主要的特性面向对象和函数式编程
8、,Scala的学习就是围绕这两个特性进行的。本小节我们举例说明这两个特性。4)Scala的特性l 面向对象特性。l 支持命令式风格和函数式风格。l 自适应静态类型。l 简洁性。l 基于事件的并发模型。l 能与Java很好的兼容。5)Scala的自适应静态类型和简洁性示例前面已经举例说明了Scala的面向对象编程和函数式编程这两个特性,下面就举几个例子来帮助大家理解Scala的自适应静态类型和简洁性这两个特性。6)Scala的应用l 客户端应用程序。l Web应用。l 大数据,如Spark、Flink等。l Scala还能像shell一样,作为脚本语言。l Scala与Java的无缝调用。(2)
9、Scala环境配置和安装1)Scala的环境准备Scala语言可以运行在Windows系统、Linux系统、UNIX系统和Mac系统中。由于Scala是运行在JVM上的一种语言,所以想要安装Scala,就必须先安装Java环境,也就是说必须先安装JDK。学习本课程需要安装的Java版本是1.8,Scala的版本是2.12.x(这也是为后期讲解Spark做准备)。2)Scala在Windows平台上的安装在Windows平台上安装Scala主要有三个步骤:第一步是安装JDK;第二步是下载和安装Scala;第三步是安装完后配置一个环境变量。因为学习过Java的同学都安装过JDK,所以第一步JDK的
10、安装就不再讲解了。下面我们主要讲解一下Scala的下载与安装以及环境变量的配置。 Scala的下载和安装下载地址:http:/www.scala-lang.org/downloads安装步骤:一直下一步即可。 Scala环境变量配置系统环境变量值 (举例)UNIX$SCALA_HOME/usr/local/share/scala$PATH$PATH:$SCALA_HOME/binWindows%SCALA_HOME%c:Progra1Scala%PATH%PATH%;%SCALA_HOME%bin(3)Scala的编译和运行1)Scala的编译和运行原理 Scala与Java的编译和运行我们可
11、以通过两种方式来进行Scala代码的编写:l 第一种方式是通过Scala的解释器(REPL);l 第二种方式也是非常常用的一种方式,即使用IDE来编写。当我们编写完Scala程序之后,可以通过以下三种方式来进行代码的运行。l 在命令行上运行。l 使用Scala的解释器(REPL)。l IDE。 Scala与Java的编译和运行原理当编译和运行一个编写好的Java程序或Scala程序时,第一步就是通过一个编译器把这种高级语言的文件(比如Java就是.java,Scala就是.scala)编译成对应的class文件,然后class文件通过执行器运行在JVM上,最后JVM把这个class文件转换成对
12、应的不同平台上的不同指令。2)Scala的编译、运行和反编译 Scala程序的入口Scala的程序入口有两种,通过任何一种方式都可以定义一个可执行的程序:l 定义一个object对象,然后在object对象里实现一个main方法;l 定义一个object对象,继承APP的一个特质(这里的特质大家可以理解成对应Java中的一个接口,后面会详细讲解)。 Scala的编译和运行之前讲过,要想运行一个Scala程序,我们有三种方式:第一种方式是使用命令行;第二种方式是使用Scala的解释器;第三种方式是直接利用IDE来运行。这里就以命令行方式为例讲解一下编译和运行Scala程序的过程:首先使用scal
13、ac命令将编写好的Scala程序文件(.scala)编译成class文件;然后使用scala命令+编译得到的class文件名就可以运行Scala程序。 Scala的反编译在Scala和Java中进行编译的时候,编译器会在背后帮我们完成许多的工作,此时编译生成的class文件中除了原先的程序代码外,会自动添加很多内容,所以要想知道编译器做了哪些工作,就必须通过反编译的方式进行查看。编译后的class文件通过一般的文本编辑器打开会显示乱码,无法进行查看,所以当需要查看编译后的class文件的内容,想知道编译器为我们做了哪些工作时,可以通过以下三种方式来实现:l 使用scalap命令反编译后查看;l
14、 由于class文件是运行在JVM上的,因此也可以使用javap命令反编译后查看;l 利用一些第三方的反编译插件查看。反编译class文件主要有以下三个作用。l 通过对class文件的反编译,可以更深入了解所编写代码在编译器里的工作原理。l 通过对class文件的反编译,可以查看编写的代码转换成的汇编指令。汇编指令非常有用,尤其是在理解高并发编程的时候。l 当实际开发工作中其他程序员所提供Java包中的class文件无法看懂时,可以反编译查看源代码。3) 指定编译和运行路径首先以HelloWord案例为基础,在其中引入一个其他的类,再使用scala、scalac命令去编译和运行程序。然后我们把
15、上面例子中的Person.class文件移动到classes文件夹下,再次编译和运行代码,学习一下如何指定编译和运行时的路径,以及相对路径的使用。4)反编译的三种方式之前讲过,要想反编译一个class文件有三种方式,我们可以根据不同的需求选择不同的方式。前面已经练习过怎样使用scalap命令去反编译class文件,这里我们首先举例说明如何使用javap命令反编译一个Scala生成的class文件,然后举例讲解一种可以在编译的同时查看Scala的代码是如何执行的方式。5)REPL基本操作这一节我们来学习运行Scala的第二种方式使用Scala的解释器REPL。REPL是Read-Eval-Pri
16、nt Loop(交互式解释器)的缩写,它是Scala中一个评估表达式的工具,大家把它理解成一个交互式的命令行工具即可。REPL的常用命令:use/printto show typed desugarings. 用/ print 显示键入的重复标记。use:helpfor a list of commands. 获取命令列表。use:loadto load a file of REPL input. 加载REPL输入文件。use:pasteto enter a class and object as companions. 以输入类和对象作为伴侣。use:paste -rawto disable
17、 code wrapping, to define a package. 禁用代码包装,以定义软件包。use:javapto inspect class artifacts. 检查类工件。use-Yrepl-outdirto inspect class artifacts with external tools. 使用外部工具检查类工件。use:powerto enter power mode and import compiler components. 进入电源模式并导入编译器组件。use:settingsto modify compiler settings; some settings
18、 require:replay. 来修改编译器设置; 某些设置要求:重播。use:replayto replay the session with modified settings. 以修改后的设置重播会话。6)REPL常见命令的应用 在Scala解释器中使用自定义类或者第三方类我们在使用Scala解释器的时候,可以直接使用像字符串、整型、浮点型等这些常用类型的对象还有方法,这是由于Scala解释器在启动时会自动加载Scala和Java的环境变量,从而把Scala和Java的一些默认定义好的方法和类加载进来的缘故。 在Scala解释器中输入ifelse语句像ifelse这种带有多行结束符的语
19、句,是没法在Scala解释器中运行的。就算是提前编写好的一段ifelse代码,复制过来一样是无法使用的,因为解释器会认为代码在第一行就已经结束了。但我们可以使用解释器命令paste来完成ifelse代码的输入。(4)Scala基础语法1)Scala的标识符 标识符的定义标识符是用户编程时使用的名字,可用于给变量、常量、函数、语句块等命名,以建立起名称与使用之间的关系。 Scala中标识符的作用Scala组件都需要名称,所以标识符的作用是给对象、类、变量和方法命名。在Scala中使用标识符时需要注意以下两点:l 标识符不能以数字开头,并且不能是Scala中的关键字(但可以包含关键字)。l 符号$
20、在Scala中也可以看作字母。然而以$开头的标识符被保留作为Scala编译器产生的标识符之用,应用程序应该避免使用$开头的标识符,以免造成冲突。 Scala中标识符的分类Scala中的标识符分为字母数字标识符、运算符标识符、混合标识符和字面量标识符四大类,分别介绍如下。l 字母数字标识符:字母数字标识符以字母或下划线开头,后面可以有更多的字母、数字或下划线。不建议在标识符中使用$开头的标识符。l 运算符标识符:运算符标识符由一个或多个运算符字符组成。运算符字符是可打印的ASCII字符,如:+、:、:-($colon$minus$greater)、?、#等。l 混合标识符:混合标识符是字母数字标
21、识符后面跟着一个下划线和一个运算符标识符,如a_+。l 字面量标识符:一个字面量标识符是一个随意的字符串,包含在反引号()中。前面讲过,Scala中的关键字不可以作为标识符使用,但是用反引号括起来就可以使用了,比如def、yield等。2)Scala的关键字和注释 Scala与Java的关键字下图列出了Scala和Java中的关键字,可以看到其中有Scala和Java共有的关键字,也有各自独有的关键字。 Scala代码中的注释在代码中添加注释可以解释说明程序,提高程序的可读性。和Java一样,在Scala中,主要有单行注释、多行注释和文档注释这三种类型,它们的语法格式分别介绍如下。单行注释的语
22、法格式:/注释文字多行注释的语法格式:/*注释文字*/文档注释的语法格式:/* 注释文字 */3)Scala的分号分号是表达式的分隔符,Scala具有自动推断分号的功能。在Scala和Java中,分号都是一个语句的分隔符,都起到判断一个语句或表达式是否结束的作用。与Java中编写代码换行时必须用分号结束这一强制性要求不同,Scala具有自动推断分号的功能。也就是说,在Scala中编写代码换行时,可以不加分号,当没有加分号时,Scala会在编译时自动加上分号。虽然Scala具有自动推断分号的功能,但是必须遵守以下规则:l 如果一行只有一条语句或一个表达式时,则分号可以加,也可以不加;l 如果一行
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Scala 基础 语法 全书 教案 教学 设计
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【丰****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【丰****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。