收藏 分销(赏)

JAVA核心编程技术全套教学教程.pptx

上传人:a199****6536 文档编号:10251453 上传时间:2025-04-30 格式:PPTX 页数:681 大小:14.58MB
下载 相关 举报
JAVA核心编程技术全套教学教程.pptx_第1页
第1页 / 共681页
JAVA核心编程技术全套教学教程.pptx_第2页
第2页 / 共681页
点击查看更多>>
资源描述
,#,1.2Java,语言的特点,1.1Java,语言的诞生与发展,1.3Java,程序运行环境配置与使用,1.5Java,程序的类型,1.4Java,程序的类型,目 录,1996,年,Java1.0,第一次发布就引起人们的极大兴趣,它是一种应用于分布式网络环境中的程序设计语言,由,Sun,公司开发的。,在推出,JDK1.0,后,,Sun,在,1997,年初发布了,JDK1.1,。其相对于,JDK1.0,最大的改进就是为,JVM,增加,JIT,编译器。在,1998,年,12,月,Sun,发布新的版本,JDK1.2,标志着,Java,进入,Java2,时代。,2000,年,5,月,Sun,对,JDK1.2,进行升级,推出,JDK1.3,增加,DNS,及,JNI,的支持,使得,Web,容器得到广泛的应用。,Sun,在,2002,年,2,月发布,JDK,最为成熟的版本,:JDK1.4,。在性能上获得极大的提高,已经可以使用,Java,实现大多数应用了。,2004,年,10,月,Sun,发布了,JDK1.5,后改名为,J2se5.0,Sun,将版本号,1.5,改为,5.0,。,2007,年,Sun,推出,J2se 6.0,正式版,在性能、易用性方面得到极大提高,在脚本和,API,上全新的支持。本书会详细介绍,JDK 1.8,即,J2se 8.0,。,1.2.1,简单性,1.2.3,可移植性,1.2.5,虚拟机,JVM,1.2.7,动态性,1.2.2,面向对象,1.2.4,安全性,1.2.6,多线程,1.2.8,垃圾回收机制,访问网址,www.O DOWNLOAD,按钮后进入选择页面。,在下载窗口中,选择对应的操作系统版本,直接单击相应版本的,DownloaD,链接就可以下载。这里下载的是,WinDows 64,位版本的,JDK,安装文件。下载完毕后可以看到一个名为,JDK8u40-WinDows-i586.exe,文件。,1.3.1,安装,Java,开发环境,1.,下载,JDK,在本地磁盘找到下载的安装文件,具体安装步骤如下,:,(,1,)双击打开,JDK-8u40-WinDows-i586.exe,文件,打开“许可协议”对话框,单击“接受”按钮,打开“定制安装”对话框。,(,2,)根据自己的需要,更改安装路径和组件,此处演示将,JDK,安装到,D:Java JDK 1.8.0_05,目录下,并安装所有的组件,如图所示。,(,3,)设置完成后,单击“下一步”按钮开始进行安装。,(),JDK,类库安装完成后,会提示安装,JRE,运行环境。用户可以根据自己的需要选择安装的路径。,1.3.1,安装,Java,开发环境,2.,安装,JDK,单击“下一步”按钮,开始安装,JRE,,设置安装目录为,D:JavaJRE8,。,1.3.1,安装,Java,开发环境,2.,安装,JDK,(,5,)安装成功后显示如图所示对话框。单击“关闭”按钮,结束安装过程。,1.3.1,安装,Java,开发环境,2.,安装,JDK,在学习,Java,的过程中,需要经常查看,Java,源文件,当然也会频繁地使用类库文档。,JDK,安装成功后,打开安装目录。,1.3.1,安装,Java,开发环境,3.,了解,Java,安装目录,在安装好,JDK,之后,还需要进行一些配置才能继续后面的应用程序开发。具体配置步骤如下,:,(,1,)在,WinDows,桌面上,右击“我的电脑”图标,从弹出的菜单中选择“属性”命令,弹出“系统属性”对话框。,(,2,)在“系统属性”对话框中,选择“高级”选项卡,单击“环境变量”按钮,弹出“环境变量”对话框。,1.3.2,配置,Java,环境变量,(,3,)在“环境变量”对话框的“系统变量”选项区域中,选中变量,path,,单击“编辑”按钮,在弹出的“编辑系统变量”对话框中,加入“,D:JavaJDK1.8.0,05bin,;”(即,JDKbin,目录所在路径,注意路径后需要加“;”)。,()按照同样的方式编辑系统变量,变量值为,:,1.3.2,配置,Java,环境变量,(,5,)这样就完成了,JDK,在,WinDowsxP/2000/2003,操作系统上的安装与配置。,path,变量必须要进行配置。,classpath,环境变量一般情况下不需要设置,只有在计算机上安装了其他的,Java,开发工具时,才需要配置。,为了检查,JDK,是否配置成功,可以打开命令提示符窗口,输入“,Java,version,”命令。如果配置成功,会出现当前,JDK,的版本号。,注意,:,这是三个参数,第一个参数为“,.,”,参数间用分号间隔。,1.3.3,使用命令行工具,在使用命令行工具之前,读者必须先配置好环境变量。下面向读者演示如何编写第一个,Java,应用程序。,打开记事本,在“,D:,目录”下创建“,HelloWorld.Java,”文件,其代码如下,:,publicclassHelloWorld,public static void main,(,String,args,),System.out.println,(“欢迎来到,Java,世界,.,”);,1.3.3,使用命令行工具,首先选择“开始”“运行”命令,输入,cmd,命令,切换路径至“,D:,”;然后输入“,JavacHelloWorld.Java,”,编译程序,编译成功后无结果输出;接着输入“,JavaHelloWorld,”,运行程序,输出结果如图所示。,祝贺你,已经成功地编译并运行了自己的第一个,Java,程序。,1.3.4,使用集成开发环境,Eclipse,是一个开放源代码的、基于,Java,的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。它专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台,主要由,Eclipse,项目、,Eclipse,工具项目和,Eclipse,技术项目三个项目组成。,.Eclipse,概述,1.3.4,使用集成开发环境,Eclipse,是一个开放源代码的项目,可以到其官方网站,www.Eclipse.org,上免费下载,Eclipse,的最新版本。本书所使用的,Eclipse,为,WinDows,平台下的,Eclipse3.5,版本。,安装,Eclipse,的步骤非常简单,只需将下载的压缩包按原路径直接解压即可。如果有新的版本,需要先删除旧的版本,再重新安装,不能直接解压到原有的路径覆盖旧版本。解压后,可以到相应的安装路径下找到“,Eclipse.exe,”文件,双击运行,启动,Eclipse,,会出现如图所示界面。,2.Eclipse,的获取与安装,随后出现一个如图所示的选择工作区路径对话框。,Eclipse,会将所有文件存放在工作区指定的路径下,:,1.3.4,使用集成开发环境,2.Eclipse,的获取与安装,确定工作区路径后单击“,OK,”按钮,打开如图所示的欢迎界面。如果未安装,JDK,就启动,Eclipse,,系统会报告相应的错误信息,提示用户先安装,JDK,,正确配置后再重新启动。,在,Eclipse,界面的菜单栏上,选择“,Help,”“,Software updates,”“,Find and Install,”选项。读者可以按要求执行相应的操作来实现,Eclipse,的更新。,1.3.4,使用集成开发环境,2.Eclipse,的获取与安装,使用,Eclipse,开发,Java,程序非常简单。首先创建相应的,Java,项目,然后创建,Java,源文件即可。下面演示创建一个,Java,项目,在里面创建一个类,输出“使用,Eclipse,开发,Java,程序”字符串。,选择“,File,”“,new,”“,JavaProject,”命令,弹出如图所示的窗口。,1.3.4,使用集成开发环境,3.Eclipse,开发,Java,程序,在“,Projectname,”文本框中输入项目名称“,HelloWorld,”。窗口下面的信息主要是用来显示项目的路径。使用的,JRE,环境以及项目布局,采用默认选项即可。输入项目名称后单击“,Next,”按钮,显示如图所示窗口。,1.3.4,使用集成开发环境,3.Eclipse,开发,Java,程序,在该窗口中,可以对,Java,项目进行设置。如设置该项目需要添加的项目、需要额外引入的类库文件等。直接单击“,Finish,”按钮,,Eclipse,就会自动创建一个,HelloWorld,项目,如图所示。,1.3.4,使用集成开发环境,3.Eclipse,开发,Java,程序,在该窗口中,可以对,Java,项目进行设置。如设置该项目需要添加的项目、需要额外引入的类库文件等。直接单击“,Finish,”按钮,,Eclipse,就会自动创建一个,HelloWorld,项目,如图所示。,1.3.4,使用集成开发环境,3.Eclipse,开发,Java,程序,项目创建完成后,就可以直接在该项目中创建文件。选择“,File,”“,new,”“,class,”命令,或者右击“,HelloWorld,”,在弹出的菜单中选择“,new,”“,class,”选项,弹出如图所示的窗口。,1.3.4,使用集成开发环境,3.Eclipse,开发,Java,程序,在该窗口中的“,Package,”文本框中,输入该类所在包的名称。该名称一般为小写字母,如果输入的是大写字母,或没有输入,就会弹出提示消息。在“,name,”文本框中输入要创建的类的名称。该名称第一个字母必须是大写。配置包名与类名后,单击“,Finish,”按钮,弹出如图所示窗口。,1.3.4,使用集成开发环境,3.Eclipse,开发,Java,程序,现在,可以在,Eclipse,平台上编辑,Java,程序。在输入程序代码时我们注意到,,Eclipse,编辑器提供了一些特性,包括语法检查和代码自动提示功能。编辑完成后,结果如图所示。,1.3.4,使用集成开发环境,3.Eclipse,开发,Java,程序,编辑完成后,运行该程序。单击,Eclipse,工具栏上的“,c,”图标,会在,Eclipse,控制台显示程序结果,如图所示。,1.3.4,使用集成开发环境,3.Eclipse,开发,Java,程序,在,Java,应用程序中,经常可以看见(,Stringargs,)方法中带有参数,例如,:,publicclasstest,publicstaticvoidmain,(,String,args,),System.out.println,(,args,0,args,);,这里的参数,args,是一维字符串数组(相关内容会在后面章节涉及),执行方式有两种,:,()命令行环境下,命令内容为,:,JavatestHello,,,World,1.3.4,使用集成开发环境,3.Eclipse,开发,Java,程序,(,2,)在,Eclipse,集成开发环境下,通过右击程序,选择“,Run As,”“,Run,Configurations,”选项,通过,Run/Open Run Dialog/,(,x,),Arguments,来设置参数,注意一个参数要占一行位置。如图所示。,1.3.4,使用集成开发环境,3.Eclipse,开发,Java,程序,上述两种执行方式输出的效果均为“,HelloWorld,”。,Java,应用程序中一定包含,main(),方法,它是程序的入口,由,Java,解释器加载、执行。前面介绍的“,Hello World.Java,”就属于这种类型。为加深读者的印象,这里再给出一个计算平方的应用程序,:,import javax.swing.JOptionPane,;,/,导入所需要的类,publicclassSquareDEmo,/,定义主类,publicstaticvoidmain,(,Stringargs,),/,建立输入对话框来输入数据(字符串),String,JOptionPane.,D,(,请输入一个数,:,);,D,D,D,.,seD,();,/,将数据(字符串)转换为数值型,D,D,D,;,/,计算结果,/,创建消息对话框来输出结果,JOptionPane.,D,(,,的平方是,:,);,程序运行结果如图所示。,从第,2,行代码可知,上述程序是一个类文件,,Java,程序就是由一个或多个类组成的。,“,class,”是类关键字,“,SquareDEmo,”是类的名称,类名首字母通常要大写。有关命名规则将在第,2,章介绍。“,public,”的意思是“公共的”,这表明其所修饰的类或方法可以在外部直接调用。类体用一对大括号“”括住,在其中可以定义多个属性和方法。,类的方法要有名字并带有圆括号“()”,“()”内可以包括若干参数,方法体也是用“”括住,方法名前要指定方法执行后数据的返回类型、访问权限等修饰符,类的功能是通过它的众,多方法来实现的。通常,类的方法名、参数、返回值类型等是由用户根据需要来决定的。但在,主类(即具有,public,权限的类)中,有一个方法比较特殊,那就是“,main(),”,它是应用程序入口,理所当然要对其书写格式进行规定,:,名称固定为“”(注,:Java,是区分大小写的),参数为“,String,”(字符串)数组(用“”标识),返回值类型为“,void,”(无返回值),访问权限为“,public,”(公共的),用“,c,”(静态)修饰说明该方法是属于类所有而不依赖于具体对象。,一个,Java,程序可以包含多个类,但是只允许一个,public,类(即主类)存在,这个程序所对应的主文件名必须与主类名相同(包括大小写),扩展名为,Java,。所以,上述程序必须以,SquareDEmo.Java,命名,否则编译时出错,无法正常运行。,Java,语言提供了一个功能强大的类库供编程人员使用,为了让程序员熟悉某个类或接口,的内容,可以查看,JavaAPI,(,Application Programming Interface,,应用程序编程接口)文档,相当于“字典”。,JavaAPI,文档按包组织,包括,:,类层次描述、类功能描述和字段、构造方法、方法等的摘要及详细信息等内容,通过链接可以快速查找到相关信息。,可以从,Oracle,的官网下载,API,文档,下载网址为,:Docs.O Java,的数据类型,2.3,Java,的运算符、表达式及语句,2.5 Java,程序的基本结构及常用的输入输出格式,2.4 Java,的流程控制,目 录,2.6,数组,Java,是一种强类型语言,也就是说,,Java,程序中的数据要先声明其数据类型,再使用。,Java,的数据类型可分为基本数据类型和引用类型两大类,具体如下:,整数类型,(byte,short,int,long),数据类型,基本数据类型,引用数据类型,数值型,字符型,(char),布尔型,(boolean),浮点类型,(float,double),类,(class),接口,(interface),数组,类型名称,关键字,占用字节及位数,数值范围,字节型,byte,1,字节,(,即,8,位,),-2,7,2,7,-1(,即,:-128,127),短整型,short,2,字节,(,即,16,位,),-2,15,2,15,-1(,即,:-32768,32767),整型,int,4,字节,(,即,32,位,),-2,31,2,31,-1(,即,:-21,亿,21,亿,),长整型,long,8,字节,(,即,64,位,),-2,63,2,63,-1(,即,:-922,亿亿,922,亿亿,),单精度浮点数,float,4,字节,(,即,32,位,),绝对值:,3.4e-038,3.4e+038,双精度浮点数,double,8,字节,(,即,64,位,),绝对值:,1.7e-308,1.7e+308,字符型,char,2,字节,(,即,16,位,),0,2,16,-1(,即,0,65535),布尔型,boolean,1,字节,(,即,8,位,),true,和,false,2.1.1,基本数据类型,字符型,即,char,,用来表示通常意义上字符、文本。,1.,整数类型,包括,byte,、,short,、,int,、,long,,表示无小数部分的数字,包括:正整数、零、负整数。,2.,浮点类型,包括,float,、,double,,表示有小数部分的数字。,布尔型,即,boolean,表示逻辑判断的“真”、“假”,。,2.1.1,基本数据类型,例,2.1 char,类型与,int,类型相互转换。代码如下:,public class UnicodeTest,public static void main(String args ),char c=,大,;,System.,out,.println(+c+,的,Unicode,编码:,+(int)c);,int num=23398;,System.,out,.println(Unicode,编码为,+num+,的字符是:,+(char)num+);,运行结果,大,的,Unicode,编码:,22823,Unicode,编码为,23398,的字符是:,学,2.1.1,基本数据类型,字符型还有一种常用方式就是转义字符,用来改变一些字符的原有含义,实现特定功能。格式为:,特殊字符,常用的转义字符如表所示,(,与,C+,类似,),:,转义字符,功能,转义字符,功能,输出单引号,”,输出双引号”,输出反斜杠,b,退格,(backspace),n,换行,r,回车,光标移至当前行开始,t,光标移至下一个制表位,(tab),2.1.1,基本数据类型,如果是两种相容的数据类型,(,如同为数值型,),,则它们之间可以进行转换。转换的方式有两种:,1.,自动类型转换:,从取值范围小的类型向取值范围大的类型转换,(,如:,byte,short,char int long float double),,这种转换是自动进行,如:,float f=10;,2.,强制类型转换:,从取值范围大的类型向取值范围小的类型转换,需要进行强制转换,,格式:目标数据类型 变量,=(,目标数据类型,),值,;,2.1.2,数据类型的转换,万物皆对象”是,Java,的一个重要观点,前面介绍的,8,种基本数据类型是不能用作“对象”来处理的,但可将它们转换为对应的对象类型,即:,byte,、,Short,、,Integer,、,Long,、,Float,、,Double,、,Character,、,boolean,,它们被称为基本类型的包装类,(,你是否发现它们的命名规律,?),,这些类中的大多数都定义了,MIN_VaLUE,和,MaX_VaLUE,来表示对应的基本类型的数值范围。此外,还定义了许多有用的方法,有兴趣的可以查阅,Java aPI,文档。,2.1.3,引用数据类型,关键字又称保留字,是语言中具有特定含义的单词,用户在编写程序时只能按系统规定的方式来使用它们。,Java,中的关键字有5,0,多个,按用途可划分为几个组别:,1.,标识数据类型、对象:,boolean、byte、char、double、false,、flo,at、int、long、new,、null、short、,true,、void、inst,anceof;,2.,语句控制:,break,、c,ase、catch、continue,、def,ault、do、else、for、if、return、switch,、try、,while,、fin,ally、throw;,3.,修饰功能:this、super、,abstract、final、native、private、protected、public、static、synchronized、transient、volatile;,4.,类、接口、方法、包和异常等的声明、定义要求:,class,、extends、implements、interf,ace、package、import、throws,。,2.2.1,关键字,Java,中的包名、类名、接口名、方法名、对象名、常量名、变量名等统称为标识符。,Java,语言规定:标识符必须是字母(严格区分大小写)、下划线(_)、美元符号($)开头,后续字符除了这三类之外,还可以是数字及Unicode字符集中序号大于,0 xC0,的所有符号(包括中文字符、日文字符、韩文字符、阿拉伯字符等),但是关键字不能单独作为标识符,可作为标识符的一部分。,2.2.2,标识符,在,Java,中,有一些约定俗成的命名规则,熟知并使用这些规则有助于你读懂别人的程序、让自己的程序更规范、大方:,1.,包名通常为小写,,2.,类名、接口名的首字母都为大写;,3.,方法名的第一个字母通常是小写;,4.,当类名、接口名、方法名由多个单词构成时,后面各单词的首字母通常,;,5,.,用户声明的变量名、一个类的对象名通常为小写,如:,str,、,temp,。,2.2.2,标识符,顾名思义,常量是指在程序运行过程中,其值保持不变的量。常量除了前面说过的数值常量、字符常量、布尔常量之外,有时还可以用符号来表示,(,这称为符号常量,),。符号常量要使用关键字,final,来定义,,格式为:,final,数据类型 常量名,=,值,例如:,final double PI=3.1415926;,按照,Java,编程规范要求,符号常量名通常为大写,且多个单词之间用下划线连接。如果是类常量,还要在数据类型前加上,static,关键字。查阅,Java aPI,文档,你会发现许多类的符号常量都是用这种方式来命名的。,常量的调用格式是 类名,.,常量名。,2.2.3,常量,例,2.2,显示类的静态常量,(,通过 类名,.,常量名 方式来访问,),。代码如下:,public class MinMaxValueTest,public static void main(String args ),System.out.println(int,型的最小值:,+Integer.MIN_VaLUE);,System.out.println(int,型的最大值:,+Integer.MaX_VaLUE);,System.out.println(int,型数据所占位数:,+Integer.SIZE);,运行结果,int,型的最小值:,-2147483648,int,型的最大值:,2147483647,int,型数据所占位数:,32,2.2.3,常量,与常量不同,变量是指程序执行过程中,其数值可以改变的量。变量包括变量名和变量值两部分,变量名起标识作用,变量值是计算机内存单元存放的具体内容。我们常用“铁打的营盘流水的兵”来形容部队的建制特点,这里的变量名相当于“铁打的营盘”,是不变部分;变量值类似“流动的兵”,是可变部分。变量是程序的重要组成部分,应熟练掌握。,2.2.4,变量,变量的声明,1,Java,中的变量遵循“先声明,再使用”的原则,通过声明来指定变量的数据类型和名称,变量的值可以在后续语句中赋予或改变。声明格式:,数据类型 变量名,;,或 数据类型 变量名,1,变量名,k;,例如:,double salary;,boolean done;,String,姓名,;,int studentNumber,peopleNumber;,从程序的可读性角度来看,不建议将多个变量的声明写在同一行上。,2.2.4,变量,变量的赋值,2,赋值前,首先要检查赋值号两端的数据类型是否一致。当类型不一致时,如果符合类型自动转换条件,则赋值自动完成;否则,必须进行强制类型转换,不然会造成编译错误。,2.2.4,变量,变量的分类,3,依据的标准不同,变量分类的结果也不一样。这里主要按变量的作用范围来划分,全局变量是指在类中声明的类或对象的成员,称为成员变量,其作用范围是整个类;局部变量是指在一个方法或一个方法的程序块中声明的变量,亦称为本地变量,它的作用域就是该方法或对应的程序块内。,2.2.4,变量,变量的初始化,4,格式:数据类型 变量名,=,值,;,或 数据类型 变量名,1=,值,1,变量名,k=,值,k;,例如:,int sum=0;,实践中,大家对于“变量的初始化”问题可能会有一些困惑,现总结为以下两点:,(1),全局变量,(,即成员变量,),如果不初始化,如表所示:,变量类型,默认值,变量类型,默认值,变量类型,默认值,byte,0,short,0,int,0,long,0L,float,0.0f,double,0.0,char,u000,boolean,false,引用类型,null,(2),局部变量,(,即本地变量,),必须初始化,否则将出错。,2.2.4,变量,算术运算符(,+,、,-,、,*,、,/,和),1,所实现的功能与数学中的运算差不多,这里着重介绍两个“特殊”的运算符:,(1)“/”,进行的是除法运算,运算结果与操作数的类型有关:当操作数为整数时,执行的是除法取整运算,结果仍为整数,例如:,5/2,的值为,2,;当操作数为浮点数时,则是通常意义上的除法,例如:,5.0/2.0,的结果为,2.5,;,(2)“%”,完成的是取模运算,即求余数,例如:,5%2,的结果为,1,,这可用来判断整数的奇偶性。,2.3.1,运算符,自增(自减)运算符(,+,、,-,),2,均为单目运算符,功能是让操作数的值增,1(,或减,1),,在循环语句中常用来修改循环变量的值,以控制循环次数。按照运算符的位置不同,又可细分为前缀、后缀两种形式,它们的功能不尽相同,现用两个赋值表达式来说明它们的差异,设,x,、,y,是两个数值变量,那么:,(1)y=+x(,或,y=-x),:表示先让,x,的值增,1(,或减,1),,再获取,x,的值。,(2)y=x+(,或,y=x-),:表示先获取,x,的值,再让,x,的值增,1(,或减,1),。,从上不难看出,无论是前缀形式还是后缀形式,,x,的最终结果都是一样,但是,y,值则不同。,2.3.1,运算符,关系运算符(,、,=,、,、,=,、,=,、,!=,),3,它们的含义与数学中的关系运算符相同,但是要注意书写方法的差异,不能将,=,写成,=,,运算结果为,boolean,型,只能是,true,或,false,,主要用来进行条件判断或循环控制。仔细分析,可以发现有三组关系式:,=,、,和,=,、,=,和,!=,,每对中的两个运算符都是互为相反结果的运算,当其中的一个值为,true,时,另一个运算结果必定为,false,。清楚了这些关系,在构造条件表达式时,就能针对同一问题,使用两种不同的表达式,达到“异曲同工”的效果。,2.3.1,运算符,逻辑运算符(,!,、,&,、,|,),4,这三个运算符的操作数都是,boolean,型,运算结果也为,boolean,型。,(1),单目运算符,!(,非,),的运算规则是:,!true,即为,false,,,!false,则是,true,;,(2),双目运算符,&(,与,),的运算规则是:只有同时为,true,时,结果才为,true,;,(3),双目运算符,|(,或,),的运算规则是:只有同时为,false,时,结果才为,false,。,2.3.1,运算符,逻辑运算符(,!,、,&,、,|,),4,它们的运算优先级依次为,!,、,&,、,|,(或)。这里,再给出几个等式,请思考:这些等式为什么成立。,!a=a,;,!,(,a&b,),=!a|!b,;,!,(,a|b,),=!a&!b,现在讨论一下使用,&,、,|,运算符时可能出现的“短路”现象:,2.3.1,运算符,逻辑运算符(,!,、,&,、,|,),4,在形如:,&,&,&,的表达式中,只要前面有一个表达式的值为,false,,则整个表达式的值就为,false,,此后各表达式不再计算,因为它们的值无论是,true,还是,false,,都不会影响整个表达式的运算结果。类似的,在形如:,|,|,|,的表达式中,只要前面有一个表达式的值为,true,,则整个表达式的值也就为,true,,后面各表达式的值也不必再计算,因为后续表达式的值同样不会影响整个表达式的运算结果。,“短路”现象带来的直接后果是有些后续表达式没有进行运算,要避免这种情况的发生,可使用位运算符、来取代,&,、,|,。,2.3.1,运算符,位运算符(,、,&,、,|,、,),5,计算机中的数据是以二进制方式存储的,利用位运算符可以操作数据的“位”。其中:,(1),(非)的运算规则是:,1,即为,0,,,0,则是,1,;,(2)&,(与)的运算规则是:只有同时为,1,时,结果才为,1,;,(3)|,(或)的运算规则是:只有同时为,0,时,结果才为,0,;,(4),(异或)的运算规则是:只有一个位为,1,,另一个位为,0,时,结果才为,1,。,由“异或”运算规则还可推出下列式子:,aa=0,,,a0=a,c=ab,a=cb,。如果双方约定数据与同一个数,b,进行,运算,则可以实现加密、解密功能。,2.3.1,运算符,移位运算符(,、,),6,(1),(左移):,a,(带符号右移):,ab,表示将二进制形式的,a,逐位右移,b,位,最高位空出的,b,位补原来的符号位,(,即正数补,0,,负数补,1),;,(3),(无符号右移):,ab,表示将二进制形式的,a,逐位右移,b,位,最高位空出的,b,一律补,0,。,说明:,移位运算适用,byte,、,short,、,char,、,int,、,long,类型数据,对低于,int,型的操作数将先自动转换为,int,型再移位;,对于,int(,或,long),型整数移位,ab,,系统先将,b,对,32(,或,64),取模,得到的结果才是真正移位的位数。,2.3.1,运算符,赋值运算符(,=,、,+=,、,-=,、,*=,、,/=,、,%=,、,&=,、,|=,、,!=,、,=,),7,在程序中大量使用赋值运算符,其功能是:先计算右边表达式的值,再赋给左边的变量,例如:,x%=10;(%=,是复合赋值运算符,该表达式与,x=x%10;,等价,),再如:,a=b=c=0;,连续赋值,此表达式与,c=0,b=0,a=0,等效,运算顺序从右向左。,2.3.1,运算符,条件运算符:(,?:,),三目运算符,8,格式:逻辑表达式,?,值,1:,值,2,执行过程:若逻辑表达式为,true,,就取值,1,,否则取值,2,。,例如:设,x,、,y,是,double,型数据,则:,y=(x=0)?x:(-x),;,/,得到,x,的绝对值,2.3.1,运算符,程序的注释,1,给程序添加注释的目的,就是对程序某些部分的功能和作用进行解释,以增加程序的可读性。注释在程序编译时被删除,所以它不是程序的必要部分,更不属于语句范围。但是,注释是为语句服务的,两者联系密切,因此,放在这里介绍。,Java,程序的注释有三种格式:,(1),单行注释:以,/,开始,到行尾结束;,(2),多行注释:以,/*,开始,到*,/,结束,可以跨越多行文本内容。,(3),文档注释:以,/*,开始,中间行以*开头,到*,/,结束。使用这种方法生成的注释,可被,Javadoc,类工具生成程序的正式文档。,2.3.3,语句,复合语句,2,又称块语句,是包含在一对大括号,(,即由,、,包含,),中的语句序列,整体可以看作是一条语句,所以,,之前和,之后都不要出现分号,(;),。,说明:,(1),在复合语句中可以定义常量、变量,但该常量、变量数据的作用域仅限该复合语句;,(2),在复合语句中还可以包含其它的复合语句,即复合语句允许多层嵌套。,2.3.3,语句,通常,程序中的语句是按照书写顺序从上到下、逐条执行的,这种程序执行方式称为顺序执行,对应的程序结构称为顺序结构。,顺序结构是程序设计的基础,经常使用。该结构比较简单,毋须作更多的介绍。,2.4.1,顺序结构,又称分支结构,是指在程序执行过程中,将根据条件是否满足来选择某一语句的执行,也即是说某些语句可能因为条件不满足而跳过。由于所执行的语句经过筛选,而非全部,所以,这种程序结构就称为选择结构。,需要指出的是,,Java,中的“条件”只能是结果为,boolean,型的表达式,其值为,true,或,false,,而其它类型,(,包括:,byte,、,int,、,short,、,long,、,char,等,),均无资格担当这一角色。在这一点上,,Java,与,C+/C,是不一样的,请加以注意。,2.4.2,选择结构,if语句:,(条件语句),1,单分支语句,双分支语句,多分支语句,2.4.2,选择结构,switch,语句:(开关语句),2,引进,switch,的目的,就是要在实现多分支时,让程序的结构更加清晰、易懂。事实上,,Java,中的,switch,语句用法与,C+,中的类似。,2.4.2,选择结构,格式:,for(,表达式,1;,表达式,2;,表达式,3),循环体;,for语句,1,2.4.3,循环结构,格式:,/,初始化语句,while(,条件表达式,),语句块,/,循环体,/,修改循环变量语句,while,语句,2,2.4.3,循环结构,格式:,/初始化语句,do,语句块/循环体,/修改循环变量语句,while (条件表达式);/进行条件判断,dowhile,语句,3,2.4.3,循环结构,while,与do,while,的比较,4,主要有两点不同:,(1),有无分号:,while,语句的,(,条件表达式,),后一定不要加分号;,dowhile,语句的,(,条件表达式,),后应加分号;,(2),循环体执行次数:,while,语句先判断条件表达式的值是否为,true,,再决定是否执行循环体,这样,循环体有可能一次也不被执行;而,do-while,语句是先执行一次循环体,再根据条件表达式值的真假,以确定下一次循环是否进行,因此,循环体至少被执行一次。,2.4.3,循环结构,多重循环,5,如果在一个循环体内允许包含另一个循环,这称为嵌套循环。其中:外层的循环称为外循环,内层的循环称为内循环,嵌套的层数可以根据需要达到一二十层之多。但是应注意:外循环和内循环不允许交叉嵌套。,2.4.3,循环结构,跳转语句,6,使程序的流程从一个语句块内部转移出去。该语句可用在循环结构和,switch,语句中,允许从循环体内部跳出或从,switch,的,case,子句跳出,但不允许跳入任何语句块内。,break,语句,2.4.3,循环结构,格式有两种:,不带标签的,break,语句:,break,;,跳出,switch,语句或所在的循环(只跳出一层循环),继续后续语句的执行。,带标签的,break,语句:,break,标签;(注:标签由标识符加冒号组成),从多重循环语句中,跳出标签所指的块(某层循环),从该块的后续语句处执行。,终止本次循环,根据条件来判断下一次循环是否执行,只能用在循环结构中。,continue,语句,跳转语句,6,2.4.3,循环结构,格式有两种:,不带标签的,continue,语句:,continue,;,在,while,或,dowhile,语句中,直接跳转到循环条件的判断处,在,for,语句中则直接计算表达式,3,的值,然后再决定是否继续循环。,带标签的,continue,语句:,continue,标签;,终止内循环的执行,直接跳到标签标识的外层循环处,根据条件来判断下一次循环是否执行。,到目前为止,我们已经接触了十几个,Java,程序,对它们的结构有一定的了解,,Java,程序大致有如下的形式:,package,包名,;/,包语句最多,1,条,位置在最前面,import,包名,.,类名,;/,导入语句可以没有,也可以,1,条或多条,publicclass,类名,/,主类应该用,public,关键字修饰,且文件主名与主类名称相同,/,public,static,void,main(String args ),/,程序其它代码,从功能上看,,Java,程序通常应包含输入、处理、输出等几部分。,2.5
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服