《java语言基础》PPT课件.ppt_第1页
《java语言基础》PPT课件.ppt_第2页
《java语言基础》PPT课件.ppt_第3页
《java语言基础》PPT课件.ppt_第4页
《java语言基础》PPT课件.ppt_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

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

文档简介

1,Java语言基础,本章是Java语言的基础,主要学习的内容有:Java的关键字、标识符及各种数据类型;Java的常量、变量及各种运算符;,2,回顾,了解Java语言的发展历史 了解Java语言的特点 了解Java语言与C+语言的不同之处 掌握安装并设置Java开发平台 掌握Java程序的组成结构 掌握使用集成开发环境编写Java程序的方法,3,目标,掌握标识符的定义规则 了解常用的保留字和分隔符 掌握各种简单数据类型的使用 掌握运算符和表达式的使用,4,2.1.1 Java标识符,用来表示变量、方法或类等的名字。定义的规则如下: 只能使用字母、数字、下划线和美元符。 只能以字母、下划线和美元符开头。 严格区分大小写,没有长度限制。 不能与保留字同名。,5,2.1.1 Java标识符,下面哪些是合法的Java标识符 $Programe,_java, 12Programe,&_java, $Programe Java1,变量1,$Str, $Programe_Java1, Programe2_1, %Programe21,_var1,myVar,合法标识符: $Programe,_java, $Programe_Java1, Programe2_1,变量1, $Str,_var1,myVar 。,非法标识符: 12Programe,&_java, $Programe Java1, %Programe21等。,6,2.1.1 Java字符集 与C语言或其他传统的高级程序设计语言不同,Java语言的基本符号采用Unicode字符集,而不是ASCII字符集,以方便支持多语种。,7,在Unicode字符集中,字母不仅仅限于英语,还包括其他语言的字符,包括汉字。Unicode字符集采用16位编码,一个字符在内存中占用两个字节。虽然现有的多数程序使用ASCII编码,但在运行前都被转换为Unicode字符。,8,2.1.2 保留字,9,2.1.3 分隔符(Seprators),有:空格、圆括号、花括号、分号等。 每条语句无论一行还是多行都以分号结束。块(Block)是包含在 里面的多条语句,块可以嵌套。空白插在代码的元素中间:由一个或多个空格组成,也可以由一个或多个tab空格组成多个空行。,10,2.1.4 注释(Comments),(1)单行 :/ (2)多行 :/* */ (3)文档注释 : /* * */,单行注释,以换行符为结束。,多行注释,注释内容较多。,使用javadoc工具从源代码和文档注释中将信息取出,然后转换为HTML文件。,11,2.2.1 数据类型划分,12,Java语言、C语言的数据类型比较,对C语言的数据类型作了一定的简化。 弃用了结构体、枚举类型、共用体、指针等复杂数据类型 增加布尔类型Java语言在对数据的类型检查方面总的来说要比C语言更严格。,13,2.2.2 常量和变量,1.常量有字面(Literal)常量和符号常量两种。 符号常量定义的一般格式如下: =; 例如:final double PI=3.141593; final int COUNT=1000; 2.变量定义的一般格式如下: =, =,; 例如: double x=1.2345;,其数值意义如同字面所表示的一样。,用Java标识符表示的一个常量。,用于标识数据的存储单元,各种类型的变量创建后都有默认值。,14,2.3.1 整型数据2-1,1整型常量 (1) 整型多为十进制数形式,也可为八进制或十六进制形式,首位为“0”表示八进制的数值;首位为“0x”表示16进制的数值。 (2) Java整型数都为带符号数。 (3) 整型缺省为int型,若为长整型需在数据后加字母l 或 L 。,15,2.3.1 整型数据2-2,2.整型变量 按照长度分为:byte、short、int、long。 int类型常用,基本满足需要,再大的整数long。 byte类型范围很小。 short类型很少用,限制数据的存储为先高字节,后低字节 。 例如:byte b; short s; int i; long l;,16,表2.1 Java整型数据字节数和表示范围,17,2.3.2 实型数据2-1,1.实型常量 (1)用十进制数形式表示,由数字和小数点组成,例如,3.25。 (2)用科学计数法形式表示,例如,123E-3。 (3)数后加f或F为float,加d或D为double,没有后缀修饰的则缺省为double类型。,18,2.3.2 实型数据2-2,2.实型变量 实型变量按长度分为:float和double。 双精度浮点型double比单精度浮点型float的精度更高,表示数据的范围更大。 例如,float ; double d;,19,表2.2 实型数据字节数及范围数据,20,注意: 实型常量缺省为double型,如果希望声明某个实型常量为float型,则要在数字后加f或F,如12.3F,它在机器中占4个字节,精度较低。,21,实型变量的定义与C语言类似,如: double d=2.3; /指定变量d为double型 float f=1.23; /指定变量d为?型,22,2.3.3 字符型数据2-1,字符常量是用单引号括起来的一个字符,如:J、*。 Java中有以反斜杠()开头的字符,反斜杠将其后面的字符转变为另外的含义,称为转义字符。,23,2.3.3 字符型数据2-2,Java中的字符型数据是16位的Unicode字符,汉字和英文字母占的内存空间相同。 “JAVA你好”共12个字节。 变量的定义如下: char ch=c;,24,表2.3 Java中的转义字符,25,下面是字符型变量的定义的例子: char c=a;/指定变量c为char型,且赋初值为a 与C语言不同,Java语言不允许将字符型变量用作整型,因为Java不提供无符号整数类型,但可与整型进行混合运算。例如: int i=A; 是非法的,而下面的语句是合法的: int i=3; i=i+0;,26,2.3.4 字符串数据,字符串常量是使用双引号括起来的字符序列,注意:最后字符不是0。 例如:“Lets learn Java! “。 字符串变量作为对象来处理,通过String和StringBuffer类的构造方法来定义。 String s=new String();,27,2.3.5 布尔型数据,布尔型常量值只有:true和false。 布尔型变量为boolean类型,值为true和false。 例如, boolean b=true;,28,2.4.1 算术运算符,包括:+,-,*,/,%,+,-等。 前缀+:变量首先进行操作在自身进行加。 例如, int a=2; int b=a+; (a=3,b=2) 后缀+:变量自身首先加然后再进行操作。 例如, int a=2; int b=+a; (a=3,b=3),29,算术运算,传统算术运算,30,Java语言中算术运算符的优先级和结合性与C语言相同。 Java语言对运算符+的功能进行了扩展,使它能够进行字符串的连接,如“abc”+“de”,得到串“abcde“。 另外,与C语言不同,取模运算符%操作数可以为浮点数,如37.2%10=7.2。 其他需要注意的几点与C语言相同:,31,(1) 除法运算。当两个运算对象均为整型数据时,作整除运算。 (2) i+与+i的区别。i+在使用i之后,使i的值加1,因此执行完i+后,整个表达式的值为原来i的值,而i的值加1。+i在使用i之前,使i的值加1,因此执行完+i后,整个表达式和i的值均为i原来的值加1。i-与-i的运算方式与+运算符相似。+、-运算符只能对变量进行操作。,32,【程序2.2】 算术运算符的使用。 public class ArithmaticOp public static void main(String args) int a=5+4; int b=a*2; int c=b/4; int d=b-c; int e=-d; int f=e%4; double g=18.4; double h=g%4;,33,int i=3; int j=i+; int k=+i; System.out.println(“a=“+a); System.out.println(“b=“+b); System.out.println(“c=“+c); System.out.println(“d=“+d); System.out.println(“e=“+e); System.out.println(“f=“+f); System.out.println(“g=“+g);,34,System.out.println(“h=“+h); System.out.println(“i=“+i); System.out.println(“j=“+j); System.out.println(“k=“+k); ,35,【程序2.2】 算术运算符的使用。 public class ArithmaticOp public static void main(String args) int a=5+4; /a=9 int b=a*2; /b=18 int c=b/4; /c=4 int d=b-c; /d=14 int e=-d; /e=-14 int f=e%4; /f=-2 double g=18.4; double h=g%4; /h=2.4,36,int i=3; int j=i+; /i=4,j=3 int k=+i; /i=5,k=5 System.out.println(“a=“+a); System.out.println(“b=“+b); System.out.println(“c=“+c); System.out.println(“d=“+d); System.out.println(“e=“+e); System.out.println(“f=“+f); System.out.println(“g=“+g);,37,System.out.println(“h=“+h); System.out.println(“i=“+i); System.out.println(“j=“+j); System.out.println(“k=“+k); ,38,使用Visual J+ 6.0编译运行其结果为: a=9 b=18 c=4 d=14 e=-14 f=-2 g=18.4 h=2.3999999999999986 i=5 j=3 k=5,39,2.4.2 关系运算符,完成操作数的比较运算,结果为布尔类型值。 包括:=,!=,=,instanceof。 优先级低于算术运算符,执行顺序自作向右。,40,2.4.2 关系运算符 关系运算进行比较运算,通过两个值的比较,得到一个boolean(逻辑)型的比较的结果,其值为“true”或“false”。在Java语言中“true”或“false”不能用“0”或“1”来表示,而且这两个逻辑值必须用小写“true”与“false”。 Java语言共有7种关系运算符如表2-6示。 表2-6 关系运算符,41,2.4.3 布尔逻辑运算符,包括:&,|,!,&,|。 注意区别简洁与&(或|)和非简洁与&(或|),&,如果其前面的表达式为假,则不再计算其后面的表达式,&,不管其前面的表达式为什么,都计算其后面表达式,42,boolean b1,b2,b3; b1=false; b2=false; b3=b1 由于b1的值为假,则表达式b1&(b2=true)右边部分b2=true无需计算即可得到结果,因此该部分不计算,b2的值不改变。,43,如果将该表达式中的条件与换为逻辑与,改成: boolean b1,b2,b3; b1=false; b2=false; b3=b1 则不管前面b1的值为什么,b2=true都计算,该程序片断运行结束后,b2的值为true。条件或|与逻辑或|的区别与此类似。,44,【程序】 关系运算符与逻辑运算符的使用。 public class RelationLogicOp public static void main(String args) int a=25,b=30; boolean d=ab; System.out.println(“ab=“+d ); int e=3; if(e!=0,45,if(f!=0 ,46,运行结果为: ab=true a/e=8 f=0 d=true,47,2.4.3 逻辑运算符 Java语言中,提供了6种逻辑运算符,逻辑运算符的运算结果为逻辑型“true”或“false”。在表2-7,列出了各种逻辑运算符及其说明。 表2-7 逻辑运算符,逻辑运算表达式的执行顺序为自左至右,逻辑非运算符“!”的优先级高于其它逻辑运算符。,48,2.4 运算符,2.4.5 位运算符 Java语言中的位运算符如表2-8中所示。 表2-8 位运算符,49,2.4 运算符,例 计算表达式的值 设short a = 0x2F34; short b = 0xE5081 (1)求a & b (2)求a | b (3)求a b (4)求a 3 (6)求b 3,50,计算时先把a和b化成16位的二进制的数, a = 00101111 00110100,b = 11100101 00001000 然后进行按位运算后,再换算成16进制的数。 (1),(2),换算成16进制,结果为0x2500 换算成16进制,结果为0xEF3C。,51,2.4 运算符,(3),换算成16进制,结果为0xCA3C。,(4),左移n位相当于原数乘以2的n次幂,并且左移比乘法快,所以有时用左移 代替乘2的n次幂的运算。,换算成16进制,结果为0x79A0。,(5),换算成16进制,结果为0xFCA1。,(6),换算成16进制,结果为0x1CA1。 如果两个不同长度的数值做位运算,系统将二者的右端(即低位)对 齐,同时将两个操作数中长度较短者的高位用0补齐。,52,2.4.5 赋值运算符,包括:=,+=,-=,*=,/=,%=。 例如, int a=b=c=3;,53,2.4.6 条件运算符,为(?:)一般形式为: 表达式1?表达式2:表达式3; 例如, double salary=(x intanceof teacher)?2000:200;,54,2.5 表达式,由操作数和运算符按照一定的语法格式组成表达式。 例如, (a+b)*(c-d)。,55,2.5 .1常用数值计算方法 在Java的Math类中包含了一些数值常量,如E和PI,以及一些基本的静态数值计算方法,如指数、对数、平方根和三角函数等,为用户进行数值计算带来了方便。,56,【例】Math类中常量和方法的使用。 class UseMath public static void main(String args) double a=3.0,b=4.0; double c=Math.sqrt(a*a+b*b); System.out.printIn(“直角三角形直角边为6.0和8.0时的斜边长为: “+c); System.out.printIn( “-5和-9 的较大者是: “+Math.max(-5,-9); System.out.printIn(“-100的绝对值是: “+Math.abs(-100); System.out.printIn(“不大于13.4的最小整数是: “+Math.ceil(13.4); System.out.printIn(“不小于13.4的最大整数是:“+Math.floor(13.4); System.out.printIn(“sin30度的值是:“+Math.sin(30.0/180*Math.PI); System.out.printIn(“半径为3.0的圆面积是: “+Math.PI *a *a); ,57,类型转换,自动类型转换:低优先级的数据自动会转换为高优先级的数据。 低 高 byte、short、char int long float double 强制类型转换:优先级高的数据转换为优先级低的数据。 例如,double d=3.14159d; int a=(int)d;,58,在使用强制转换时应注意以下问题: 表达式必须加括号(单个变量可以不加括号),如把(int)(x+y)写成(int)x+y则成了把x转换成int型之后再与y相加了。 无论是强制转换或是自动转换,都只是为了本次运算的需要而对变量的数据长度进行的临时性转换,而不改变数据说明时对该变量定义的类型。,59,【例】 f型强制转为int型。 class zhuanhuan2 public static void main(String args) float f=5.75; System.out.printIn ( (int)f+“, “ +f); 程序运行的结果为: 5 , 5.7500000,60,【例】 数值转换溢出实例。 class zhuanhuan3 public static void main(String args) int a; float b=123456; a=b; System.out.printIn(a); 程序运行的结果为: 0,61,2.4 运算符,2.4.8 运算符的优先级和结合性 在Java语言中,每个运算符分属于各个优先级,同时,每个运算符具有特定的结合性。有的具有左结合性,即自左至右的结合原则;有的具有右结合性,即自右至左的结合原则。运算符在表达式中的执行顺序为:首先遵循优先级原则,优先级高的运算符先执行。在优先级同级的运算符之间遵守结合性原则,或自左至右,或自右至左。 表2-10中给出了各种运算符的功能说明、优先级和结合性,绝大部分在以上各小节已经分别介绍过。需要补充说明的是,“+”除了作为正号运算符与加法运算符之外,还可以起到字符串的链接作用。,62,2.4 运算符,表2-10 Java语言的运算符及其优先级和结合性,63,2.5,Java 流程控制,64,一、选择结构控制,Java语句提供了两条基本的分支选择语句if和switch。if语句应用在“二选一”的条件下,而switch语句应用在“多选一”的条件下。它们都是对条件表达式进行判断,针对不同的结果,决定转向要执行java语句。,65,if语句,if (条件表达式) 语句 if (条件表达式) 语句1 else 语句2,条件?,语句,True,False,条件?,语句1,True,False,语句2,66,Switch语句,switch(表达式) case 值1:语句块1; break; case 值2

温馨提示

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

评论

0/150

提交评论