Scala基础语法全书教案教学设计_第1页
Scala基础语法全书教案教学设计_第2页
Scala基础语法全书教案教学设计_第3页
Scala基础语法全书教案教学设计_第4页
Scala基础语法全书教案教学设计_第5页
已阅读5页,还剩138页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Scala基础语法全书教案教学设计

课程名称:Scala基础语法______________

章节名称:Scala入门与基础____________

202203月

目录

一、基本说明....................................................................1

二、教学目标...................................................................2

三、教学重点...................................................................2

四、教学难点...................................................................2

五、教学方法....................................................................3

六、教学准备....................................................................3

七、教学过程....................................................................3

八、板书I电十..................................................................18

九、教具......................................................................18

十、教学反思..................................................................19

一、基本说明

1.授课班级:

2.授课人数:

3.教学时间:

4.课时:6课时

5.课型:理论+实践

二、教学目标

1.知识与技能

>通过学习本课程,学生能够了解Scala的发展和关键特性。

>通过学习本课程,学生能够了解Scala的应用场景。

>通过学习本课程,学生能够掌握Scala的编译原理与运行。

2.过程与方法

>通过相关的理论学习和案例练习,学生可以掌握Scala的安装和环境配置。

>通过相关的理论学习和案例练习,学生可以掌握Scala的解释器(REPL)和命令行

编程技巧。

>通过相关的理论学习和案例练习,学生可以掌握Scala的标识符、命名规范、注解

和换行符、常量与变量等

3.情感、态度、价值观

>通过Scala的特征学习,学生可以了解Scala与Java的关系,以及Scala相对Java

的优势和新特性。

三、教学重点

>HelloWorld案例的编译与运行。

四、教学难点

>无。

五、教学方法

>对比教学法+实战演练:教师以对比教学的方式,介绍Scala与Java的关系,以及

Scala相对Java的优期口新特性,并通过Scala和Java对比的基础语法学习,向学

生展示Scala在标识符、关键字和变量的定义等方面与Java的相同点和不同点。同

时,通过REPL的案例练习,向学生展示了如何在REPL中编写程序,以及REPL编

程的常用技巧。

六、教学准备

1.学生准备

>Windows操作系统。

>JDK8版本以上的安装包。

>Scala2.1x安装包。

2.教师准备

>Windows操作系统。

>JDK8版本以上的安装包。

>Scala2.1x安装包。

七、教学过程

1.导入新课

(1)引出要讲解的知识

我们为什么要学习Scala这门语言呢?

Java之父JamesGoslin在一次参加JavaOne会议期间被人问道除了Java之外,还会

在Java虚拟机(JVM)上运行或者使用哪种语言,他脱口而出的答案就是Scala,足见Scala

语言在他心目中的地位。而Groovy语言的创始人JamesStrachan认为将来可能代替Java

的就是Scala,他甚至说如果有人在2003年把MartinOdersky.LexSpoon以及Bill

Venners编写的那本《ProgramminginScala》拿给他看的话,Groovy这门语言很有可

能就不会诞生了。因为在他看来,拥有众多出色特性的Scala语言不仅跟Groovy语言十分

相似,而且还优于Groovy语言。

另外,使用Scala语言的程序员能够获得令人满意的收入。根据国外知名IT网站Stack

Overflow2019年关于编程语言薪酬排行开发者调查报告得出的数据,Scala入选了全球

前十大收入最高的编程语言排名。

(2)进入主题,展开详细讲解

本节课主要讲解一下Scala的入门与基础,主要包括4部分内容。第1部分将介绍何

为Scala以及Scala的特点和应用;第2部分将讲解Scala的环境配置和安装;第3部分主

要讲解Scala的编译和运行;第4部分我们将详细讲解Scala的基础语法。

(3)明确学习目标

>了解Scala的发展和关键特性。

>了解Scala的应用场景。

>掌握Scala的安装和环境配置。

