资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2022/4/3 Sunday,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2022/4/3 Sunday,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,#,Java,面向对象程序设计,第,1,章了解,Java,教学内容,了解Java语言的现状、特点、运行的机制,掌握Java开发环境的搭建,掌握UltraEdit编辑器来编辑Java程序,掌握Java程序的基本结构,掌握Java程序运行的基本步骤,掌握Window操作系统下简单Dos命令,掌握Eclipse集成环境的使用,教学目标,了解,Java,的技术背景以及,Internet,的发展对,Java,的推动作用,理解平台无关性及可移植性的含义,掌握编写具有简单输出功能的,Java,应用程序的方法,熟练,JDK,的安装以及编辑、编译与运行,Java,应用程序的方法,理解类、对象、属性、方法等面向对象的基本概念,了解面向封装、继承及多态等面向对象的基本特性,Java,起源,Java是美国Sun Microsystems公司在1995年推出的一种面向对象的程序设计语言。从Java语言诞生以后,迅速成为一种流行的编程语言,。1996年Sun公司推出了Java开发工具包,即JDK1.0,提供了强大的类库支持。1998年推出了JDK1.2,是Java里程碑的版本,Sun公司将Java改名为Java 2,即第二代Java,并且将Java分成JavaSE、JavaME和JavaEE三个版本,即Java标准版、Java嵌入式版本和Java企业版,分别针对不同的开发领域。后续发布了Java的一系列版本,现在的最新的版本为JDK11。具TIOBE公司发布2018年10月份最新编程语言排名中Java编程语言排在第一位。,Java,平台的构成,Java,平台包括核心,JVM,以及,Java API,Java,平台的三种版本,Java SE,允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的,Java,应用程序。,Java EE,是,Sun,公司针对,Internet,环境下企业级应用推出的一种全新概念的模型,比传统的互联网应用程序模型更有优势,适合于开发服务器端应用程序或者大型,ERP,系统等。,Java EE,也是一组规范集。,Java Me,可以使用在各种各样的消费电子产品上,例如,智能卡、手机、,PDA,、电视机顶盒等方面。,Java EE,也提供了,Java,语言一贯的特性,跨平台和安全网络传输。随着,3G,及嵌入式芯片技术的发展,基于,Java,的移动式、嵌入式应用将会越来越广泛。,Java,的特点,Java,是简单的,面向对象的,分布式的,解释型的,健壮的、安全的,结构中立的、可移植的,高效的、多线程的、动态的,Java,程序开发环境,Java,开发工具包的来源,一个,Java,程序的开发要经过编辑、编译和运行三个过程。,Java,程序的编辑可以使用任何一个文本编辑器,编译与运行则通过,Sun,公司提供的,Java,开发工具箱,JDK,(,Java Development Toolkit,)进行。,JDK,是一个简单的命令行工具集,包括软件库、编译,Java,源程序的编译器、执行字节码的解释器以及其他的一些实用工具。,JDK,环境变量设置,Java,应用程序结构,一个,Java,应用程序由类、对象与方法等若干部分组成。,Java,应用程序开发过程,一个,Java,程序的开发过流程如图所示,主要包括:编辑、编译和运行。,这个过程是反复的,不管是在创建源代码,还是在编译或者运行时,只要有错误,就必须通过修改程序源代码以纠正错误,然后再重新编译或者运行。,Java的开发运行环境是指Java程序的软/硬件环境,需要安装Sun公司的JDK。JDK的下载与安装步骤如下:,登录Oracle公司的网站(),:,LOGO,JDK的安装(1),2、点击Trials and Downloads,如图1-3所示:,JDK的安装(2),点击Java for Developers按钮,进入到JDK下载页面,如图1-4所示:,LOGO,JDK的安装(3),下载Java Platform(JDK)8u144,选择对应的操作系统,下载JDK。,LOGO,JDK的安装(4),安装 JDK,鼠标双击安装文件,进行安装,如图1-6所示:,JDK的安装(5),JDK的安装(6),点击下一步,进入定制安装界面,如图1-7所示,点击“更改”按钮,进入更改安装目标文件夹界面,如图1-8所示,更改目录后,点击下一步,完成JDK的安装,如图1-9所示,JDK,环境变量的配置,在桌面“计算机”图标上单击鼠标右键,在弹出的菜单上选择:“属性”项,在弹出的对话框中,选择“高级系统设置”项,在弹出的对话框,选择“高级”选项卡,单击“环境变量(N)”按钮,在“高级系统设置”界面单击“环境变量”按钮进入“环境变量”对话框,在“环境变量”对话框中的“系统变量”选项组中找到“path”变量,并选中它,然后单击“编辑”按钮。进入“编辑系统变量”对话框,在编辑系统变量“变量值”一栏,将光标移到变量值的最末尾,输入:,;C:Program FilesJavajdk1.8.0_144bin,单击“确定”按钮。,备注:C:Program FilesJavajdk1.8.0_144为本书JDK的安装路径,读者根据实际安装路径作相应的变动。,在单击“新建(w)”按钮,在弹出的“新建系统变量”对话框中:变量名一栏输入:classpath,在变量值一栏输入:,.;C:Program FilesJavajdk1.8.0_144lib;C:ProgramFilesJavajdk1.8.0_144libdt.jar;C:Program FilesJavajdk1.8.0_144libtools.jar,在“开始”菜单中,“搜索程序和文件”文本框输入cmd,按回车键,进入dos命令提示符界面,在命令提示符界面下输入:java-version命令,按回车,测试JDK的path路径配置,Java Application程序步骤,1、通过文本编辑器或者java程序的集成开发环境来编写java程序,2、对java程序进行编译,如果编译没有错误,会形成相应的java程序的类文件(class文件),如果编译有错误,继续修改java程序。,3、运行java程序的类文件。,【例1-1】编辑java源程序,在显示器上输出“This is first java program”字符串。,编辑文件:,打开记事本或者UltraEdit编辑器软件,输入如下源代码,然后将该程序保存到D盘的根目录下,文件名为TestFirstProgramm.java。,public class TestFirstProgramm,public static void main(String args),System.out.println(This is first java programm);,编译生成字节码文件:,单击“开始”菜单所有程序附件命令提示符,在dos命令提示符下输入“d:”,将盘符切换到D盘的根目录下。如图1-15所示:,KING,SOFT,在D盘的根目录的命令提示符下输入“javac TestFirstProgramm.java”,按回车,如图1-16所示。,图1-16编译TestFirstProgramm程序,如上图显示,表示该程序没有编译错误。会在源目录下生成TestFirstProgramm.class文件。运行程序:,运行该程序的class文件,在命令提示符下输入“java TestFirstProgramm”,按回车,如图1-17所示:,图1-17程序运行结果,程序的运行的结果是显示“This is first java programm”字符串。,KING,SOFT,【例1-2】Java applet小程序输出“Hello World”。,编辑:,在UltraEdit文本编辑器中输入如下程序:,import java.awt.*;/引入java.awt包下所有的类,import java.applet.*;/引入java.applet包下所有的类,public class HelloWorldApplet extends Applet,public void paint(Graphics g),drawString(Hello World,50,50);,保存到文件夹:D:javasource1,文件名为HelloWorldApplet.java即:D:javasource1HelloWorldApplet.java,编译:如图1-18所示,编译成功后,会在当前文件夹下形成一个HelloWorldApplet.class文件,(3)运行:因为java applet小应用程序没有main方法,不能独立运行,必须镶嵌在html网页文件中:,1)首先建立html网页文件:,采用UltraEdit编辑器编辑一个html网页文件,将HelloWorldApplet.class文件嵌入到网页文件中,This is a java applet,网页文件编辑好后,保存到HelloWorldApplet.java同一个文件夹下,文件命名为:HelloWorldApplet.html,2)运行该网页文件,网页文件可以通过浏览器来打开,双击该网页文件。,3)也可以采用命令appletviewer.exe来执行java applet小应用程序,在dos命令窗口输入:appletviewer HelloWorldApplet.html,如图1-19所示:,运行的结果如图,1-20,所示,程序的注释,注释是对程序的说明,提高程序的可读性和可维护性,注释语句不会被程序执行。Java程序的注释有三种形式:,(1)单行注释,Java中单行注释用符号“/”表示,从“/”符号开始直到此行末尾或者直到换行标记都会被作为是注释内容。,(2)多行注释,符号“/*/”表示多行注释,其中符号“/*”和“*/”之间无论有几行说明均被作为是注释内容。,(3)文档注释,文档注释用符号“/*/”表示,与多行注释一样,符号“/*”和“*/”之间的内容不论有几行都被视作注释内容。但当文档注释符号出现时会被Javadoc文档工具读取为Javadoc文档内容,一般在Web页面开发时使用。,Eclipse集成开发环境的使用,通过网络进入到Eclipse官方网站(www.eclipse.org/)如图1-21所示:,点击PACKAGES按钮,在进入的网页中选择Eclipse IDE for Java Developers,选择相应的操作系统的位数,点击下载,如图1-22所示:,下载后,得到一个压缩文件,本书的下载的Eclipse集成开发环境软件eclipse-java-oxygen-R-win32-x86_64.zip,解压缩,就完成Eclipse的安装,打开 Eclipse文件夹,双击eclipse.exe可执行文件,运行Eclipse软件,出现java项目工作区的设置,如图1-23所示:,点击Browse按钮可以设置java项目的工作区,本书暂且用默认的工作区,点击Launch按钮,启动Eclipse软件,显示如图1-24所示界面:,采用eclipse集成开发环境,建立第一个Java 项目,步骤如下:,(1)新建一个java项目,依次点击菜单栏“文件”-“new”-“Java Project”,出现如图1-25所示界面:,在Project name栏输入你要建立的java项目名称,选中Use default location表示你建立的java项目默认存放的位置,也可以选择“Browse”按钮,将你建立的java项目存放到你想要的位置,其他按照缺省设置,单击Finish按钮。,(2)新建一个类文件,在Eclipse环境中的“Package Explorer”,右击你的项目,依次选择“new”“Class”,在出现的对话框中,name项目输入java程序文件名,如图1-26所示:,单击“Finish”按钮,出现java程序的编写界面,如图1-27所示:,(3)编辑java程序代码,在Eclipse软件中中间部分是代码的编写部分,在该区域写入代码,如图1-28所示:,(4)保存java程序,写好java程序代码后,点击工具栏上的“保存”按钮或是快捷键(Ctrl+S),在保存的同时,Eclipse自动将源程序编译成字节码文件,如果源程序有语法错误,Eclipse会智能提示。,(5)运行java程序,在Eclipse软件的菜单栏“Run”,选择run选项,或者点击Eclipse软件的工具栏运行按钮,运行程序,如图1-29所示:,任务总结,本章主要介绍了java的语言的特点和运行机制,jdk的下载和安装,java程序运行环境变量配置,以及Eclipse集成开发环境的简单使用。通过本章的学习,可以使学生掌握java程序的编辑、编译、运行过程。,任务练习,1.Java语言的特点是什么?,2.练习掌握Java JDK的安装与环境配置。,3.练习掌握在dos命令提示符下运行Java程序。,4.练习掌握Eclipse的使用。,5.编写一个Application源程序,输出:“Hello World!”。从而练习Java编辑、编译、运行程序的方法。,6.编写一个applet源程序,从而掌握applet程序的运行过程。可以仿照课本的【例1-2】,要求:定义一个HTML文件,该HTML文件嵌入applet应用程序,用浏览器打开该HTML文件,显示:“This is an applet”。,Java,面向对象程序设计,第,2,章 Java语言基础,任务目的,.,掌握java语言的基本数据类型使用,.,掌握java语言的运算符、表达式,.,掌握java语言程序控制语句,.,掌握Java程序数组的定义和使用,标识符,Java程序中对各种变量、方法和类等要素命名时使用的字符序列称为标识符。,标识符命名规则:,1、标识符有字母、下划线“_”、美元符号“$”或数字组成。,2、标识符应以字母、下划线、美元符号开头。,3、Java标识符大小写敏感,长度无限制。,4、Java标识符取名尽量做到“见名知意”,(1)以下标识符取名合法:,HelloWorld,DataClass,_987,$bs5_C7,(2)以下标识符取名不合法:,Hello World,Class,987,bs5.C7,关键字,关键字也称为保留字,Java程序中一些赋以特定的含义,用作专门用途的字符串称为关键字(Keyword)。,Java常用的关键字如表2.1所示:,abstract,boolean,break,byte,byvalue*,case,cast,catch,char,class,const*,continue,default,do,double,else,extends,false,final,finally,float,for,future,generic,goto*,if,implements,import,inner,instanceof,int,interface,long,native,new,null,operator,outer,package,private,protected,public,rest,return,short,static,super,switch,synchronized,this,throw,throws,transient,true,try,var,volatile,while,常量与变量,常量,常量是指在程序运行过程中其值不能发生改变的量。常量分为:,1、整型常量:数值型数据为整型,如123。,2、实型常量:数值型数据为浮点型,如12.3。,3、字符常量:以单个引号括起来的单个字符,如a,2。,4、字符串常量:以双引号括起来的字符串,如”abc”,”a”,”12”。,5、逻辑常量:逻辑常量分为逻辑真和逻辑假,值为true和false。,注:常量还可以表示值不可以变的变量,具体可以参考final定义的变量。,变量,变量是指在程序运行过程中其值可以发生改变的量,是Java程序中基本储存单元。,变量包括变量名和变量值两个部分,变量名就是用户自己来定义变量的名称,给变量命名符合标识符的规范;变量值则是存储在变量名的数据,修改变量的值仅仅是改变存储单位中的数据,而不是改变储存数据的位置,即变量名不能改变。,变量必须先声明后才能使用,声明变量必须要指明该变量属于哪种数据类型。,因此Java中的每个变量都要指明该变量属于某种数据类型,因此一个变量一般要具备三个要素:,1、变量的名称,给变量命名要符合标识符的规范。,2、变量所属数据类型,变量在定义的时候要指明所属数据类型,才能使用。,3、变量的初始值,变量在定义的时候,可以赋一个初始值,随着程序的执行该值可以改变。,变量声明的格式,数据类型 变量名称1=值1,变量名称2=值2,;,【例2-1】:源程序名“Demo2_01.java”,该程序计算圆的半径为20的圆的面积,并输出。通过该程序让学生了解常量和变量的使用。,public class Demo2_01,public static void main(String args),final double PI=3.1415926;,int R=20;,double S;,S=PI*R*R;,System.out.println(该圆的面积是:+S);,该程序的运行结果:,基本数据类型,Java程序在定义变量的过程中,必须要指明该变量的所属数据类型,数据类型分为基本数据类型和引用数据类型。基本数据类型有8种,包括:字节型(byte)、短整型(short)、整型(int)、长整型(long)、单精度浮点型(float)、双精度浮点型(double)、字符型(char)、布尔型(boolean);引用数据类型有3种,包括:类类型(class)、接口类型(interface)、数组类型。本章只介绍简单数据类型和数组类型,其他两种数据类型到第三章讲解。,整型,整型数据类型分为4种,字节型(byte)、短整型(short)、整型(int)、长整型(long)。,Java语言整型常量的三种表达方式:,1、十进制整数:用多个0-9之间的数字表示,除非是0不然首位不能用0来表示,如,123,-315,0。,2、八进制整数:Java程序中采用八进制数表示整数必须在该整数前面加上一个0进行表示,如023,0366。,3、十六进制整数:Java程序中采用十六进制表示整数必须在该整数前面加上0 x进行表示,如0 x255,0 xa1等,Java各整数类型有固定的表数范围和字段长度,且不受具体的操作系统的影响,以保证Java程序的可移植性。整型变量4种类型占存储空间的大小以及取值范围如表2.2所示,:,表,2.2 Java,中的数据类型,数据类型,关键字,存储空间/字节,取值范围,基本类型,整型,字节型,byte,1,-2,7,2,7,-1,短整型,short,2,-2,15,2,15,-1,整型,int,4,-2,31,2,31,-1,长整型,long,8,-2,63,2,63,-1,Java程序中整型常量默认的为int型,声明长整型(long)在整型常量后面要加上”l”或”L”。,int s=800;/正确,long ss=999999999999L;/如果不加l或L,则错误。,因为:999999999999默认的int型的值,但该值超出了int型的取值范围,所以会出错。将999999999999值转换为长整型就可以了,这个值没有超出长整型的取值范围。,浮点型,浮点型数据就是实型数据,分为单精度浮点型(float)和双精度浮点型(double)。,Java语言中浮点型常量有两种表示方法:,1、十进制数形式:如3.14,2.68。,2、科学记数法形式:由十进制整数、小数点、小数和指数部分构成,指数部分由字符E或e带正负号的整数表示。如:314.3,采用科学记数法表示:3.143E+2或者3.143e2或者3.143E2;0.03143,采用科学记数法表示:3.143e-2或者3.143E-2。,Java各整数类型有固定的表数范围和字段长度,且不受具体的操作系统的影响,以保证Java程序的可移植性。浮点型变量占存储空间的大小以及取值范围如表2.3所示:,表,2.3 Java,中的数据类型,数据类型,关键字,存储空间/字节,取值范围,基本类型,浮点型,单精度,float,4,-3.4E383.4E38,双精度,double,8,-1.7E3081.7E308,Java浮点型常量默认的是双精度(double)浮点型常量,如果要声明一个常量为float,则需在数字后面加f或F,如:,dobule d=123.4;/正确,float dd=123.4f;/如果123.4后面不加f或F,则错误,【例2-2】:通过案例来掌握整型数据类型和浮点型数据类型的使用,public class Demo2_02,public static void main(String args),short sh=050;,int i=0 xA3;,long lg=(long)2.0E+10;,byte by=(byte)129;,float ft=(float)1.234;,double db=34.56d;,System.out.println(短整型变量的值:sh=+sh);,System.out.println(整型变量的值:i=+i);,System.out.println(长整型变量的值:lg=+lg);,System.out.println(字节型变量的值:by=+by);,System.out.println(单精度度浮点型的值:ft=+ft);,System.out.println(双精度浮点型的值:db=+db);,该程序的运行结果:,字符型,字符型(char)数据用来表示单个的字符。如:,Char eChar=a;,char cChar=中;,Java字符采用Unicode编码,每个字符占两个字节,取值范围:0-65535之间,也可以十六进制编码形式表示:,Char c1=u0061;/u表示后面的数字是采用Unicode编码来表示,Java语言中还允许使用转义字符来将其后的字符转变为其它的含义,例如:,Char c2=n;/n表示换行符,Java语言中常用的转义字符如表2.4所示:,表,2.4 Java,中的转义字符,转义字符,引用方法,含义,ddd,ddd,13位八进制数据表示的字符,dxxxx,dxxxx,4位十六进制数据表示的字符,单引号,反斜线,b,b,退格,t,t,tab,n,n,换行,f,f,换页,r,r,回车,布尔型,布尔型(boolean)是一种表示逻辑值的简单数据类型,它的取值只能是常量true或false中的一个。通常用于程序中的一些逻辑判断处理。,【例2-3】:通过案例来掌握简单数据类型的使用,public class Demo2_03,public static void main(String args),char ch1=b;,char ch2=;,boolean n1=true;,boolean n2=(3+2)、=、,除“”为一元运算符外,其他都是二元运算符,三元运算符,?:,三元运算符,算术运算符,算术云算符完成数学上的加(+)、减(-)、乘(*)、除(/)、取余(%)等运算。+、-运算符完成一元操作数的自增和自减,Java中算术运算符如表2.6所示:,表,2.6,算术运算符,运算符,用例,功能,+,a+b,求a与b之和,-,a-b,求a与b之差,*,a*b,求a与b之积,/,a/b,求a与b之商,%,a%b,求a与b相除的余数,+,a+,先引用a的值,a的值加1,+a,a的值先加1,再引用a的值,-,a-,先引用a的值,a的值减1,-a,a的值先减1,再引用a的值,【例2-5】:通过案例来掌握算术运算符的使用,public class Demo2_05,public static void main(String args),int i1=10,i2=20;,int i=(i2+);,System.out.print(i=+i+,);,System.out.println(i2=+i2);,i=(+i2);,System.out.print(i=+i+,);,System.out.println(i2=+i2);,i=(-i1);,System.out.print(i=+i+,);,System.out.println(i2=+i2);,i=(i1-);,System.out.print(i=+i+,);,System.out.println(i2=+i2);,inti3=i2%i1;,System.out.println(i3=+i3);,程序运行的结果:,赋值运算符和扩展赋值运算符,赋值运算符,“,=,”,,是一个双目运算符,扩展赋值运算符就是把赋值运算符与算术运算符、逻辑运算符或位运算符中的双目运算符结合起来而形成的赋值运算符。如表2.7所示:,表,2.7,赋值运算符和扩展赋值运算符,运算符,用例,功能,=,a=b,把b的值赋给a,+=,a+=b,a=a+b,-=,a-=b,a=a-b,*=,a*=b,a=a*b,/=,a/=b,a=a/b,%=,a%=b,a=a%b,&=,a&=b,a=a&b,=,a=b,a=ab,|=,a|=b,a=a|b,=,a=b,a=a=,a=b,a=ab,=,a=b,a=ab,【例2-6】:通过案例来掌握扩展赋值运算符的使用,public class Demo2_06,public static void main(String args),int m=4;,int n=8;,n+=m;,System.out.println(m=+m+,n=+n);,String s1=s1;,String s2=s2;,s1+=s2;,System.out.println(s1=+s1+,s2=+s2);,程序运行的结果:,关系运算符,关系运算符用于比较两个值之间的大小,结果返回boolean型的值。具体关系运算符如表2.8所示:,表,2.8,关系运算符,运算符,用例,功能,=,a=b,如果a恒等于b,结果为true,否则,结果为false,!=,a!=b,如果a不等于b,结果为true,否则,结果为false,ab,如果a大于b,结果为true,否则,结果为false,=,a=b,如果a大于或等于b,结果为true,否则,结果为false,ab,如果a小于b,结果为true,否则,结果为false,=,a4)/第二个操作数将不再计算,boolean flag2=(i2)|(i+j)6);/第二个操作数将不再计算,System.out.println(flag1=+flag1);,System.out.println(flag2=+flag2);,程序的运行结果:,三元运算符,三元运算符(?:),该运算符的语法格式:,?:,表达式1的值是一个逻辑值,程序先计算表达式1的值,如果为true,就将表达式2的值作为整个表达式的值,如果为false,就将表达式3的值作为整个表达式的值。,【例2-8】:通过案例来掌握三元运算符的使用,public class TernaryOperator,public static void main(String args),int score=80;,int x=-100;,String type=score0?1:(x=0?0:-1);,System.out.println(type=+type);,System.out.println(flag=+flag);,程序的运行结果:,位运算符,Java中可以使用位运算直接对整数类型和字符类型的数据的按位操作,Java的位运算符有:位非()、位与(&)、位或(|)、位异或()、位右移()、位左移()。具体位运算符如表2.10所示:,表,2.10,位运算符,运算符,用例,功能,a,a按位取反,&,a&b,a与b按位与,|,a|b,a与b按位或,ab,a与b按位异或,ab,a右移b位,若a的最高位为1,左边补1,否则补0,a,ab,a右移b位,左边补0,【例2-9】:通过案例来掌握位运算符的使用(这个例子的数字要变),byte a=7,b=-7,c=15,d=42 则:,c=-16 /等价于二进制 00010000=11101111,c&d=10 /等价于二进制 00010000&00101010=00001010,cd=37 /等价于二进制 0001000000101010=00100101,c|d=47 /等价于二进制 00010000|00101010=00101111,a2=28 /等价于二进制 000001112=-2 /等价于二进制 111110012=11111110,b2=62 /等价于二进制 111110012=00111110,程序如下:,public class Demo2_09,public static void main(String args),byte a=7,b=-7,c=15,d=42;,System.out.println(c);,System.out.println(c,System.out.println(cd);,System.out.println(c|d);,System.out.println(a2);,System.out.println(b2);,2.3.4.7运算符的结合性和优先级,Java语言中一条表达式,往往包含多个运算符,那个运算符先运算那个运算符后运算,也有一定的规则,即运算符运算的优先级。运算符优先级从高到底排列,如表2.11所示:,圆括号可以改变表达式中运算符的优先级别。,表,2.11,运算符优先级,优先级,运算符,含义,结合性,1,.(),对象成员 数组下标 圆括号,从左到右,2,+-+-!,自增 自减 负号 正号 位非 逻辑非,从右到左,3,*/%,乘 除 取余,从左到右,4,+-,加 减,从左到右,5,左移 右移 无符号右移,从左到右,6,=,小于 小于等于 大于 大于等于,从左到右,7,=!=,恒等 不等,从左到右,8,&,逻辑与(位与),从左到右,9,逻辑异或(位异或),从左到右,10,|,逻辑或(位或),从左到右,11,&,短路与,从左到右,12,|,短路或,从左到右,13,?:,三元运算符,从右到左,14,=扩展赋值运算符,赋值 扩展运算符,从右到左,【例2-10】:通过案例来掌握运算符优先级的使用(补充程序内容),public class Demo2_10,public static void main(String args),inti=15;,booleanflag=i30,System.out.println(flag);,程序的运行结果:,Java流程控制,2.3.6Java流程控制,对程序的语句执行流程进行控制叫程序流程控制,java中常用的流程控制语句包括顺序语句、选择语句、循环语句。,顺序结构就是从上往下,依次执行。顺序结构是最简单的,最基本的一种程序结构。,选择语句,选择语句也就条件语句,当满足某种条件,就执行某段代码,不满足某种条件,就执行另一段代码等。选择语句分为if语句和switch语句。,if语句,if语句根据多种选择情况,分为单分支if语句、双分支if语句、多分支if语句。,1、单分支if语句,单分支if语句是最简单的if语句,基本语法格式:,if(表达式),语句块,if后面的表达式是一个逻辑型的值,表达式的值如果为true,程序就执行if后面的花括号里面的语句块。否则不执行语句块。,【例2-11】:通过案例来掌握简单if语句的使用,public class Demo2_11,public static void main(String args),int i=21;,boolean n=false;,if(i!=20),n=true;,System.out.println(n);,程序的运行结果:,2、双分支if语句,采用if和else语句配合来完成双分支if语句,相当于“如果那么”的意思。,语法格式:,if(表达式),语句块1,else,语句块2,if后面的表达式是一个逻辑型的值,表达式的值如果为true,程序就执行if后面的花括号里面的语句块。否则执行else后面的花括号里面的语句。,【例2-12】:通过案例来掌握简单if语句的使用,public class Demo2_12,public static void main(String args),int i=20;,boolean n=false;,if(i!=20),n=true;,else,System.out.println(i=+i);,System.out.println(n=+n);,程序的运行结果:,3、多分支if语句,采用if与else if语句嵌套来完成多分支if语句,基本语法格式:,if(表达式1),语句块1,else if(表达式2),语句块2,/省略了多条else if语句块,else if(表达式n),语句块n,else,语句块n+1,表达式1一直到表达式n都是逻辑值,if多分支程序执行过程:从上到下判断表达式的值,如果表达式值都为false,就执行else后面的花括号语句块,执行结束后,退出if多分支语句;如果某个表达式的值为true,就执行该表达式下的花括号语句块,程序不对其后面的表达式值进行判断了,该if多分支语句结束。,【例2-13】:通过案例来掌握if多分支语句的使用,public class Demo2_13,public static void main(String args),int i=20;,if(i 20),System.out.println(20);,else if(i 40),System.out.println(40);,else if(i 60),System.out.println(=60);,System.out.println(100);,程序的运行结果:,switch语句,if多分支嵌套语句,分支较多时,程序的可读性降低,Java提供了switch语句,该语句根据表达式的值来选择执行多分支语句,语法格式:,switch(表达式),case 常量表达式1:语句块1;break;,case 常量表达式2:语句块2;break;,case 常量表达式n:语句块n;break;,default:,语句块n+1;,switch后的表达式的值只能是byte、short、int类型或者是字符、字符串类型,根据表达式
展开阅读全文