Java语言程序设计-教案56学时-1-3章_第1页
Java语言程序设计-教案56学时-1-3章_第2页
Java语言程序设计-教案56学时-1-3章_第3页
Java语言程序设计-教案56学时-1-3章_第4页
Java语言程序设计-教案56学时-1-3章_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

***大学

教案

2018〜2019学年第1学期

教学单位___________________________

课程名称Java语言程序设计

课程编号___________________________

学时56学分3.5

适用专业年级

授课教师___________________________

职称职务

课程教学尹施计划

授课教师辅导教师(助教)

实验(实践)教学指导教师

学时总学时理论学时多媒体教学学时习题课学时实验学时

计划564016

使用名称出版社出版时间获奖情况

“十一五”国家级规

教材《Java2实用教程》(第5版)清华大学出版社2017.5

划教材

《Java2实用教程》(第5版)

参清华大学出版社2017.5

实验指导与习题解答

《Java课程设计》(第3版)清华大学出版社2018.1

Java程序设计精编教程(第3版

清华大学出版社2017.9

目微课版

通过本课程的学习,要求学生达到:

1、掌握Java语言的基础知识。

教2、掌握Java语言的特点以及进行程序设计的方法和步骤。

3、掌握面向对象设计与实现方法。

4、掌握Java基础类的实用方法及编程技巧。

要5、掌握AWT组件及事件处理。

求6、掌握用多线程来解决实际问题。

7、了解并掌握Java输入输出流。

8、了解并基本掌握Java数据库连接。

教教学过程要精心准备例题、练习题,即能帮助学生理解知识,同时又具有启发性。

学针对较难理解的问题,例子都要从简单到复杂,逐步深入,便于读者掌握Java编程的

创思想和技巧。

新培养学生的程序设计能力,初步认识软件开发的基本思想。从阅读和分析程序入手,

与掌握设计和调试程序的方法和技巧。学习时一定要模仿例题亲自编制一些实用程序,

更加强对概念的正确认识。同时要注意上机实践,把不清楚的问题通过上机一一解决。

从而不断增加学习兴趣,提高编程能力。

考核方式笔试(开卷)成绩计算方法平时成绩X20%+期末考试X80%

学时进度计划

授课内容教学方法与手段

分配(周次)

Java语言入门

标识符、关键字和数据类型6课堂讲授4学时、上机实践2学时1〜2

运算符、表达式和语句

类、对象和接口16课堂讲授10学时、上机实践6学时2〜6

字符串

6课堂讲授4学时、上机实践2学时6〜7

时间、日期和数字

AWT组件及事件处理6课堂讲授4学时、上机实践2学时8〜9

Java多线程机制

10课堂讲授8学时、上机实践2学时9-11

输入输出流

Java网络的基本知识

10课堂讲授8学时、上机实践2学时12〜14

Java数据库连接(JDBC)

总结2课堂讲授2学时14

总学时56

各章教学实施甘划

章节题目第1章java入门nr

教学目的、要求(分了解、理解、掌握三个层次):

了解Java语言的地位、了解Java语言的特点、了解JDK的安装、了解Java语言的编程

风格。

掌握Java应用程序的开发步骤。

教学内容(包括基本内容、重点、难点):

基本内容:

Java语言的地位

Java的特点

安装JDK

Java程序的开发步骤

简单的Java应用程序的开发步骤。

教学重点:

1.了解Java语言是面向对象编程语言,编写的软件与平台无。

2.Java应用程序的开发步骤。

教学难点:

Java应用程序的开发步骤。

讨论、思考题、作业:

P15习题1

1问答题(1)-(7)

2选择题(1)-(2)

3阅读程序题学生自主上机实践

4预习第二章内容

参考书目(含参考书、文献等)具体内容:

参考书对应章节

课堂教学实施计划

教学过程设计:复习___________分钟;授新课100分钟

第1课

讨论___________分钟;其它____________分钟

授课类型(请打J):理论课J讨论课口实验课口习题课口其它口

教学方式(请打J):讲授J讨论口示教口指导口其它口

教学手段(请打J):多媒体模型口实物口挂图口音像口其它J

主要内容

Java的地位

Java诞生

♦Java的特点

安装JDK

♦简单的Java应用程序

重点与难点:

重点:Java平台无关性、Java程序的结构。

难点:Java程序的开发过程。

Java是1995年6月由Sun公司引进到我们这个世界的革命性的编程语言。1990年Sun公

司成立了由JamesGosling领导的开发小组,开始致力于开发一种可移植的、跨平台的语言,

该语言能生成正确运行于各种操作系统、各种CPU芯片上的代码。他们的精心专研和努力促成

了Java语言的诞生。

Java的先导知识与后继技术

学习Java语言需要读者曾系统地学习过一门面向过程的编程语言,比如C语言。读者学习

过Java语言之后,可以继续学习和Java相关的一些重要内容,比如,学习和数据库设计相关

的JavaDatabaseConnection(JDBC)>Web设计相关的JavaServerPage(JSP)、Android手

机程序设计、数据交换技术相关的extensibleMarkupLanguage(XML)以及网络中间件设计相

关的JavaEnterpriseEdition(JavaEE),如图1.1所示。

图LIJava的先导知识与后继技术3

1.1Java的地位

1.1.1网络地位

Java的平台无关性让Java成为编写网络应用程序的佼佼者,而且Java也提供了许多以网

络应用为核心的技术,使得Java特别适合于网络应用软件的设计与开发。

1.1.2语言地位

Java语言是一门很好的面向对象语言,通过学习Java语言可以学习怎样使用对象来完成某

些任务、掌握面向对象编程的基本思想.

1.1.3需求地位

IT行业对Java人才的需求正在不断的增长,掌握Java语言及其相关技术意味着较好的就

业前景和工作酬金。

1.2Java的特点

1.2.1简单

Java要比C++简单,C++中许多容易混淆的概念,或者被Java弃之不用了,或者以一种更

清楚更容易理解的方式实现。

1.2.2面向对象

Java是面向对象的编程语言,本书将在第4章、第5章和第6章详细、准确地讨论类、对

象、继承、多态、接口等重要概念。

1.2.3平台无关

在一个计算机上编译得到的字节码文件可以复制到任何一个安装了Java运行环境的计算

机上直接使用。字节码由Java虚拟机负责解释运行,即Java虚拟机负责将字节码翻译成本地

计算机的机器码,并将机器码交给本地的操作系统来运行。

1.平台与机器指令

2.C/C++程序依赖平台

3.Java虚拟机与字节码

针对Java虚拟机生成的字。码文件Java运行环境

振作系统

)0101001111100005sWindows