>掌握Scala的编译原理与运行。

>掌握Scala的解释器(REPL)和命令行编程技巧。

>掌握Scala的标识符、命名规范、注解和换行符、常量与变量等。

2.讲授课程

(1)Scala的简介、特点和应用

1)为什么选择Scala

①技术大牛对Scala语言的评价非常之高。

②使用Scala语言的程序员能够获得令人满意的收入。

2)何为Scala

Scala是ScalableLanguage的缩写,它是一门多范式的编程语言。Scala最早由瑞士

洛桑联邦理工学院(EPFL)的MartinOdersky于2001年基于Funnel(Funnel是把函数

式编程思想和Petri网相结合的一种编程语言)的工作开始设计,并于2003年底、2004

年初发布Java平台的Scala。

Scala是一门将函数式编程和面向对象相结合的语言。

①Scala是一门纯面向对象的语言

Scala是一个纯面向对象的语言,它比Java更面向对象,前面提到的基本类型、方法,

它都当作是一个对象去处理,另外Scala没有静态成员,它采用单例对象来实现与Java静

态成员同样的功能。即使是一个+、二*、/这样的操作符,Scala也认为是一个方法的调

用。

②Scala的函数式编程

函数式编程最主要有两个特性:

•第一个特性就是在函数式编程中,函数是“一等公民"。

•第二个特性就是函数式编程这个方法不应该有副作用。

3)Scala的面向对象和函数式编程示例

前面为大家讲解了Scala的两个最主要的特性——面向对象和函数式编程,Scala的学

习就是围绕这两个特性进行的。本小节我们举例说明这两个特性。

4)Scala的特性

•面向对象特性。

•支持命令式风格和函数式风格。

•自适应静态类型。

•简洁性。

•基于事件的并发模型。

•能与Java很好的兼容。

5)Scala的自适应静态类型和简洁性示例

前面已经举例说明了Scala的面向对象编程和函数式编程这两个特性,下面就举几个例

子来帮助大家理解Scala的自适应静态类型和简洁性这两个特性。

6)Scala的应用

•客户端应用程序。

•Web应用。

•大数据,如Spark、Flink等。

•Scala还能像shell一样,作为脚本语言。

•Scala与Java的无缝调用。

(2)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的安装就不再讲解了。下面我们主要讲解一下Scala的下载与安装以及环

境变量的配置。

①Scala的下翱口安装

下载地址:http:〃/downloads

安装步骤:一直下一步即可。

②Scala环境变量配置

系统环境变量值(举例)

UNIX$SCALA_HOME/usr/local/share/scala

$PATH$PATH:$SCALA_HOME/bin

Windows%SCALA_HOME%c:\Progra-l\Scala

%PATH%%PATH%;%SCALA_HOME%\bin

(3)Scala的编译和运行

1)Scala的编译和运行原理

①Scala与Java的编港口运行

我们可以通过两种方式来进行Scala代码的编写:

•第一种方式是通过Scala的解释器(REPL);

•第二种方式也是非常常用的一种方式,即使用IDE来编写。

当我们编写完Scala程序之后,可以通过以下三种方式来进行代码的运行。

•在命令行上运行。

•使用Scala的解释器(REPL)。

•IDE。

②Scala与Java的编译和运行原理

当编译和运行一个编写好的Java程序或Scala程序时,第一步就是通过一个编译器把

这种高级语言的文件(比如Java就是.java,Scala就是.scala)编译成对应的class文件,

然后class文件通过执行器运行在JVM上,最后JVM把这个class文件转换成对应的不同

平台上的不同指令。

JVMforDOS

DOS

JVMforWinx

Windows

JVMforUnix

UNIX

Other

OtherPlatform

2)Scala的编译、运行和反编译

①Scala程序的入口

Scala的程序入口有两种,通过任何一种方式都可以定义一个可执行的程序:

•定义一^object对象,然后在object对象里实现一<^main方法;

