JAVA程序设计基础第3章陈国君.ppt

上传人:牧羊曲112 文档编号:6509983 上传时间:2023-11-07 格式:PPT 页数:75 大小:641.50KB
返回 下载 相关 举报
JAVA程序设计基础第3章陈国君.ppt_第1页
第1页 / 共75页
JAVA程序设计基础第3章陈国君.ppt_第2页
第2页 / 共75页
JAVA程序设计基础第3章陈国君.ppt_第3页
第3页 / 共75页
JAVA程序设计基础第3章陈国君.ppt_第4页
第4页 / 共75页
JAVA程序设计基础第3章陈国君.ppt_第5页
第5页 / 共75页
点击查看更多>>
资源描述

《JAVA程序设计基础第3章陈国君.ppt》由会员分享,可在线阅读,更多相关《JAVA程序设计基础第3章陈国君.ppt(75页珍藏版)》请在三一办公上搜索。

1、1,第3章,Java语言基础,通过本章的学习,主要掌握以下知识点:Java使用的数据类型 数据类型转换 由键盘输入数据 运算符与表达式 本章的重点:由键盘输入数据本章的难点:数据类型转换 表达式及运算符的优先级、结合性,本章主要介绍编写Java程序必须掌握的若干语言基础知识,包括数据类型、变量、常量、表达式等。掌握这些基础知识,是编写正确Java程序的前提条件。,3.1 数据类型,在程序设计中,数据是程序的必要组成部分,也是程序处理的对象。不同的数据有不同的数据类型,不同的数据类型有不同的数据结构、不同的存储方式,并且参与的运算也不相同。通常计算机语言将数据按其性质进行分类,每一类称为一种数据

2、类型(data type)。数据类型定义了数据的性质、取值范围、存储方式以及对数据所能进行的运算和操作。,Java中的数据类型分为两大类,一类是基本数据类型(primitive types),另一类是引用类型(reference types)。基本数据类型有:整型(integral)浮点型(floting)逻辑型(logical)字符型(textual)引用类型包括:类(class)数组(array)接口(interface),Java定义了4类共8种基本类型,它们的分类及关键字如下:整型:byte,short,int,long。浮点型:float,double。逻辑型:boolean。字符型

3、:char。,1整型整数有正整数、零、负整数,其含义与数学中的含义相同。有三种进制表示形式。Java定义了四种表示整数的类型:字节型(byte)、短整型(short)、整型(int)、长整型(long)。每种整型的数据都是带符号位的。Java的每种数据类型都对应个默认的数值,使得这种数据类型变量的取值总是确定的,体现了其安全性。它们的特性如表3.1所示。,表3.1 Java的四种整型,2浮点型Java用浮点型表示数学中的实数,也就是说既有整数部分又有小数部分的数。浮点数有两种表示方式。标准计数法科学计数法Java的浮点型有单精度浮点(float)和双精度浮点(double)两种。它们的宽度和范

4、围如表3.2所示。,表3.2 Java的两种浮点型,3逻辑型逻辑型(boolean)用来表示逻辑值,也称为布尔型。它只有true和false两个取值。其中,true代表“真”,false代表“假”,true和false不能转换成数字表示形式。,4字符型字符型(char)用来存储字符。Java语言是用Unicode编码表达的字符,在内存中占两个字节。由于Java的字符类型采用了Unicode这种新的国际标准编码方案,因而便于东方字符和西方字符的处理。因此,与其他语言相比,Java处理多语种的能力大大加强。,说明,字符型数据只表示单个字符,定界符为。Java语言中所有可见的ASCII字符都可以用单

5、引号括起来成为字符。字符型数据可以转化成整数。取值在065535之间。,现将Java的4类8种基本数据类型总结归纳成表3.3。表3.3 Java的基本数据类型,为了使用上的方便Java提供了数值型数据的最大值与最小值的标识符及常量值。如表3.4所示。表3.4 数值型常量的特殊值代码,3.2 关键字与标识符,1关键字关键字(keyword)是Java中具有特殊含义的字符序列,因此Java不允许用户对关键字赋予其他的含义。Java定义的关键字如表3.5所示。,表3.5 Java定义的关键字,2标识符Java用标识符(identifier)表示变量名、类名和方法名。也就是说,任何一个变量、常量、方法

6、、对象和类都需要有名字,这些名字就是标识符。标识符可以由编程者自由指定,但是需要遵循一定的语法规定。标识符要满足如下的规定:(1)标识符可以由字母、数字和下划线(_)、美元符号($)组合而成;(2)标识符必须以字母、下划线或美元符号开头,不能以数字开头。,Java编码习惯,类名首字母大写。变量、方法及对象首字母小写。标识符所包含的单词紧靠在一起,大写首字母。常量应该大写。Java包全部小写。,3.3 常量,常量存储的是在程序中不能被修改的固定值,也就是说常量是在程序运行的整个过程中保持其值不改变的量。Java中的常量也是有类型的,包括整型、浮点型、逻辑型、字符型和字符串型常量。,1整型常量整型