0I0IIIII0I00III0

CPU

1011100111110011

1110100111110110

Java运行环境

1010101111011001能运行于平台B

I0IIII010IIII010UNIX操作系统

CPU

图1.3Java生成的字节码文件不依赖于平台,

1.2.4多线程

Java的特点之一就是内置对多线程的支持。多线程允许同时完成多个任务。

1.2.5动态

Java程序的基本组成单元就是类,有些类是自己编写的,有一些是从类库中引入的,而类

又是运行时动态装载的,这就使得Java可以在分布环境中动态地维护程序及类库。

1.3安装JDK

1.3.1三种平台简介

目前Java平台主要分为下列3个版本:

(1)JavaSE(曾称为J2SE)称为Java标准版或Java标准平台.

(2)JavaEE(曾称为J2EE)称为Java企业版或Java企业平台.

(3)JavaME(曾称为J2ME)称为Java微型版或Java小型平台.

无论上述哪种Java运行平台都包括了相应的Java虚拟机(JavaVirtualMachine),虚

拟机负责将字节码文件(包括程序使用的类库中的字节码)加载到内存,然后采用解释方式来

执行字节码文件,即根据相应平台的机器指令翻译一句执行一句。

1.3.2安装JavaSE平台

JavaSE平台是学习掌握Java语言的最佳平台,而掌握JavaSE又是进一步学习JavaEE

和Android所必须的。

下载JDK1.8。本书将使用针对Window操作系统平台的JDK,因此下载的版本为

jdk-8u102-windows-x64.exe0

选择安装路径界面。为了便于今后设置环境变量,建议修改默认的安装路径为:

D:\jdkl.8o

JDK平台提供的Java编译器(javac.exe)和Java解释器(java.exe)位于Java安装目

录的\bin文件夹中.

133系统环境的设置

1.设置系统变量JAVAJ0ME

2.系统环境path的设置

3.系统环境classpath的设置

1.4Java程序的开发步骤

开发步骤:

1)编写源文件:扩展名必须是.java。

2)编译Java源程序:用Java编译器(javac.exe)编译源文件,得到字节码文件。

3)运行Java程序:使用Java解释器(java.exe)来解释执行字节码文件。

1.5简单的Java应用程序

1.5.1源文件的编写与保存

Java应用程序的源文件是由若干个书写形式互相独立的类组成,有关Java应用程序结构

的细节在第4章还会讲。

例子1中的Java源文件Hello.java是由两个名字分别为Hello和Student的类组成。

1编写源文件

使用一个文本编辑器,如Edit或记事本编写上述例子1给出的源文件。

Java源程序中语句所涉及到的小括号及标点符号都是英文状态下输入的括号和标点符号,

比如“大家好!”中的引号必须是英文状态下的引号,而字符串里面的符号不受汉字符或英文

字符的限制。

2.保存源文件

如果源文件中有多个类,那么只能有一个类是public类;如果有一个类是public类,那

么源文件的名字必须与这个类的名字完全相同,扩展名是java;如果源文件没有public类,

那么源文件的名字只要和某个类的名字相同,并且扩展名是java就可以了。

上述例子1中的源文件必须命名为Hello,java。我们将Hello,java保存到C:\chapterl

文件夹中。

1.5.2编译

进入逻辑分区C的chapterl目录中,使用编译器javac编译源文件

使用javac编译源文件

C:\chapterl>javacHello,java

1.5.3运行

1.应用程序的主类

一个Java应用程序必须有一个类含有

publicstaticvoidmain(Stringargs[])

方法,称这个类是应用程序的主类。

2.解释器(java)

使用Java虚拟机中的Java解释器(java.exe)来解释执行其字节码文件。Java应用程序

总是从主类的main方法开始执行。因此,需进入主类字节码所在目录,比如C:\chapterl,然

后使用Java解释器(java.exe)运行主类的字节码.图1.14使用java解释器运行程。

C:\chapterl\>javaHello

再看一个简单的Java应用程序

不要求读者看懂程序的细节,但读者必须知道怎样保存.

例子2中的Java源文件(源文件里有2个类)、怎样使用编译器编译源程序、怎样使用解释

器运行程序。

1.6Java反编译

1.7编程风格及注释

遵守一门语言的编程风格是非常重要的,否则编写的代码将难以阅读,给后期的维护带来

诸多不便。

1.8Java之父JamesGosling

课堂,软结:本节的重点首先Java语言是面向对象编程语言,编写的软件与平台无。

其次掌握Java应用程序的开发步骤。

作业:习题11—3

各章教学实施甘划

章节题目第2章基本数据类型与数组CT

子灯/

教学目的、要求(分了解、理解、掌握三个层次):

1、了解Java语言的标识符与关键字;了解Java语言使用Unicode标准字符集。

2、掌握Java基本数据类型。

3、了解基本型数据的输入、输出。

4、掌握Java中的数组。

教学内容(包括基本内容、重点、难点):

基本内容:

标识符与关键字

基本数据类型

类型转换运算

输入、输出数据

数组

重点

Java语言的关键字、基本数据类型和输入、输出语句及数组。

难点

基本数据类型的精度及理解数组属于引用型变量。

Java数组属于引用型变量,创建数组需要经过声明数组和为数组分配变量两个步骤。

两个相同类型的数组如果具有相同的引用,它们就有完全相同的元素。

讨论、思考题、作业:

教材30页习题21—2

习题23—4上机实践

参考书目(含参考书、文献等)具体内容:

参考书对应章节

课堂教学实施计划

教学过程设计:复习5____分钟;授新课90一分钟

第2课

讨论5一分钟;其它__________一分钟

授课类型(请打J):理论课J讨论课口实验课口习题课口其它口

教学方式(请打J):讲授J讨论口示教口指导口其它口