•定义一个。bject对象继承APP的一个特质这里的特质大家可以理解成对应Java

中的一个接口,后面会详细讲解).

②Scala的编译和运行

之前讲过,要想运行一个Scala程序,我们有三种方式:第一种方式是使用命令行;

第二种方式是使用Scala的解释器;第三种方式是直接利用IDE来运行。

这里就以命令行方式为例讲解一下编译和运行Scala程序的过程:首先使用scalac命

令将编写好的Scala程序文件(.scala)编译成class文件;然后使用scala命令+编译得到

在Scala和Java中进行编译的时候,编译器会在背后帮我们完成许多的工作,此时编

译生成的class文件中除了原先的程序代码外,会自动添加很多内容,所以要想知道编译器

做了哪些工作,就必须通过反编译的方式进行查看。

objectHelloWord

Helloword.scalaextends

objectHelloWordscalacscalapscala.AnyRefwith

extendsApp{Helloword.classscala.App{

println("hello1代码defthis()={/*

word!")2.编译器工作compiledcode*/)

}I

F.,

编译后的class文件通过一般的文本编辑器打开会显示乱码,无法进行查看,所以当

需要查看编译后的class文件的内容,想知道编译器为我们做了哪些工作时,可以通过以下

三种方式来实现:

•使用scalap命令反编译后查看;

•由于class文件是运行在JVM上的,因此也可以使用javap命令反编译后查看;

•利用一些第三方的反编译插件查看。

反编译class文件主要有以下三个作用。

•通过对dass文件的反编译,可以更深入了解所编写代码在编译器里的工作原理。

•通过对class文件的反编译,可以查看编写的代码转换成的汇编指令。汇编指令

非常有用,尤其是在理解高并发编程的时候。

•当实际开发工作中其他程序员所提供Java包中的class文件无法看置时,可以反

编译查看源代码。

3)指定编译和运行路径

首先以HelloWord案例为基础,在其中引入—其他的类,再使用scala、scalac

命令去编渤口运行程序。

然后我们把上面例子中的Person.class文件移动到classes文件夹下,再次编译和运

行代码,学习一下如何指定编渤口运行时的路径,以及相对路径的使用。

4)反编译的三种方式

之前讲过,要想反编译—class文件有三种方式,我们可以根据不同的需求选择不同

的方式。前面已经练习过怎样使用scalap命令去反编译class文件,这里我们首先举例说

明如何使用javap命令反编译TScala生成的class文件,然后举例讲解一种可以在编译

的同时查看Scala的代码是如何执行的方式。

5)REPL基本操作

这一节我们来学习运行Scala的第二种方式一使用Scala的解释器REPL。REPL是

Read-Eval-PrintLoop(交互式解释器)的缩写,它是Scala中一个评估表达式的工具,大

家把它理解成一个交互式的命令行工具即可。

REPL的常用命令:

se//print<tab>toshowtypeddesugarings.用//print<tab>显示键入的重复标记。

use:helpforalistofcommands.获取命令歹ll表。

use:loadtoloadafileofREPLinput.加载REPL输入文件。

use:pastetoenteraclassandobjectascompanions.以输入类和对象作为伴侣。

use:paste-rawtodisablecodewrapping,todefineapackage.禁用彳弋百马包装,以定义

软件包。

use:javaptoinspectclassartifacts.检查类工件。

use-Yrepl-outdirtoinspectclassartifactswithexternaltools.使用外部工具检查类工

件。

use:powertoenterpowermodeandimportcompilercomponents.进入电源模式并

导入编译器组件。

use:settingstomodifycompilersettings;somesettingsrequire:replay.来修改编译器

设置;某些设置要求:重播。

use:replaytoreplaythesessionwithmodifiedsettings.以修改后的设置重播会话。

6)REPL常见命令的应用

①在Scala解释器中使用自定义类或者第三方类