7、常量可以用来给整型变量赋值,整型常量可以采用十进制、八进制和十六进制表示。,2浮点型常量 浮点型常量表示的是可以含有小数部分的数值常量。根据占用内存长度的不同,可以分为一般浮点(单精度)常量和双精度浮点常量两种。其中,单精度常量后跟一个字母f或F,双精度常量后跟一个字母d或D。双精度常量后的d或D可以省略。,转义符是一些有特殊含义、很难用一般方式来表达的字符,如回车、换行等。为了表达清楚这些特殊字符,Java中引入了一些特别的定义。所有的转义符都用反斜线()开头,后面跟着一个字符来表示某个特定的转义符,如表3.6所示。,表3.6 常用的转义字符,5字符串常量字符串常量是用双引号括起的一串若干个

8、字符(可以是0个)。字符串中可以包括转义符。,6.常量的声明常量声明的形式与变量声明基本一样,只需用关键字final标识,通常final写在最前面。例如,final int MAX10;final float PI3.14f;,3.4 变量,在程序中使用的值大多是需要经常变化的数据,用常数值表示显然是不够的,因此每一种计算机语言都使用变量(variable)来存储数据,变量的值在程序中是可以改变的,使用变量的原则是“先声明后使用”,即变量在使用前必须先声明。,1变量声明 计算机程序是通过内存变量来操纵内存中的数据,所以程序在使用任何变量之前首先应该在该变量和内存单元之间建立联系,这个过程称为变

9、量的声明或称变量的定义。变量具有三个基本要素:名字、类型和值。,变量声明的格式如下:=,=例如,int i,j,k;在声明变量的同时也可以对变量进行初始化,即赋初值。例如,int i0;,2变量的赋值当声明一个变量并没有赋初值或需要重新对变量赋值时,就需要使用赋值语句。Java语言的赋值语句同其他计算机语言的赋值语相同,其格式为:变量名=值下面举例来说明。boolean b=true;/声明boolean型变量并赋值 int x,y=8;/声明int型变量 float f=2.718f;/声明float型变量并赋值 double d=3.1415;/声明double型变量并赋值 char c;

10、/声明char型变量 c=u0031;/为char型变量赋值 x=12;/为int型变量赋值,3.5数据类型转换,Java的数据类型在定义时就已经决定,因此不能随意转换成其他的数据类型,但Java容许用户有限度地做类型转换处理,这就是所谓的数据类型转换,简称类型转换。类型转换就是在Java程序中,常数或变量从一种数据类型转换到另一种数据类型。,一、数值型不同类型数据的转换由于数值型也分为不同的类型,所以数值型数据也有类型转换问题。,1自动类型转换在程序中已经定义好的数值型的变量,若是想以另一种类型表示时,Java会在下列条件同时成立时,自动进行数据类型的转换:(1)转换前的数据类型与转换后的类

11、型兼容。(2)转换后的数据类型的表示范围比转换前的类型大。,【例3.1】数据类型的自动转换。/app3_1.java 类型自动转换public class app3_1 public static void main(String args)int a=155;float b=21.0f;System.out.println(”a=”+a+”,b=”+b);/输出a,b的值System.out.println(”a/b=”+(a/b);/输出a/b的值 输出结果为:a=155,b=21.0a/b=7.3809524,2强制类型转换如果要将较长的数据转换成较短的数据时,就要进行强制类型转换。强制

12、类型转换的格式如下:(欲转换的数据类型)变量名,【例3.2】整型与浮点数据类型的自动转换。/app3_2.java 整数与浮点数的类型转换public class app3_2 public static void main(String args)int a=155;int b=9;float g,h;System.out.println(”a=”+a+”,b=”+b);/输出a,b的值g=a/b;/将a除以b的结果放在g中System.out.println(”a/b=”+g+”n”);/输出g的值System.out.println(”a=”+a+”,b=”+b);/输出a,b的值h=(

13、float)a/b;/先将a强制转换成float类型后再参加运算 System.out.println(”a/b=”+h);/输出h的值,程序执行结果如下:a=155,b=9a/b=17.0a=155,b=9a/b=17.222221,public class TestConvert public static void main(String arg)int i1=123;int i2=456;double d1=(i1+i2)*1.2;/系统将转换为double型运算 float f1=(float)(i1+i2)*1.2);/需要加强制转换符 byte b1=67;byte b2=89;

