《第2章+JAVA程序设计语言基础125课件.ppt》由会员分享,可在线阅读,更多相关《第2章+JAVA程序设计语言基础125课件.ppt(125页珍藏版)》请在三一办公上搜索。
1、第2章 Java程序设计语言基础,Java开发环境Java语言基础控制结构,第2章 Java程序设计语言基础Java开发环境,Java开发环境,了解JAVA开发环境掌握J2SDK的安装和环境变量的设置方法理解path和classpath的作用学会创建第一个java应用程序并成功运行初步掌握编写java程序的注意事项,Java开发环境了解JAVA开发环境,上节回顾:Java的编译与执行,上节回顾:Java的编译与执行Java源程序Java编译器J,Java平台,Java平台的概念平台:为程序提供运行环境的硬件和操作系统的总称Java平台:纯软件的,为Java提供统一的运行环境Java平台的组成结
2、构Java虚拟机(JVM)Java应用程序接口(Java API)Java类库,Java平台Java平台的概念,Java平台,Java平台的组成结构Java虚拟机:解释并运行Java二进制码Java API:由许多软件包组成,这些软件包可以实现很多功能,包括图形界面功能,Java平台 Java平台的组成结构,Java平台,Java应用程序接口的主要内容,Java平台Java应用程序接口的主要内容,Java开发环境,从http:/网站上免费下载J2SDK(Java2 Software Development Kit),并利用命令行方式操作javac(编译器);java(解释器)Java集成开发环
3、境(IDE)有:NetBeans、Eclipse等 J2SDK的安装(演示),Java开发环境从http:/网站,Java开发环境目录结构,安装SDK后产生如下目录结构:bin目录:Java开发工具,包括Java编译器、解释器等demo目录:一些实例程序lib目录:Java开发类库jre目录:Java运行环境,包括Java虚拟机、运行类库等,Java开发环境目录结构安装SDK后产生如下目录结构:,Java开发环境开发工具介绍,javac.exe-Java编译器,用来将java程序编译成Bytecode。java.exe-Java解释器,执行已经转换成Bytecode的 Java应用程序。jdb
4、.exe-Java调试器,用来调试Java程序。javap.exe-反编译(将.class文件还原为.java)。javadoc.exe-文档生成器,创建HTML文件。appletviwer.exe-Applet解释器,用来解释已经转换成Bytecode的Java小应用程序。,Java开发环境开发工具介绍javac.exe,Java开发环境,设置环境变量在Windows 2000和Window XP系统下,可以选择【控制面板】|【系统】|【高级】|【环境变量】。在出现的环境变量窗口中包含【用户变量】和【系统变量】,在系统变量框中选择【path】,单击【编辑】按钮,在弹出的【编辑系统变量】窗口的
5、【变量值】框最后加上;C:JDK安装路径bin;,Java开发环境设置环境变量,Java语言开发环境,什么是环境变量 查看环境变量的两种方式如何设置系统环境变量 path环境变量的作用%path%的意义如何解决使用java命令中的问题,Java语言开发环境什么是环境变量,Java语言开发环境,实际操作讲解classpath的作用Java解释器是如何处理当前目录的如何解决当前目录的问题配置classpath的几个注意事项,Java语言开发环境实际操作讲解classpath的作用,创建第一个Java程序(1/4),1.用记事本编写源程序:,创建第一个Java程序(1/4)1.用记事本编写源程序:,
6、创建第一个Java程序(1/4),源程序:/*文件名:FirstApp.java*功 能:显示天天好心情!*编写:张三*编写时间:2004.06.03*修改:李四*修改时间:2004.08.15*/public class FirstApp public static void main(String args)/显示天天好心情!System.out.println(天天好心情!);,类的名称,指明类为公共的类,程序的入口,程序中的语句,命令行参数,创建第一个Java程序(1/4)源程序:类的名称指明类为公共,创建第一个Java程序(1/4),英文字母的大小写问题Java语言区分大小写,录入时
7、必须严格按这里给出的大小写特别容易弄错的是“System.out.println”,只有System是大写,out和println都是小写例子对比:“FirstApp”和“firstapp”“System.out.println”,“system.out.println”和“System.Out.Println”,创建第一个Java程序(1/4)英文字母的大小写问题,创建第一个Java程序(1/4),中文标点符号问题中文的分号和英文的分号很相似,但中文的分号后面有空白,英文的分号后面没有中文的右引号特别容易在输入中文字符串时出现,往往是在输入中文后随手输入了引号的缘故例子对比:中文的分号“;”
8、和英文的分号“;”中文右引号,如:天天好心情!”,创建第一个Java程序(1/4)中文标点符号问题,关于Java应用程序的说明,Java中的基本程序单位是类,每一个程序中应该有一个公共类,2.public class FirstApp就是声明了一个公共类,3.其中FirstApp是类的名称,是由用户指定的,4.公共类的名称必须与文件名一致,5.每一个Java应用程序必须定义一个main方法 public static void main(String args),6.如果在一个java程序文件中定义了多个类,则只能有一个public的,main方法必须在public的类里面,关于Java应用程
9、序的说明Java中的基本程序单位是类,每一,创建第一个Java程序(2/4),2.保存源程序选定一个目录,如C:Java来保存文件在“文件名”一栏敲入“FirstApp.java”,“保存类型”一栏选“所有文件”需要注意的问题不要忘记了文件保存在什么位置文件类型要选“所有文件”,并敲入扩展名,否则可能保存为以txt为后缀的文本文件,创建第一个Java程序(2/4)2.保存源程序,创建第一个Java程序(3/4),3.编译源程序选“程序”“附件”“命令提示符”:闪烁的光标,表示在这里输入命令。光标前的 为当前路径。,创建第一个Java程序(3/4)3.编译源程序,创建第一个Java程序(3/4)
10、,敲入:cd Java,进入 目录下 敲入:dir,显示该目录下的所有文件其中“FirstApp.java”就是保存的Java源文件,创建第一个Java程序(3/4)敲入:cd J,创建第一个Java程序(3/4),敲入:javac FirstApp.java 几秒钟后,如果提示符 重新出现,没有提示任何信息,说明编译成功了。编译成功之后,将产生一个字节码文件FirstApp.class,它的文件名与类名相同,相当于其它语言程序的可执行文件,创建第一个Java程序(3/4)敲入:javac Fi,创建第一个Java程序(3/4),再次敲入dir命令,可以看到多了一个文件:字节码文件:以.cla
11、ss作为文件后缀,创建第一个Java程序(3/4)再次敲入dir命令,可以看,创建第一个Java程序(4/4),4.执行Java程序敲入命令:java FirstApp运行结果显示如下:祝贺你,你的第一个程序运行成功了!,创建第一个Java程序(4/4)4.执行Java程序,JAVA Applet简介,在Java中可以编写两类程序:应用程序(Applications)和Java Applet(小应用程序)。Java Applet是一种可以嵌入到HTML文档(即Web页)中的Java程序。当浏览器装入一个含有applet的Web页时,applet下载到该浏览器中,并开始执行。Applet可以在I
12、nternet中传输并在兼容Java的Web浏览器中运行。,JAVA Applet简介在Java中可以编写两类程序:,JAVA Applet编写,import java.awt.*;import java.applet.*;public class HelloWorldApplet extends Applet public void paint(Graphics g)super.paint(g);g.drawString(“Hello World!”,30,30);该程序的功能是:在坐标(30,30)处输出字符串“Hello World!”。在这个程序中,没有实现main()方法,这是App
13、let与Application(应用程序)的区别之一。为了运行该程序,首先也应将其保存到一个名为HelloWorldApplet.java的文件中,然后对其进行编译:D:Jjavaworkjavac HelloWorldApplet.java这样将得到字节码文件HelloWorldApplet.class。由于Applet中没有main()方法作为Java解释器的入口,我们必须编写HTML文件,然后将Applet嵌入其中,接着使用appletviewer来运行,或在支持Java的浏览器上运行。,JAVA Applet编写import java.awt.*,JAVA Applet编写,该HTML
14、文件如下。My Applet 其中,使用标记来启动HelloWorldApplet,code属性指明字节码所在的文件,width和height属性指明applet所占区域范围。最后,我们将此HTML文件存入AppletExp.html,然后运行:C:JavaBookappletviewer AppExp.html此时,将弹出一个Applet浏览窗口,在其中指定区域显示“Hello World!”。,JAVA Applet编写该HTML文件如下。,JAVA IDE,IDE(Integrated Development Environment)集成开发环境如:NetBeans、Eclipse、JC
15、reator 等,JAVA IDEIDE(Integrated Develop,第1周作业,1、搭建好Java环境2、复习本章、预习下章,第1周作业1、搭建好Java环境,第2章 Java程序设计语言基础,Java开发环境Java语言基础控制结构,第2章 Java程序设计语言基础Java开发环境,JAVA语言基础,标识符与关键字、分隔符基本数据类型、变量和常量操作运算符及表达式Java的输入输出,JAVA语言基础标识符与关键字、分隔符,JAVA基本语法,java代码的位置 java是严格区分大小写的 java是一种自由格式的语言 代码分为结构定义语句和功能执行语句功能执行语句的最后必须用分号结
16、束,JAVA基本语法java代码的位置,标识符,在编写应用程序时,程序员对程序中的各个元素(变量、常量、对象、类、属性、方法)加以命名时使用的命名记号称为标识符(identifer)。JAVA标识符的命名规则:以英文字母,下划线_,或者美元符号$开头(即不能以数字开头);由以上三种字符与数字0到9的组合;标识符各字符之间不能有空格;最大长度65535;区分大小写,如_Student和_student是两个不同的标示符。,标识符在编写应用程序时,程序员对程序中的各个元素(变量、常量,标识符,判断下列标识符是否合法3d、$1000、Letter#、x0y、while、pri*i良好的编程习惯在定义
17、标识符时,应该能反映它表示的变量、对象、类的意义;如:studentName或student_name习惯上,表示类、接口名的标识符用大写字母开头,表示变量、方法名的标识符用小写字母开头,表示常量名的标示符全部用大写字母;标示符最好不用$。,标识符判断下列标识符是否合法,关键字,Java系统使用(保留)的关键字(Keyword)很多,它们有明确的含义,不能另做它用。关键字也叫保留字。程序员在编写JAVA程序时,使用的标识符一定不能包含如下页图所示的关键字。,关键字Java系统使用(保留)的关键字(Keyword)很多,关键字,关键字abstractdoimplementprivatet,分隔符
18、,1、注释在java语言中,可以采用三种注释方式:单行注释,形式为:/注释内容多行注释,形式为:/*注释内容*/文档注释,形式为:/*注释内容*/,这是java所特有的一种注释,是为支持javadoc而设计的。,分隔符1、注释,分隔符,2、空白符包括空格符、回车符、制表符3、普通分隔符 具有明确的语法含义,要按照语法规定去使用。大括号():用于定义类体、方法体、复合语句分号(;):添加在功能语句之后逗号(,):用于分隔变量声明时的各个变量和方法的各个参数等冒号(:):用于标号和语句之间,分隔符2、空白符,基本数据类型,数据类型是程序设计语言中的基本概念,它包括两部分,取值范围(不同类型的数据在
19、计算机中所占用的内存空间大小不同)和在这些值上所允许的操作,定义一个类型就限定了这两部分。,基本数据类型数据类型是程序设计语言中的基本概念,它包括两部分,基本数据类型,数据类型,基本数据类型,引用数据类型,数值型,字符型(char),布尔型(boolean),整数类型(byte,short,int,long),浮点类型(float,double),类(class),接口(interface),数组,基本数据类型数据类型基本数据类型引用数据类型数值型字符型(c,基本数据类型,-3.4E38-3.4E38,-1.7E308-1.7E308,true或false,基本数据类型类型内存(bit)取值范
20、围运算整 型byte8,变量/数据类型,在Java语言中,变量按下列方式定义,1.变量的类型 变量名称;,2.变量的类型 变量名称1,变量名称2,;,3.变量的类型 变量名称 变量的值;,变量/数据类型在Java语言中,变量按下列方式定义变量之间用,变量/数据类型,变量定义的例子int number;int number1,number2=5,number3;float pi;float PI=3.1416f;,声明了一个32位的整型变量number,声明了一个单精度的浮点型变量,并且给它赋了值,注意:给float型的变量赋值时,值的后面要写一个f或者F,变量/数据类型变量定义的例子声明了一个
21、32位的整型变量num,变量/数据类型,更多变量定义的例子long number;long cont=1357924680L;,声明了一个64位的长整型变量number,声明了一个长整型变量,并且给它赋了值,注意:给long型的变量赋值时,值的后面要写一个l 或者L,变量/数据类型更多变量定义的例子声明了一个64位的长整型变量,变量/数据类型,更多变量定义的例子double db;double max=1357924680d;,声明了一个双精度的浮点型变量db,声明了一个双精度的浮点型变量,并且给它赋了值,注意:给double型的变量赋值时,值的后面可以写一个d 或者D,也可以什么都不写,变量
22、/数据类型更多变量定义的例子声明了一个双精度的浮点型变量,变量/数据类型,更多变量定义的例子boolean tf;tf=false;,声明了一个布尔型变量tf,给tf赋了值,注意:boolean型的变量只有true和false这两个值,变量/数据类型更多变量定义的例子声明了一个布尔型变量tf给t,变量/数据类型,更多变量定义的例子char c;c=A;,声明了一个字符型变量c,给字符型变量c赋值A,注意:给char型的变量赋值时,值要用单引号括起来,变量/数据类型更多变量定义的例子声明了一个字符型变量c给字符,变量/数据类型,更多变量定义的例子对于整型数而言,除了可以给它赋值一个10进制的数,
23、还可以使用8进制和16进制的数,声明一个短整型变量,并且给它赋个8进制的值:07,声明一个整型变量,并且给它赋个16进制的值:2B,8进制的数以0开头,16进制数以0 x或0X开头,short st=07;int n=0X2B;,变量/数据类型更多变量定义的例子声明一个短整型变量,并且给它,变量/数据类型,还有一种数据类型叫字符串,String,声明了一个字符串s1,声明了一个字符串s2,并且给它赋了值,String s1;,String s2=“Hello World!”;,字符串不属于基本数据类型,但在声明或者定义一个字符串的时候,可以象声明一个基本数据类型的变量那样做。,变量/数据类型还
24、有一种数据类型叫字符串,String声明了一,变量,没有声明变量就使用是错误的,重复定义变量也是错误的。变量在赋值后才能使用。变量的作用域:指变量的有效作用范围。一个变量的作用域是从它的声明处开始,到它所在的程序块(block)结束。程序块是指由界定符号“”确定的程序段。例如一个类体,一个方法体。,变量没有声明变量就使用是错误的,重复定义变量也是错误的。,变量的作用域-实例,class examplestatic int n1=9;public static void display()int n2=200;n1=n1+n2;System.out.println(n1=+n1);System.
25、out.println(n2=+n2);public static void main(String args)int n3;n3=n1+2;System.out.println(n1=+n1);System.out.println(n3=+n3);System.out.println();display();,变量的作用域-实例class example,练习:基本数据类型的使用(1),下面代码的输出结果是什么?,int i=10;System.out.println(i);i=15;System.out.println(i);,输出结果:1015,练习:基本数据类型的使用(1)下面代码的输
26、出结果是什么?in,练习:基本数据类型的使用(2),int i;System.out.println(i);int i=15;System.out.println(i);,错误2:重复定义变量i。,错误1:在给变量i赋值前使用它。,下面代码中的两个错误是什么?,练习:基本数据类型的使用(2)int i;错误2:重复定义变,练习:基本数据类型的使用(3),没有任何错误。x先被赋予值15.0,然后x被给定一个新的值150.0。,下面的代码中有错吗?,double x=15.0;x=x*10;System.out.println(x);,练习:基本数据类型的使用(3)没有任何错误。下面的代码中有错,
27、练习:基本数据类型的使用(4),假设有两个int型变量one和two,编写代码交换它们的值。,int one=10;int two=20;,System.out.println(one);System.out.println(two);,int temp=two;two=one;One=temp;,System.out.println(one);System.out.println(two);,练习:基本数据类型的使用(4)假设有两个int型变量one和,常 量,常量(constant)是指在程序运行中其值一直保持不变且不能被改变的量。常量初始化之后就不能再改变它的值常量使用final关键字来
28、定义如:final float PI=3.1415926f;final byte MAX=127;final boolean sex=true;final char a=a;final string s=“您好啊!”;(字符串常量),常 量常量(constant)是指在程序运行中其值一直保持不,常 量,所有的基本数据类型都可定义常量常用的转义字符常量r表示接受键盘输入,相当于按下了回车键;n是换行;t是制表符,相当于table键;b是退格键,相当于Back Space;是单引号,而“是双引号;是一个斜杠“”。,常 量 所有的基本数据类型都可定义常量,数据类型间的转换,类型的转换通常是在一个运算
29、式中参加运算的各个变量的类型不一致,或者要给某种类型的变量赋一个不同类型的值时发生类型转换分为:自动转换(隐式)和强制转换(显式/casting),数据类型间的转换类型的转换通常是在一个运算式中参加运算的各个,数据类型间的转换,自动转换:两种类型是兼容的;目的数据类型的取值范围比来源数据类型的取值范围要大。,数据类型间的转换自动转换:两种类型是兼容的;目的数据类型的取,数据类型间的转换,强制转换:目的数据类型的取值范围比来源数据类型的取值范围要小。如当需要将int型的值赋给一个byte型的变量时该怎么办?当把一个浮点值赋给整数类型时,将发生一种不同的类型转换:截断。大家都知道整数没有小数部分。
30、这样,当把浮点值赋给整数类型时,它的小数部分将会被舍去。例如,如果将值1.23赋给一个整数,其结果只是1,0.23被舍弃。当然,如果浮点值太大而不能适合目标整数类型,那么它的值将会因为对目标类型值域取模而减少。慎用强制类型转换。,数据类型间的转换强制转换:目的数据类型的取值范围比来源数据类,表达式中类型的自动提升,除了赋值方式,类型变换还可以在表达式中进行。在表达式中,对中间值的精确要求有时超过任何一个操作数的范围。例如,考察下面的表达式。byte a=40;byte b=50;byte c=100;int d=a*b/c;中间项结果a*b很容易超过它的任何一个byte型操作数的范围。为处理这
31、种问题,当分析表达式时,Java自动提升各个byte型或short型的操作数到int型。这意味着子表达式a*b使用整数而不是字节型来执行。这样,尽管变量a和b都被指定为byte型,50*40中间表达式的结果2000是合法的。,表达式中类型的自动提升 除了赋值方式,类型变换还可以在表达式,表达式中类型的自动提升,自动类型提升有好处,但它也会引起令人疑惑的编译错误。例如,下面这个看起来正确的程序却会引起一些问题。byte b=50;b=b*2;/Error!Cannot assign an int to a byte!该程序试图将一个完全合法的byte型的值50*2再存储给一个byte型的变量。但
32、是,当表达式求值的时候,操作数被自动地提升为int型,计算结果也被提升为int型。这样,表达式的结果现在是int型,不强制转换它就不能被赋为byte型。在理解了上述溢出后果的情况下,就知道应该使用一个显式的强制类型转换。byte b=50;b=(byte)(b*2);这样将产生正确的结果100。,表达式中类型的自动提升自动类型提升有好处,但它也会引起令人疑,关于类型提升的若干约定,除了将byte型和shorts型提升到int型以外,Java语言还规定了若干适用于表达式的类型提升规则。首先,如前面所描述的,所有的byte型和short型的值被提升到 int型。其次,如果一个操作数是long型,整
33、个表达式将被提升到long型;如果一个操作数是float型,整个表达式将被提升到float型;如果有一个操作数是double型,计算结果就是double型。,关于类型提升的若干约定 除了将byte型和shorts型,例子,例如,下面的程序显示了在表达式中的每个值是如何被提升的,以匹配各自双目运算符的第二个参数。class Promote public static void main(String args)byte b=42;char c=a;short s=1024;int i=50000;float f=5.67f;double d=.1234;double result=(f*b)+(
34、i/c)-(d*s);System.out.println(f*b)+(i/c)+-+(d*s);System.out.println(result=+result);,例子例如,下面的程序显示了在表达式中的每个值是如何被提升的,,赋值语句,前面在讲变量的定义时我们已经多次使用了赋值语句,它的一般格式如下被赋值的变量=数值;被赋值的变量=用来赋值的变量;被赋值的变量=表达式;,=称为赋值运算符,float f=1.234F;float alf=f;String s=“Hello”+“Java”;,赋值语句前面在讲变量的定义时我们已经多次使用了赋值语句,它的,赋值语句,更多的赋值语句除了前面用到
35、的算术表达式以外,还有逻辑表达式,boolean b=32;在这个赋值语句里,最终b的值是什么呢?,答案:false,赋值语句更多的赋值语句boolean b=34&,运算符,在Java语言中,运算符可以划分为四大类:算术运算符、关系运算符、位运算符以及逻辑运算符。此外还定义了一些附加运算符,用于某些特殊情况的处理。,运算符在Java语言中,运算符可以划分为四大类:算术运算符、,算术运算符,算术运算符运算符用法描述双目运算符+Op1+op2加-Op1,算术运算符,i+与+i的区别:i+在使用i之后,使i的值加1,因此执行完i+后,整个表达式的值为i,而i的值变为i+1。+i在使用i之前,使i的
36、值加1,因此执行完+i后,整个表达式和i的值均为i+1。如:a=2;b=a+;运行后:a=3;b=2;a=2;b=+a;运行后:a=3;b=3;i-与-i的区别(与上面类似),算术运算符i+与+i的区别:,算术运算符,“+”除字符串相加功能外,还能把非字符串转换成字符串,如:“x”+123;的结果是“x123”。x+123的结果是什么呢?如果对负数取模,可以把模数负号忽略不记,如:5%-2=1。但被模数是负数就另当别论了。对于除号“/”,它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分。int x=3510;x=x/1000*1000;实际运行结果是3000,想想为
37、什么?,算术运算符“+”除字符串相加功能外,还能把非字符串转换成字符,算术运算符使用技巧,思考题1:某个培训中心要为新到的学员安排房间,假设共有x个学员,每个房间可以住6人,让你用一个公式来计算他们要住的房间数?答案:(x+5)/6。这种算法还可用在查看留言板的分页显示上:其中x是总共的留言数,6是每页显示的留言数,结果就是总共有多少页。思考题2:假设你要让x的值在0至9之间循环变化,请写出相应的程序代码。答案:int x=0;while(true)x=(x+1)%10;,算术运算符使用技巧思考题1:某个培训中心要为新到的学员安排房,加运算符可以用来连接两个字符串,例如,”abc”+123的运
38、行结果是字符串abc123,“abc”+(1+2)的运行结果是什么?,abc3,两个整数相除的结果取其整数部分,例如,3/2的结果是1,而不是1.5 1/2的结果是0,8/15*15的结果是多少?,0,算数运算符的使用,加运算符可以用来连接两个字符串例如,”abc”+123的运,Java语言既可以对整数取模,也可以对小数取模,如:20%7=6,16.2%5=1.2,可以对char类型的数据进行运算,因为其可以自动转换为整型或浮点型,如:a/3=32;a%5=2,算数运算符的使用,Java语言既可以对整数取模,也可以对小数取模如:20%7,单目运算符,正值(+),负值(-),如:+5,-5,加1
39、(+),减1(-),运算符的操作数必须是变量,不能是常量或带有运算符的表达式,可以把运算符放在操作数的前面或后面,如:+a和a+-a和a-,算数运算符的使用,单目运算符 正值(+),负值(-)如:+5,-5 加1(,说明:,+a先对a增1,然后用增1后的值进行计算,a+先用a的值参加计算,然后对a增1,例:int a=5,b=8,c,d;c=(a+)*b;/c=40,a=6 d=(+a)*b/d=48,a=6,算数运算符的使用,说明:+a先对a增1,然后用增1后的值进行计算 a+先,同样:,-a先对a减1,然后用减1后的值进行计算,a-先用a的值参加计算,然后对a减1,例:int a=5,b=
40、8,c,d;c=(a-)*b;/c=40,a=4 d=(-a)*b/d=32,a=4,算数运算符的使用,同样:-a先对a减1,然后用减1后的值进行计算 a-先,赋值运算符,注1:在JAVA里可以把赋值语句连在一起,如:x=y=z=5;在这个语句中,所有三个变量都得到同样的值5。注2:x+=3等效于x=x+3,等于*=,-=,/=依此类推。,赋值运算符注1:在JAVA里可以把赋值语句连在一起,如:,关系运算符,注1:比较运算符的结果都是boolean型,也就是要么是true,要么是false。注2:比较运算符“=”不能误写成“=”,切记!切记!,5,关系运算符注1:比较运算符的结果都是boole
41、an型,也就是,逻辑运算符,注1:逻辑运算符用于对boolean型结果的表达式进行运算,运算的结果都是boolean型。注2:“&”和“&”的区别在于,如果使用前者连接,那么无论任何情况,“&”两边的表达式都会参与计算。如果使用后者连接,当“&”的左边为false,则将不会计算其右边的表达式。“|”和“|”的区别与“&”和“&”的区别类似。,逻辑运算符注1:逻辑运算符用于对boolean型结果的表达式,“&”和“&”的区别分析,public class TestAnd public static void main(String args)int x=0;int y=3;if(x!=0 上面例
42、子中,由于while语句的判断条件中的第一个布尔表达式是不成立的,程序就不会判断第二个布尔表达式的值,这就是“短路”。如果两个表达式之间用“&”来连接,如果正好碰到上面所示的特殊情况,程序运行时就会出错,“&”和“&”的区别分析public class Test,逻辑运算符,1、a,b,c三条边能否组成三角形的条件a+bc&a+cb&b+ca2、判断year是否是闰年的条件1)能被4整除,但不能被100整除;2)能被4整除,又能被400整除。(year%4=0&year%100!=0)|(year%400=0),逻辑运算符1、a,b,c三条边能否组成三角形的条件,三目条件运算符?:,条件运算符
43、也称三目运算符,其格式为:,Expression?statement1:statement2;,它的作用是根据第一个运算符(放在?前面,必须为布尔类型数据)的真假值,来决定整个表达式的结果值是第二个运算量(放在?后面:前面)或者是第三个运算量(放在:后面)。如:int x,y=10,z=43;x=yz?y:z;运行后 x=43.即当yz时,x=y;否则x=z.,三目条件运算符?:条件运算符也称三目运算符,其格式为:,运算符的优先级,我们可以使用括号改变运算赋的优先级,分析int a=2;int b=a+3*a;语句的执行过程 与int a=2;int b=(a+3)*a;语句的执行过程的区别。
44、,运算符的优先级我们可以使用括号改变运算赋的优先级,分析int,如何避免多个运算符带来的问题,对于int a=2;int b=a+3*a+;这样的语句,b最终等于多少呢?试验得到的结果是8。对于int a=2;int b=(a+)+3*a;这样的语句,b最终等于多少呢?试验得到的结果是11。,如何避免多个运算符带来的问题对于int a=2;int,如何避免多个运算符带来的问题,与其去思考其中的原因,我们还不如将上面的第二句改为几条语句来实现我们想要的结果。不要在一行中编写太复杂的表达式,也就是不要在一行中进行太多的运算在一行中进行太多的运算并不能为你带来什么好处,相反只能带来坏处,它并不比改成
45、几条语句的运行速度快,它除可读行差外,还极容易出错。对于优先级顺序,不用刻意去记,有个印象就行。如果你实在弄不清这些运算先后关系的话,就用括号或是分成多条语句来完成你想要的功能,因为括号的优先级是最高的,这也是软件编码规范的一个要求。,如何避免多个运算符带来的问题与其去思考其中的原因,我们还不如,输入输出,JAVA没有提供专用的输入/输出命令或语句,它的输入/输出是靠系统提供的输入/输出类的方法实现的。输出System.out.println():该方法可以有0或1个参数System.out.print():该方法必须有1个参数参数类型可以是char、byte、int、boolean、floa
46、t、double、String和Object(对象)类型,这些类型的数据在转换成相应的字符串后输出。,输入输出JAVA没有提供专用的输入/输出命令或语句,它的输入,输入,System.in.read()用于从键盘上输入一个字符,按照int数据处理,若转换为字符型就是字符本身,若转换为整型,它是字符的扩展ASCII码值(0255)。注意:进行输入时要引入java.io包,并且使用异常处理机制。实例:bytein.java,输入System.in.read(),输入,使用字符串缓冲BufferedReaderimport java.io.*;class stringinpublic static
47、void main(String args)throws IOExceptionString s;System.out.println(please input a string:);BufferedReader br=new BufferedReader(new InputStreamReader(System.in);/创建字符串缓冲区对象br,用于接收输入的字符串s=br.readLine();/调用读入字符串的方法System.out.println(“the string you input is+s);,输入使用字符串缓冲BufferedReader,输入,图形界面下的输入/输出方
48、法JOptionPane.showInputDialog(“提示信息”);JOptionPane.showInputDialog(“提示信息”,初值);JOptionPane.showMessageDialog(框架,输出内容);JOptionPane.showMessageDialog(框架,输出内容,标题,信息类型);,输入图形界面下的输入/输出方法,第2章 Java程序设计语言基础,Java开发环境Java语言基础控制结构,第2章 Java程序设计语言基础Java开发环境,控制结构,语句和块分支(选择)结构if、ifelse、switch循环结构while、for、dowhile跳转语句
49、break、continue、return,控制结构语句和块,JAVA语言的三种基本控制结构,JAVA语言的三种基本控制结构,语句,程序中的语句可以分为两种类型:简单语句和流程控制语句。Java中常用的有下面几类语句:声明语句,如:char a=A;表达式语句,如:i+;System.out.println(“Hello”)分支语句,如:ifelse、switch循环语句,如:while、dowhile、for跳转语句,如:break、continue异常语句,如:try-catch-finally空语句,如:;,语句程序中的语句可以分为两种类型:简单语句和流程控制语句。,块,块是用一对“”将
50、零个或多个语句括起来,就构成一个块(也称复合语句)。程序中的类体及方法体也都是块。class UseBlockpublic static void main(String args)int a=5;a+=8;int b=6;b=b+a;System.out.println(a+b);System.out.println(a+b);结合前面所学知识(变量的作用域),上面的程序有错误吗?,块块是用一对“”将零个或多个语句括起来,就构成一个块(,分支结构,if单选结构if(布尔表达式)语句块;可以是一条或多条语句,在只有一条语 句的情况下,可以不用“”如:学生的成绩studentGrade=60分,