我们在使用Scala解释器的时候,可以直接使用像字符串、整型、浮点型等这些常用类

型的对象还有方法这是由于Scala解释器在启动时会自动加载Scala和Java的环境变量,

从而把Scala和Java的一些默认定义好的方法和类加载进来的缘故。

②在Scala解释器中输入if...else…语句

像if...else…这种带有多行结束符的语句,是没法在Scala解释器中运行的。就算是提

前编写好的一段if...else…代码,复制过来一样是无法使用的,因为解释器会认为代码在第

一行就已经结束了。但我们可以使用解释器命令paste来完成if...else...代码的输入。

(4)Scala基础语法

1)Scala的标识符

①标识符的定义

标识符是用户编程时使用的名字,可用于给变量、常量、函数、语句块等命名,以建立

起名称与使用之间的关系。

②Scala中标识符的作用

Scala组件都需要名称,所以标识符的作用是给对象、类、变量和方法命名。

在Scala中使用标识符时需要注意以下两点:

•标识符不能以数字开头,并且不能是Scala中的关键字(但可以包含关键字)。

•符号$在Scala中也可以看作字母。然而以$开头的标识符被保留作为Scala编译

器产生的标识符之用,应用程序应该避免使用$开头的标识符,以免造成冲突。

③Scala中标识符的分类

Scala中的标识符分为字母数字标识符、运算符标识符、混合标识符和字面量标识符四

大类,分别介绍如下。

•字母数字标识符字母数字标识符以字母或下划线开头后面可以有更多的字母、

数字或下划线。不建议在标识符中使用$开头的标识符。

•运算符标识符:运算符标识符由一个或多个运算符字符组成。运算符字符是可打

印的ASCII字符,如:+、:::、:->($colon$minus$greater)、?、~、#等。

•混合标识符:混合标识符是字母数字标识符后面跟着一个下划线和一个运算符标

识符,如

a_+0

•字面量标识符:一个字面量标识符是一个随意的字符串,包含在反引号('')中。

前面讲过,Scala中的关键字不可以作为标识符使用,但是用反引号括起来就可

以使用了,比如'def'、'yield'等。

2)Scala的关键字和注释

①Scala与Java的关键字

下图列出了Scala和Java中的关键字,可以看到其中有Scala和Java共有的关键字,

也有各自独有的关键字。

assert,boolean,

break,byte,char,

continue,default,abstract,case,

double,enum,float,catch,class,do,detforSome,

implements,else,extends,implicit,lazy,

instanceof,int,false,final,finally,match,object,

interface,long,foeifimport,override,

native,public,short,new,null,sealed,trait,

static,strictfp,switch,package,private,type,val,var,

synchronized,throws,protected,return,with,yield

transient,volatile,super,this,throw;

void,const,gototrue,try,while

X,

sjava______________

②Scala代码中的注释

在代码中添加注释可以解释说明程序,提高程序的可读性。和Java一样,在Scala中,

主要有单行注释、多行注释和文档注释这三种类型,它们的语法格式分别介绍如下。

单行注释的语法格式:

〃注释文字

多行注释的语法格式:

/*注释文字*/

文档注释的语法格式:

/**注释文字*/

3)Scala的分号

分号是表达式的分隔符,Scala具有自动推断分号的功能。

在Scala和Java中,分号都是一个语句的分隔符,都起到判断一个语句或表达式是否

结束的作用。与Java中编写代码换行时必须用分号结束这一强制性要求不同,Scala具有

自动推断分号的功能。也就是说,在Scala中编写代码换行时,可以不加分号,当没有加分

号时,Scala会在编译时自动加上分号。虽然Scala具有自动推断分号的功能,但是必须遵

守以下规则:

•如果一行只有一条语句或一个表达式时,则分号可以加,也可以不加;

•如果一行有多条语句或多个表达式时,则分号必须填写。

Scala在自动推断分号时一般以换行代表一条语句或一个表达式的结束,但是在遇到以