14、byte b3=(byte)(b1+b2);/系统将转换为int型运算,需/要强制转换符 System.out.println(b3);double d2=1e200;float f2=(float)d2;/会产生溢出 System.out.println(f2);float f3=1.23f;/必须加f long l1=123;long l2=30000000000L;/必须加l float f=l1+l2+f3;/系统将转换为float型计算 long l=(long)f;/强制转换会舍去小数部分(不是四舍五入),二、字符串型数据与整型数据相互转换1字符串转换成数值型数据数字字符串型数据转

15、换成byte、short、int、float、double、long等数据类型,可以分别使用表3.7所提供的Byte、Short、Integer、Float、Double、Long类的parseXXX方法。,表3.7 字符串转换成数值型数据的方法,例如:String MyNumber=1234.567;/定义字符串型变量MyNumberfloat MyFloat=Float.parseFloat(MyNumber);,3.6由键盘输入数据,在程序设计中,经常需要从键盘上读取数据,这时就需要用户从键盘输入数据,从而可以增加与用户之间的交互。利用键盘输入数据,Java语言提供了二种输入格式。,im

16、port java.io.*;public class class_name/类名称 public static void main(String args)throws IOException bufferedReader buf;String str;buf=new bufferedReader(new InputStreamReader(System.in);str=buf.readLine();,格式1,import java.io.*;public class class_name/类名称 public static void main(String args)throws IOEx

17、ception InputStreamReader sysin=new InputStreamReader(System.in)bufferedReader buf=new bufferedReader(sysin);String str;str=buf.readLine();,也可以表示为:,System.in 接受从控制台输入的字节new InputStreamReader(System.in);构造一个InputStreamReader对象,这个对象是字节流通向字符流的桥梁:它使用指定的 charset 读取字节并将其解码为字符。new BufferedReader(new InputS

18、treamReader(System.in);构造一个字符流的缓存,里面存放在控制台输入的字节转换后成的字符。str=buf.readLine();从这个缓存中读取一行的内容,InputStreamReader 就是一个可以从 System.in 里面读取东西的管道,然后BufferedReader 就是比InputStreamReader 更高级的 更粗点的管道 可以嵌套在InputStreamReader的外面 从而实现缓冲功能 并且可以用外层管道的readLine()方法读取一行数据依次类推 一种低级字节流管道的管道 我们可以在其外面嵌套一个更高级的数据流管道 从而更加方便的读写数据,1

19、、输入字符串【例3.3】从键盘输入数据。/app3_3.java 由键盘输入字符串import java.io.*;/加载java.io类库里的所有类public class app3_3 public static void main(String args)throws IOException BufferedReader buf;String str;buf=new BufferedReader(new InputStreamReader(System.in);(”请输入字符串;”);str=buf.readLine();/将输入的文字指定给字符串变量str存放(”您输入的字符串是:”+

20、str);/输出字符串,2、输入数值【例3.4】从键盘输入数字转换为数值型数据。/app3_4.java 由键盘输入整数import java.io.*;public class app3_4 public static void main(String args)throws IOException float num;String str;BufferedReader buf;buf=new BufferedReader(new InputStreamReader(System.in);(”请输入一个实数:”);str=buf.readLine();/将输入的文字指定给字符串变量str存放

21、 num=Float.parseFloat(str);/将str转换成float类型后赋给num(”您输入的数为:”+num);,3、输入多个数据【例3.5】从键盘输入多个数据。/app3_5.java 由键盘输入多个数据import java.io.*;public class app3_5 public static void main(String args)throws IOException int num1,num2;String str1,str2;BufferedReader buf;buf=new BufferedReader(new InputStreamReader(Sy

22、stem.in);(”请输入第一个数:”);str1=buf.readLine();/将输入的内容赋值给字符串变量str1 num1=Integer.parseInt(str1);/将str1转成int类型后赋给num1(”请输入第二个数”);str2=buf.readLine();/将输入的内容赋值给字符串变量str2 num2=Integer.parseInt(str2);/将str2转成int类型后赋给num2 System.out.println(num1+”*”+num2+”=”+(num1*num2);,为了简化输入操作,从Java SE 5版本开始在java.util类库中新增了

23、一个类专门用于输入操作的类Scanner,可以使用该类输入一个对象,语句格式如下:import java.util.*;public class class_name/类名称 public static void main(String args)Scanner reader=new Scanner(System.in);double num;/声明double型变量,也可声明其他数值型变量 num=reader.nextDouble();/调用reader对象的相应方法,读取键盘数据,格式2,【例3.6】利用Scanner类从键盘输入多个数据。/app3_6.java 由键盘输入多个数据im

24、port java.util.*;/加载java.util类库里的所有类public class app3_6 public static void main(String args)int num1;double num2;Scanner reader=new Scanner(System.in);(请输入第一个数:);num1=reader.nextInt();(请输入第二个数:);num2=reader.nextDouble();System.out.println(num1+*+num2+=+(num1*num2);,【例3.7】利用Scanner类从键盘输入多个字符串数据。/app3

25、_7.java 由键盘输入多个数据import java.util.*;/加载java.util类库里的所有类public class app3_7 public static void main(String args)String s1,s2;Scanner reader=new Scanner(System.in);(请输入第一个数:);s1=reader.nextLine();(请输入第二个数:);s2=reader.next();(“输入的是:”+s1+“和”+s2);/注意reader.nextLine()和reader.next()区别,见课本。,3.7 运算符与表达式,运算符是

26、用来表示某一种运算的符号,它指明了对操作数所进行的运算。按操作数的数目来分,可以有一元运算符(如+)、二元运算符(如+、)和三元运算符(如?:),它们分别对应于一个、两个和三个操作数。按照运算符功能来分,基本的运算符有下面几类。,算术运算符+、-、*、/、%、+、-关系运算符、=、/返回TRUE,1二元算术运算符二元算术运算符如表3.8所示。,表3.8二元算术运算符,算术运算符,2一元算术运算符一元算术运算符如表3.9所示。表3.9 一元算术运算符,关系运算符用于比较两个值之间的大小,结果返回布尔类型的值true或false,关系运算符都是二元运算符,如表3.10所示。,关系运算符,表3.10

27、 关系运算符,逻辑运算与关系运算的关系非常密切,关系运算是运算结果为布尔型量的运算,而逻辑运算是操作数与运算结果都是布尔型量的运算。逻辑运算符如表3.11所示。,3.7.3 逻辑运算符,表3.11 逻辑运算符,【例3.8】关系运算符和逻辑运算符的使用。/app3_8.java 关系运算符和逻辑运算符的使用public class app3_8 public static void main(String args)int a=25,b=7;boolean x=a5;/y=true System.out.println(”xy=”+(xy);if(e!=0,其运行结果为:ab=falsexy=t

28、ruea%e=1f=0,3.7.4 位运算符,位运算符是对操作数以二进制比特位为单位进行的操作和运算,Java中提供了如表3.12所示的位运算符。,表3.12 位运算符,位运算及其应用,请掌握如下运算规则:补码按位取反运算按位与运算&按位或运算|按位异或运算左移运算符0填充右移运算符,3.7.5 赋值运算符,1 赋值运算符关于赋值运算符“=”,我们在3.4节介绍变量的赋值时已经简单提过。简单的赋值运算是把一个表达式的值直接赋给一个变量或对象,使用的赋值运算符是“=”,其格式如下:变量或对象=表达式,赋值运算符右端的表达式可以还是赋值表达式,形成连续赋值的情况。例如:a=b=c=8;,2扩展赋值

29、运算符在赋值符“=”前加上其他运算符,即构成扩展赋值运算符,例如:a+=3等价于a=a+3。表3.13列出了Java中的扩展赋值运算符及等效的表达式。,表3.13 扩展赋值运算符,条件运算符,Java语言提供了高效简便的三元条件运算符(?:)。该运算符的格式如下:?:其中“表达式1”是一个结果为逻辑值的布尔表达式。该运算符的功能是:先计算的值,当的值为true时,则将的值作为整个表达式的值;当的值为false时,则将的值作为整个表达式的值。,例如,int a=1,b=2,max;maxa b?a:b;/max获得a,b之中的较大值System.out.println(max=+max);/输出

30、结果为max2,字符串运算符,字符串运算符+是以String为对象实现。运算符+完成字符串连接操作,如果必要,则系统自动把操作数转换为String型。例如:float a=100.0;/定义变量a为浮点型print(The value of a is+a+n);/系统自动将a转换成字符串,3.7.8 表达式及运算符的优先级、结合性,运算符的优先级决定了表达式中不同运算执行的先后顺序,大体上来说,从高到低是:一元运算符、算术运算、关系运算和逻辑运算、赋值运算。运算符除有优先级外,还有结合性,运算符的结合性决定了并列的多个同级运算符的先后执行顺序。同级的运算符大都是按从左到右的方向进行(称为“左结合性”)。表3.14给出了Java中运算符的优先级和结合性。,表3.14运算符的优先级及结合性(表顶部的优先级较高),instanceof是Java的一个二元操作符,和=,是同一类东西。由于它是由字母组成的,所以也是Java的保留关键字。它的作用是测试它左边的对象是否是它右边的类的实例,返回boolean类型的数据。举个例子:String s=I AM an Object!;boolean isObject=s instanceof Object;,75,END,谢谢观看!,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号