教学手段(请打J):多媒体J模型口实物口挂图口音像口其它J

本章用一次课完成。

第2章基本数据类型与数组

主要内务

。标识符与关键字

O基本数据类型

字类型转换运算

字输入、输出数据

。数组

重点和难点

*重点:标示符、Java语言的数据类型、数组

O难点:基本数据类型的精度和数组

2.1标识符与关键字

标识符

用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列称为标识符,

简单地说,标识符就是一个名字。

Java语言规定

标识符由字母、下划线、美元符号和数字组成,长度不受限制。

标识符的第一个字符不能是数字字符。

标识符不能是关键字(关键字见下面的2.1.3节)。

标识符不能是true、false和null(尽管true、false和null不是关键字)。

Unicode字符集

Java语言使用Unicode标准字符集,最多可以识别65536个字符。Unicode字符集的前128个

字符刚好是ASCII码。

关键字

关键字就是具有特定用途或被赋予特定意义的一些单词,不可以把关键字作为标识符来

用。

例如:boolean>byte>short>int>float>double>char>if、else等。

关键字都是小写的。遇到大写肯定不是关键字。

关键字就是具有特定用途或被赋予特定意义的一些单词,不可以把关键字作为标识符来用,

以下是Java的50个关键字。

abstractassertbooleanbreakbytecasecatchcharclassconstcontinuedefaultdodoubleelse

enumextendsfinalfinallyfloatforgotoifimplementsimportinstanceofintinterfacelongnativenew

packageprivateprotectedpublicreturnshortstaticstrictfpsuperswitchsynchronizedthisthrow

throwstransienttryvoidvolatilewhile

2.2基本数据类型

»有8种基本数据类型:

boolean>byte>short>int>long>float>double、char。

A8种基本数据类型习惯上可分为以下四大类型:

逻辑类型:boolean

整数类型:byte>short>int>long

字符类型:char

浮点类型:floatxdouble

§2.2.1逻辑类型

A变量

使用关键字boolean来声明逻辑变量,声明时也可以赋给初值。

»常量

true、false

例如:

booleanx,ok=true,关闭=false;

§2.2.2整数类型

Aint型

变量:使用关键字int来声明int型变量,声明时也可以赋给初值.

例如:intx=12,平均=9898,jiafei;

常量:int型常量共有三种表示方法:

十进制:123,6000(十进制)

八进制:077(八进制,是零开头);

十六进制:0x3ABC(十六进制)

对于int型变量,内存分配给4个字节(byte),占32位.

Abyte型

变量:使用关键字byte来声明byte型变量.

例如:bytex=-12,tom=28,漂亮=98;

常量:一定范围内的int型常量赋值给byte型变量.

对于byte型内存分配给1个字节,占8位.

Ashort型

变量:使用关键字short来声明short型变量。

例如:shortx=12,y=1234;

常量:和byte型类似,Java中也不存在short型常量的表示法,但可以把一定范围内的int

型常量赋值给short型变量。

对于short型变量,内存分配给2个字节,占16位.

Along型

变量:使用关键字long来声明long型变量。

常量:long型常量用后缀L来表示,例如108L(十进制)、07123L(八进制)、0x3ABCL(十

六进制)。

例如:longwidth=12L,height=2005L,length;

对于long型变量,内存分配给8个字节,占64位。

2.2.3字符类型

Achar类型

常量:'A,,'b','9‘,'好','\t','k,'3等,即用单引号扩起的Unicode

表中的一个字符。

变量:使用关键字char来声明char型变量,对于char型变量,内存分配给2个字节,占16

例如:charch='A',home='家',handsome='酷';

»转意字符常量:

有些字符(如回车符)不能通过键盘输入到字符串或程序中,就需要使用转意字符常量,