下任何一种情况时都会推断出表达式尚未结束,从而把当前表达式延续到下一行:

•如果当前行以一个不能结尾的词结尾,如英文句号或中辍操作符;

•如果当前行结尾出现在()或口内。

4)Scala分号示例演示

本节我们举例复习一下Scala分号的使用。

5)Scala的变量

①变量定义

变量是一种使用方便的占位符,用于引用计算机内存地址,变量创建后会占用一定的内

存空间。

②变量的作用

访问和修改内存数据。

③变量的声明

var:声明可变变量;

val:声明不可变变量。

④变量的类型声明

var/val变量名:类型

⑤声明多变量

val|var变量1,变量2,...=变量值

6)Scala变量内存结构

变量的三要素是变量的名称、变量的地址,及真正存储数据的内存空间,我们通过变量

的名称和地址来找到真正存储数据的空间。在JVM中,变量和变量的地址还有数据是分开

存储的,整个内存被划分为两大部分:"栈"和"堆"。"栈"里主要存储引用的地址,也

就是内存空间的地址;而"堆"里存的是内存空间。每一个声明的变量都会被分配"堆"里

的一部分内存空间,并为该部分内存空间分配一个标号这个标号实际就是内存空间的地址,

该地址跟变量存储在"栈"里。当一个变量想要访问其内存空间中的数据时,就要先在"栈"

里找到该变量对应的内存空间的地址,然后通过该地址指向或者说引用"堆"中的数据。

栈堆

引用

This

7)Scala的lazy变量

一个变量在声明时,使用lazy进行修饰,那么这个变量只有在使用的时候才会被赋值。

声明一个lazy变量的语法如下:

lazyval变量名

在Scala中使用lazy变量主要有以下两个作用。

•优化程序的性能。

•解决继承变量为空的问题。

3.巩固练习

(1)请指出以下哪些选项是合法的标识符。若判断为不合法的标识符,请给出原因。

A.age

B.abc#@

C.salary

D.ab

E.name_+

F._value

G._l_value

H.$salary

I.yield

J.123abc

K.def

L.implicit

M.For

N.-salary

(2)判断以下语句是否为合法的语句。

vals=hello"println(s)

(3)以下哪些是合法的语句。若判断为不合法的语句,请给出原因。

A.vala=10

B.varb:String=100

C.vals="hello";

s二“您好‘

A.varage=10;

age=20

(4)以下代码中标注的①、②、③哪个是合法的语句。

classPerson{

valname="Scala"

valsex="wo"

varage=20

)

valperson=newPerson

="scala"〃①

person.age=30//②

person=newPerson〃③

4.课堂小结

本课程通过Scala的特征学习,向学生展示了Scala与Java的关系,以及Scala相对

Java的优势和新特性;并通过对scala和scalac命令的学习,向学生展示了如何编写、运

行和编译一个Scala程序;然后通过REPL的案例练习,向学生展示了如何在REPL中编写

程序,以及REPL编程常用技巧;最后通过Scala和Java对比的基础语法学习,向学生展

示了Scala在标识符、关键字和变量的定义等方面与Java的相同点和不同点。

5.布置作业

(1)课下作业

用Scala编写一个注册类,含有用户名和密码两个属性,要求:

1)用户名不可修改;

2)密码可修改。

然后在REPL分别输出原始信息(用户名和密码)和修改后的信息。

(2)预习作业

1)Scala的数据类型。

2)Scala的基本运算。

八、板书设计

Scala入门与Sfit

一、课程目标一、Scala的筒介、特点和应用三、Scala的编译和运行

(-)Scala的编译和运行原理

㈠为什^^Scala(-)Scala的编译、运的反编译

(-)何为Scala(三)指定编译和运行路径

二、课程错

1__(四)反编译的三种方式

(三)Scala的面向对余和函数式编程示例宜―

(五)REPL基作

(四)Scala的锅±(六)REPL常见合链位

三、课程介绍课程内容4(五)Scala的自适应静态类型和简洁性示例四、Scalaffii班法

(六)Scala的晚㈠Scala共明

(-)Scala的关键字和注绛

_(三)Seal迎分^

四、课程内容一Seal班肆(四)seal盼奏附S示

(一)Scala的磁百㈤Scala的迎

(-)Scala田茄(10¥7$平台±般装(六)Scala涯内超驰

(七)Scala的lazy变量

五、课程总结V.

九、教具

A无

十、教学反思

课程名称:Java核心基础_______________

章节名称:类型转换和运算符

2019年12月

目录

一、基本说明....................................................................1

二、教学目标...................................................................2

三、教学重点...................................................................2

四、教学难点...................................................................2

五、教学方法....................................................................3

六、教学准备....................................................................3

七、教学过程....................................................................3

八、板书t钻十..................................................................18

九、教具......................................................................18

十、教学反思..................................................................19

八、基本说明

6.授课班级:

7.授课人数:

8.教学时间:

9.课时:6课时

10.课型:理论+实践

九、教学目标

4.知识与技能

>通过自主学习本课程,学生能够理解精度损失的含义,掌握精度损失出现的原因。

>通过自主学习本课程,学生能够理解运算符和表达式的概念。

5.过程与方法

>通过课堂练习,学生能够进一步掌握进制间的转换规则和方法。

6.情感、态度、价值观

>通过完成运算符的运用练习,学生能够掌握Java中的运算符规则,理解运算符的功

能及运用,为学生掌握Java语言打下坚实基础。

十、教学重点

>数据类型转换分类。

>精度损失。

A编码。

>数据类型转换扩展。

>进制转换。

A原码、补码和反码。

十一、教学难点

>需要学生理解和掌握一些数据类型转换的扩展知识。

>数据类型转换面试题分析。

>掌握不同进制之间的转换规则。

>掌握原码、补码和反码的定义及计算。

十二、教学方法

>边讲边练:教师以边讲边练的方式,一边介绍Java语言中的舍入误差、精度损失、

编码、进制、原码、补码和反码,及算术运算符、赋值运算符、关系运算符和自增

自减运算符等内容,一边通过代码演练,让学生巩固所学知识。

十三、教学准备

3.学生准备

>Windows操作系统。

>JDK8版本以上的安装包。

4.教师准备

>Windows操作系统。

>JDK8版本以上的安装包。

十四、教学过程

6.导入新课

(1)回顾上节课内容并答疑解惑

回顾上一节课的内容,并对上一节课布置的作业以及学生提出的问题进行答疑解惑。

(2)进入主题,展开详细讲解

本节课我们将学习Java语言的类型转换和运算符两大部分内容。类型转换部分,除了

介绍类型转换的分类等基础知识外,我们还将学习Java语言中的舍入误差、精度损失、编

码、进制、原码、补码和反码等内容;而运算符部分,本节课只对一些基本的运算符进行介

绍,包括算术运算符、赋值运算符、关系运算符和自增自减运算符等,一些高级的运算符将

在下一课程中学习。

(3)明确学习目标

>理解精度损失的含义。

>掌握精度损失出现的原因。

>掌握进制间的转换规则。

>理解运算符和表达式概念。

>掌握Java中的运算符规则。

7.讲授课程

(1)类型转换

1)变量注意事项

在用Java语言编程的过程中,使用变量时有3个注意事项:

•变量如果没有进行赋值,是不可以直接使用的;

•变量只有在自己所属的作用域之内才有效;

•一行代码中可以一次性定义多个相同类型的变量并且赋值,但是不推荐使用。

而所谓作用域,指的是从变量定义的一行开始,至所在的大括号结束之间的区域。

2)舍入误差

舍入误差(Round-offerror)是指运算得到的近似值和精确值之间的差异。在Java语