例如:\n(换行),\b(退格),\t(水平制表”(单引号),

\"(双引号),\\(反斜线)等。

例子1C:\chapter2>javaExample2_l

汉字:好的位置:229。9,

Example2_l.java日文:方的位置:12353

20320位置上的字符是:你

publicclassExample2_l{21319位置上的字符是:升

publicstaticvoidmain(Stringargs[]){you:你

1

charchinaWord=*if*zjapanWord=*i5;

图显示表中的字符

charyou=1\u4F601;2.1Unicode

intposition=20320;

System.out.printin("汉字:,,+chinaWord+,'的位置:”+(int)chinaWord);

System.out.printIn("日文:”+japanWord+”的位置:"+(int)japanWord);

System.out.printIn(position+”位置上的字符是:"+(char)position);

position=21319;

System,out.printin(position+”位置上的字符是:"+(char)position);

System.out.printIn("you:n+you);

)

§2.2.4浮点类型

Afloat型

常量:453.54F(小数表示法),2e40f(2乘10的40次方,指数表示法).

变量:使用关键字float来声明float型变量,

例如:floatx=22.76f,tom=1234.987f,weight=1e-12F;

精度:float变量在存储时保留8位有效数字。

对于float型变量,内存分配给4个字节,占32位。

double型

常量:238.539d,231.987(小数表示法),le-90(l乘10的-90次方,指数表示法).对于double

常量,后缀有“d”或"D”,但允许省略后缀.

变量:使用关键字double来声明double型变量,

例如:doubleheight=23.345,width=34.56D,length=lel2;

对于double型变量,内存分配给8个字节,占64位。

精度:double变量在存储double型数据时保留16位有效数字,实际精度取决于具体数值。

特别注意

一个具有小数部分的数据的缺省类型是double而不是float。所以float常量后面必须要有后

缀“广或“F”。

§2.3类型转换运算

AJava中数据的基本类型(不包括逻辑类型)按精度从“低”到“高”排列:

byteshortcharintlongfloatdouble

A规则:

当把级别低的变量的值赋给级别高的变量时,系统自动完成数据类型的转换。

例如:floatx=100;

当把级别高的变量的值赋给级别低的变量时,必须使用显示类型转换运算。显示转换的格

式:(类型名)要转换的值;例如:intx=(int)34.89;

当把一个int型常量赋值给一个byte和short型变量时,不可以超出这些变量的取值范围,否

则必须进行类型转换运算;

例如:byteb=128;(error)byteb=(byte)l28(ok)

下面的例子2使用了类型转换运算,运行效果如图2.2。

例子2

Example2_2.java

publicclassExample2_2{

publicstaticvoidmain(Stringargs[]){

byteb=22;

intn=129;

floatf=123456.6789f;

doubled=123456789.123456789;

System.out.printIn("b="+b);

System.out.printin("n="+n);

System.out.printIn("f=n+f);

System.out.printin("d="+d);

b=(byte)n;//导致精度的损失

f=(float)d;//导致精度的损失

System.out.printIn("b=n+b);

System.out.printIn("f=n+f);

§2.4输入、输出数据

2.4.1输入基本型数据

可以使用Scanner类创建一个对象:

Scannerreader=newScanner(System.in);

其中:reader对象调用下列方法,读取用户在命令行输入的各种基本类型数据:

nextBoolean()>nextByte()>nextShort()>nextlnt()、

nextLong()>nextFloat()>nextDouble()o

上述方法执行时都会堵塞,程序等待用户在命令行输入数据回车确认。

例题3

Example2_3.java

importjava.util.Scanner;

publicclassExample2_3{

publicstaticvoidmain(Stringargs[]){

System.out.printIn("请输入若干个数,每输入一个数回车确认”);

System.out.printIn("最后输入数字0结束输入操作”);

Scannerreader=newScanner(System.in);

doublesum=0;

doublex=reader.nextDouble();

while(x!=0){

sum=sum+x;

x=reader,nextDouble();

System.out.printIn(Hsum=',+sum);

}

2.4.2输出基本型数据

java使用System类中的方法实现数据输出

例如:System.out.println。或System.out.print()输出串值,表达式的值。二者的区别是前

者输出数据后换行,后者不换行。如:

System.out.println(m+”个数的和为"+sum);

System.out.println(":"+123+"大于"+122);

如果需要输出的字符串的长度较长,可以将字符串分解成几部分,然后使用并置符号:“+”

将它们首尾相接,

例如:System.out.println("你好,"+

"很高兴认识你");

§2.5数组

数组是相同类型的数据按顺序组成的一种复合数据类型。通过数组名加数组下标,来使用

数组中的数据。下标从o开始排序。这部分内容是重点也是难点。

2.5.1声明数组

声明一维数组有下列两种格式:

数组的元素类型数组名口;

数组的元素类型[]数组名;

例如:

floatboy[];

char[]cat;

❖声明二维数组有下列两种格式:

数组的元素类型数组名口口;

数组的元素类型[用数组名;

例如:

float叫口;

Char[][]b;

2.5.2为数组分配元素空间

为数组分配元素的格式如下:

数组名=new数组元素的类型[数组元素的个数];

例如:boy=newfloat[4];

2.5.3数组元素的使用

数组元素的使用

一维数组通过索引(下标运算)符访问自己的元素。如:boy[0],boy[l]等.

需要注意的是索引从0开始,因此,数组若有4个元素,那么索引至U3为止,如果程序使用了

如下语句:

boy[4]=384.98f;

程序可以编译通过,但运行时将发生ArraylndexOutOfBoundsException

异常,

因此在使用数组时必须谨慎,

防止索引越界。

2.5.4length的使用

length字段的使用

对于一维数组,“数组名.length”的值就是数组中元素的个数;

对于二维数组“数组名.length”的值是它含有的一维数组的个数

例如:floatboy[]=newfloat[4];

boy.length的值为4.

int[][]a=new0网网;

a.length的值是3.

a[0].length的值是8

a[1].length的值是8

a[2].length的值是8

2.5.5数组的初始化

数组初始化

创建数组后,系统会给数组的每个元素一个默认的值

例如,float型是0.0。

如果需要赋值,就要为每个元素赋值:例如:

floatboy[]=newfloat[4];

boy[0]=12;

boyfl]=23.908F;

boy[2]=100;

boy[3]=10.23f;

在声明数组的同时也可以给数组的元素一个初始值,如:

floatboy[]={21.3f,23.89f,2.0f,23f,778.98f};

2.5.6数组的引用

数组的引用

数组属于引用型变量,两个相同类型的数组如果具有相同的引用,它们就有完全相同的元

素。.

下面的例子4使用了数组,请读者注意程序的输出结果,运行效果如图2.7。

例子4

Example2_4.java

publicclassExample2_4{

publicstaticvoidmain(Stringargs[]){

inta[]={1,2,3,4};

intb[]={100,200,300);

System.out.printIn("数组a的元素个数="+a.length);

System.out.printIn("数组b的元素个数="+b・length);

System.out.printIn(”数组a的弓]用="+己);

System.out.printin(”数组b的弓I用="+1));

a=b;

System.out.printIn("数组a的元素个数="+a.length);

System.out.printInb的元素个数="+b•1㊀ngth);

nHHnHn

System.out.printin(a[0]=+a[0]+Aa[1]=+a[1]+Za[2]=+a[2]);

nnnnHn

System.out.print(b[0]=+b[0]+zb[1]=+b[1]+,b[2]=+b[2]);

§2.6应用举例

折半法:对于从小到大排序的数组,我们只要判断数据是否和数组中间的值相等,如果不相

等,当该数据小于数组中间元素的值,就在数组的前一半数据中继续折半找,否则就在数组的

后一半数据中继续折半找,如此这般,就可以比较快地判断该数据是否在数组中。

例子5能判断用户输入的一个整数是否在已知的数组中。程序效果如图2.8

例子5

Example2_5.java

importjava.util・*;

classExample2_5{

publicstaticvoidmain(Stringargs[]){

intstart=0,end,middle;

inta[]={12,45,67,89,123,-45,67);

intN=a.length;

for(inti=0;i<N;i++){//选择法排序数组

for(intj=i+l;j<N;j++){

if(a[j]<a[i]){

intt=a[j];

a[j]=a[i];

a[i]t;

)

)

}

Scannerscanner=newScanner(System.in);

System.out.printIn("输入整数,程序判断该整数是否在数组中;

intnumber=scanner.nextlnt();

intcount=0;

end=N;

middle=(start+end)/2;

while(number!=a[middle]){

if(number>a[middle])

start=middle;

elseif(number<a[middle])

end=middle;

middle=(start+end)/2;

count++;

if(count>N/2)

break;

)

if(count>N/2)

System.out.printf(”%d不在数组中.\n”,number);

else

System.out.printf(”%d在数组中.\n”,number);

)

)

2.7总结

(1)标识符由字母、下划线、美元符号和数字组成,并且第一个字符不能是数字字符。

(2)Java语言有8种基本数据类型:boolean>byte、short、int、long、float>double>char。

(3)数组是相同类型的数据元素按顺序组成的一种复合数据类型,数组属于引用型变量,因此

两个相同类型的数组如果具有相同的引用,它们就有完全相同的元素。

作业

教材30页习题22—4

各章教学实施计划

表达式和语句

章节题目:第3章运算符、学时2

教学目的、要求(分了解、理解、掌握三个层次):

掌握Java运算符与表达式,掌握分支语句与循环语,了解break和continue语句、了解

for语句。

教学内容

基本内容:

运算符与表达式

语句概述

if条件分支语句

switch开关语句

循环语句

break和continue语句

数组与for语句

教学重点和难点

重点是Java语言的运算符、表达式及分支与循环语句。

以上内容与C语言类似,因此对有C语言基础的同学只是一个复习的过程而已。

讨论、思考题、作业:

习题3

2—3题

4上机实践

参考书目(含参考书、文献等)具体内容:

参考书对应章节

课堂教学实施计划

教学过程设计:复习5____分钟;授新课90一分钟

第3课

讨论5一分钟;其它__________一分钟

授课类型(请打J):理论课J讨论课口实验课口习题课口其它口

教学方式(请打J):讲授J讨论口示教口指导口其它口

教学手段(请打J):多媒体J模型口实物口挂图口音像口其它J

本章内容一次课结束。

主要内容

运算符与表达式

语句概述

if条件分支语句

switch开关语句

循环语句

♦break和continue语句

数组与for语句

重点和难点

重点:运算符、表达式和各种控制语句

难点:各种控制语句用法

§3.1运算符与表达式

Java提供了丰富的运算符,如算术运算符、关系运算符、逻辑运算符、位运算符等。

Java语言中的绝大多数运算符和C语言相同,基本语句,如条件分支语句、循环语句等也和C

语言类似,因此,本章就主要知识点给予简单的介绍。

§3.1.1算术运算符与算术表达式

•加减运算符:+,-

加减运算符是二目运算符;加减运算符的结合方向是从左到右;加减运算符的操作元是整型

或浮点型数据,加减运算符的优先级是4级。

•乘、除和求余运算符:*/%

以上运算符是二目运算符,结合方向是从左到右,乘、除和求余运算符的操作元是整型或浮

点型数据。运算符的优先级是3级。

•算术表达式

用算术符号和括号连接起来的符合java语法规则的式子,称为算术表达式。

如:x+2*y-30+3*(y+5)

§3.1.2自增,自减运算符

自增、自减运算符:++,~

单目运算符,可以放在操作元之前,也可以放在操作元之后。操作元必须是一个整型或浮点

型变量。作用是使变量的值增1或减1,如:

++X(―X)表示在使用X之前,先使X的值增(减)1。

X++(X—)表示在使用X之后,使X的值增(减)lo

例如:intf=2;

intm=2;

intx=(f*m++)+m;//x=7;

inty=(f*++m)+m;//y=9;

§3.1.3算术混合运算的精度

•Java中数据类型的精度从“低”到“高”排列的顺序是:

byteshortcharintlongfloatdouble

•Java在计算算术表达式的值时,使用下列计算精度规则:

如果表达式中有双精度浮点数(double型数据),则按双精度进行运算.

如果表达式中最高精度是单精度浮点数(float型数据),则按单精度进行运算.

如果表达式中最高精度是long型整数,则按long精度进行运算.

如果表达式中最高精度低于int型整数,则按int精度进行运算.

char型数据和整型数据运算结果的精度是int。

§3.1.4关系运算符与关系表达式

•关系运算符:>,<,>=,<=,==,!=

特点:关系运算符是二目运算符,用来比较两个值的关系,见表4.1。

关系运算符的运算结果是boolean型,当运算符对应的关系成立时,运算结果是true,否则

是false。

运算规则:

在关系运算符中,当操作数是基本数据类型时,比较的是数据内容;

在关系运算符中,当操作数是引用类型时,比较的是引用对象的引用值,判断是否是同一

对象,而没有比较对象的内容。

如,4>8,(x+y)>80o

§3.1.5逻辑运算符与逻辑表达式

•逻辑运算符包括:&&、||、!

其中:&&、||为二目运算符,实现逻辑与、逻辑或;

!为单目运算符,实现逻辑非。

•规则:

逻辑运算符的操作元必须是boolean型数据,逻辑运算符可以用来连接关系表达式。

•&&,II也称短路运算符

当前面的表达式。P1的值为false时,&&运算符在运算时就不再去计算op2表达式的值;当

opl为true时,||运算符就不再计算op2的值。(opl&&op2;opl||op2)o

注意y的值

classTest

{publicstaticvoidmain(Stringargs口)

{intx,y=10;

if(((x=0)==0)|((y=20)==20))

{System.out.printin("现在y的值是:"+y);

)

§3.1.6赋值运算符与赋值表达式

赋值运算符:=

赋值运算符是二目运算符,左面的操作元必须是变量,不能是常量或表达式。

赋值运算符的优先级较低,是14级,结合方向右到左。

赋值表达式的值就是“=”左面变量的值。

注意:不要将赋值运算符“=”与等号逻辑运算符“二=”混淆。

例如:x=20;b=true;

§3.1.7位运算符

位运算符:是指对两个整型数据按照对应的位进行运算,结果为新的整型数据。

“按位与”运算

是双目运算符。运算法则是:如果a,b两个数据对应位都是1,则c的该位是1,否则

是0。

“按位或”运算

“I”是双目运算符。运算法则是:如果a,b两个数据对应位都是0,则c的该位是0,否则

是1。

“按位非”运算

是单目运算符。运算法则是:如果a对应位都是0,则c的该位是1,否则是1。

“按位异或”运算

是双目运算符。运算法则是:如果a,b两个数据对应位相同,则c的该位是0,否则

是1。

例题1

在下面的例子1中,利用“异或”运算的性质,对几个字符进行加密并输出密文,然后再

解密,运行效果如图3.1。

Example3_Ljava

publicclassExample3_l{

publicstaticvoidmain(Stringargs[]){

charal=,+Ia2=,点,,a3=,进,,a4=,攻,

charsecret=1A';

al=(char)(al人secret);

a2=(char)(a2Asecret);

a3=(char)(a3人secret);

a4=(char)(a4人secret);

System,out.printIn("密文:"+al+a2+a3+a4);

al=(char)(al人secret);

a2=(char)(a2Asecret);

a3=(char)(a3人secret);

a4=(char)(a4人secret);

System,out.printin(**JM%:H+al+a2+a3+a4);

)

§3.1.8instanceof运算符

instanceof运算符是二目运算符,左面的操作元是一个对象;右面是一个类。当左面的

对象是右面的类或子类创建的对象时,该运算符运算的结果是true,否则是false。

§3.1.9运算符综述

Java的表达式就是用运算符连接起来的符合Java规则的式子。

运算符的优先级决定了表达式中运算执行的先后顺序。

在编写程序时尽量使用括号()运算符号来实现想要的运算次序,以免产生难以阅读或含

糊不清的计算顺序。

运算符的结合性决定了具有相同级别运算符的先后顺序。

§3.2语句概述

Java里的语句可分为以下六类

方法调用语句:如:System,out.println(z,Hello");

表达式语句:表示式尾加上分号。比如赋值语句:x=23;

复合语句:可以用{}把一些语句括起来构成复合语句,

如:{z=123+x;

System,out.printin(Z/Howareyou");

空语句:一个分号也是一条语句,称做空语句。

控制语句:控制语句分为条件分支语句、开关语句和循环语句。

package语句和import语句:它们和类、对象有关,将在第4章讲解。

§3.3if条件分支语句

条件分支语句按着语法格式可细分为三种形式:

if语句

if-e

温馨提示

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

评论

0/150

提交评论