言中多数的小数运算是不能获取精确值的。

3)类型转换分类

类型转换是将一个值从一种类型更改为另一种类型的过程。它分为两大类,分别为自动

类型转换和强制类型转换。

自动类型转换也称为隐式类型转换,它是由范围小的数据类型转换为范围大的数据类型,

系统将自动执行;强制类型转换也称为显式类型转换,它是由范围大的数据类型转换为范围

小的数据类型。

两种类型的数据类型转换都有各自的特点,自动类型转换的特点是自动完成转换,不需

要程序员特殊处理。强制类型转换的特点是需要特殊处理,否则可能编译不通过。

4)精度损失

通过强制类型转换确实可以将范围大的数据类型转换为范围小的数据类型,但请注意,

当数值在范围小的数据类型的范围之内时,是不会出现错误的,但当数值在其范围之外时,

强制类型转换的输出结果就会有误差,这就是精度损失。

强制类型转换可能会出现精度损失的问题,且将小数强转为整数时,会直接将小数部分

舍弃,此时也会出现精度损失。

5)编码

编码是信息从一种形式或格式转换为另一种形式的过程,也称为计算机编程语言的代码,

简称编码。主要有ASQLISO8859-1.GBK和UTF-8等几种常用的编码。

•ASCII

ASCII为美国标准信息交换码,用一个字节的7位表示,总共有128个,包含了英文

的大小写、常用符号和数字。

•ISO8859-1

ISO8859-1为拉丁码表,用一个字节的8位表示。ISO8859-1以ASCII为基础,在空

置的范围内,加入192个字母及符号。

•GBK和UTF-8

随着科技的发展,中文也需要码表,此时出现了和它们的英文均占一个

GBKUTF-80

字节,GBK的中文占两个字节,UTF-8的中文占三个字节。中文在不同的编码中占的字节

数是不同的,这也是中文会出现乱码的原因。

6)类型转换扩展

•byte/short/char类型的数据,在运算时会自动提升为int类型的数据,字符在参

与运算时已经转换为了对应码表的数字。

•byte/short/char类型的数据,如果右边的值没有超出范围,那么Java会自动强

制类型转换,如果超出范围则不会。

7)进制

进制就是进位计数制,是人为定义的带进位的计数方法。

二进制(bin):由0~1组成,满2进1,以0b作为二进制的标识。

八进制(oct):由0~7组成,满8进1,以0作为八进制的标识。

十进制(dec):由0~9组成,满10进1.

十六进制(hex):由0~9.a~f组成,满16进1,以Ox作为十六进制的标识。十六进

制中的a-f,不区分大小写。

8)进制转换

•十进制转换为二进制

十进制转换为二进制是将十进制的数不断除以2取余,然后将余数倒排序即可。

•二进制转换为十进制

二进制转换为十进制是从低位次起,按位次乘以2的位次幕,然后求和。

•十进制转换为其他进制

十进制转换为其他进制的方法和转换为二进制的方法类似,十进制向哪个进制转换

就除以哪个进制,然后取余倒排即可。

•二进制转换为八进制

二进制转换为八进制是从低位次起,每3位为一组,产生一个八进制数字,最高

位不足3位时补0,3位以内按照二进制向十进制的转换规则进行运算,产生的八

进制数字按顺序排列即可。

•八进制转换为二进制

八进制转换为二进制,其方法与二进制转换为八进制相反,将每位八进制的值转换

为3位二进制的数字,然后将这些二进制的数字按顺序排列即可。

•二进制转换为十六进制

二进制转换为十六进制其实是四变一的过程,操作方法与二进制转换为八进制方法

一致。首先将二进制数从右向左按4位分组,不足以0补全,然后将每组二进制

数转换为十六进制,最后按顺序排列即可。

•十六进制转换为二进制

十六进制转换为二进制是一变四的过程,与二进制转换为十六进制相反。

9)原码、补码和反码

原码(trueform)是一种计算机中对数字的二进制定点表示方法.

补码是计算机把减法运算转化为加法运算的关键编码。

反码通常是用来由原码求补码或者由补码求原码的过渡码。

在Java中的数据底层都是使用数据的补码形式存储和计算的。正数的原码、补码和反

码都相同;负数的反码是符号位不变,其他位取反;负数的补码是符号位不变,在反码的基

础上加lo

在介绍负数的反码和补码时,涉及到符号位,符号位一般放在最高位,常用0作为正

数,用1作为负数。

(2)运算符

运算符是对变量和常量进行运算的符号。表达式是使用运算符将常量或者变量连接起来

的式子。

1)运算符分类

运算符分为算术运算符、赋值运算符、关系运算符、逻辑运算符、三目运算符和位运算

符几种,其中三目运算符也称为三元运算符。本节课将主要介绍算术运算符、赋值运算符、

关系运算符和自增自减运算符。

2)运算符的使用

•算术运算符

Java中的算术运算符包含+、-、*、/和%几种。

表1算术运算符

序号运算符含义示例

1+加12+3=15

2-减12-3=9

3*乘12*3=36

4/除12/3=4

5%取余数12%5=2

•自增自减运算符

自增自减运算符包括++、一两种,可以放在变量前面,也可以放在变量后面。它

们可以独立使用,也可以混合使用。

独立使用时,自增自减运算符放在变量前面和后面没有区别,都是对变量进行+1

或者-1的操作。

自增自减运算符混合使用时,如果运算符++(-)在变量前面,那么首先变量自

身加1(减1),然后根据加1(减1)后的结果进行使用;如果运算符++(-)

在变量后面,则先对变量进行使用,然后变量自身加1(减1)。

•赋值运算符

赋值运算符包括+=、-=、*=、/=和%=运算符。赋值运算符默认包含一个强制类

型转换操作。

•关系运算符

关系运算符包括==、!=、>=、<=、>和<运算符,其最终结果都是布尔类型。

表2关系运算符

序号运算符含义

1==上檄左右两方是否相等

2!=上徽左方是否不等于右方

3>=比较左方是否大于等于右方

4<=比较左方是否小于等于右方

5>比较左方是否大于右方

6<比较左方是否小于右月

8.巩固练习

(1)以下代码能否编译成功?为什么?

1)charchi=97;shortch2='a';

2)charchi=97;shortch2='a';shortch2=chl0

(2)计算-5的原码、反码和补码。

9.课堂小结

通过本课程内容的学习,相信同学们已经能够掌握变量使用时的注意事项,以及Java

中类型转换和运算符的应用。其中类型转换是本节课程的重点和难点,自增自减运算符是运

算符知识点中的难点,常见于企业面试和证书考试中,一定要多多练习。熟练掌握基础运算

符的使用,将为接下来学习高级运算符打好基础。

10.布置作业

(1)课下作业

对于inti=3,j=5;请同学们写出能够交换i和j的值的方式并比较各种方式

的优劣性。

(2)预习作业

1)逻辑运算符、三目运算符和位运算符。

2)流程控制语句。

八、板书设计

类型转换和运算符

一、课程目标一(一)变量注意事项

(二)舍入误差

(三)类型转换分类

二、课程任务(四)精度损失

类型转换一(五)编码

(六)类型转换扩展

三、课程介绍课程内容-

(七)进制

(A)进制转换

四、课程内容一(九)原码、补码和反码

(-)运算符分类

运算符

五、课程总结(二)运算符的使用

九、教具

>notepad

>dos

十、教学反思

课程名称Java核心基础

章节名称运算符和流程控制语句

2019年12月

目录

一、基本说明....................................................................1

二、教学目标...................................................................2

三、教学重点...................................................................2

四、教学难点...................................................................2

五、教学方法....................................................................3

六、教学准备...........

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论