《Java语言的基本数据类型.ppt》由会员分享,可在线阅读,更多相关《Java语言的基本数据类型.ppt(24页珍藏版)》请在金锄头文库上搜索。
1、第章基本数据类型、数组和枚举类型第章基本数据类型、数组和枚举类型n2.1 标识符和关键字标识符和关键字n2.2 Java语言的基本数据类型语言的基本数据类型n2.3 从从命令行输入、输出数据命令行输入、输出数据n2.4 Java的数组的数组 n2.5 枚举类型(枚举类型(jdk1.5新引入)新引入)2.1 标识符和关键字标识符和关键字n2.1.1标识符标识符n用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列称为标识符。简单地说,标识符就是一个名字。nJava语言规定标识符由字母、下划线、美元符号和数字组成,并且第一个字符不能是数字字符。 下面是几个有效的标识符: identi
2、fier thisone UserName User_name _system_varl $max Java所使用的字母不仅包括通常的拉丁字母a,b,c等,也包括汉语中的汉字、日文的片假名和平假名、朝鲜文、 希腊字母等许多文字。下面是几个非法的变量名: 3max (变量名不能以数字开头) room# (包含非法字符“#”) class (“class”为保留字) 标识符不能是关键字,但是它可以包含关键字作为它的名字的一部分。例如,thisone是一个有效标识符,但this却不是,因为this是一个Java关键字。 2.1.2 关键字关键字关键字对Java编译器有特殊的含义,它们可标识数据类型名
3、或程序构造名。2.2 Java语言的基本数据类型语言的基本数据类型n基本数据类型也称作简单数据类型。Java语言有8种简单数据类型,分别是: boolean、byte 、short、int、long、float、double、char。 这8种数据类型习惯上可分为4大类型:n逻辑类型:booleann字符类型:charn整数类型:byte、short、int、longn浮点类型:float、double1.逻辑类型n常量:true ,false。n变量的定义使用关键字boolean来定义逻辑变量,定义时也可以赋给初值: boolean x=true,tom=false,jiafei; 注意:在
4、Java编程语言中boolean类型只允许使用boolean值,在整数类型和boolean类型之间无转换计算。在C语言中允许将数字值转换成逻辑值,这在Java编程语言中是不允许的。2.int 型 n使用关键字int来定义int型整型变量,定义时也可以赋给初值: int x= 12,tom=-1230,height=9898,number; 对于int型变量,内存分配给4个字节(byte),一个字节由8位(bit)组成,4个字节占32位。nint型变量的取值范围是:-231231-1 3.byte 型 n使用关键字byte 来定义byte 型整型变量,可以一次定义几个,定义时也可以赋给初值: b
5、yte m=-12,deep=28,speed=98;n对于byte型变量,内存分配给1个字节,占8位,因此byte型变量的取值范围是: -2727-1。 4.short long型 n使用关键字short来定义short型整型变量,可以一次定义几个,定义时也可以赋给初值: short x=12,tom=1234,漂亮=9876,jiafei;n对于short型变量,内存分配给2个字节,占16位,因此short型变量的取值范围是: -215 215-1。n整数类型缺省为int类型,如在其后有一个字母“L”表示一个long值。long width=15L,h=2000L;对于long型变量,内存
6、分配给8个字节,占64位,取值是 -263 263-1。6.char型 n常量常量Java使用unicode字符集,uincode表中的字符就是一个字符常量,字符常量需使用单引号扩起,例如:A、 b、 ? 、! 、9、 好 、t 、 n变量变量使用关键字char来定义字符变量,可以一次定义几个,定义时也可以赋给初值:char x=A,tom=爽,jiafei;n对于char型变量,内存分配给2个字节,占16位,最高为不用来表示符号 。n转义字符有些字符不能通过键盘输入到字符串或程序中,这时就需要使用转义字符常量,如n,b,t,”等。例子例子1public class Example2_1 pu
7、blic static void main (String args ) char chinaWord=你,japanWord=; int p1=36328,p2=38358; System.out.println(“汉字你在unicode表中的顺序位置:+(int)chinaWord); System.out.println(日语在unicode表中的顺序位置:+(int)japanWord); System.out.println(unicode表中第20328位置上的字符是:+(char)p1); System.out.println(unicode表中第12358位置上的字符是:+(c
8、har)p2); 7.float 型 n常量常量 123.5439f,12389.987F,123.0f,2e40f(2乘10的40次方,科学计数法)n变量变量 使用关键字float来定义float型变量,可以一次定义几个,定义时也可以赋给初值: float x= 12.76f,tom=1234.987f;n对于float型变量,内存分配给4个字节,占32位 .8.double 型 n常量常量 12389.5439d(d可以省略),12389908.987,123.0,6e-140(6乘10的-140次方,科学计数法)n变量变量 使用关键字double来定义double型变量,可以一次定义几个
9、,定义时也可以赋给初值: double x=12.76,tom=1234098.987;ndouble型变量,内存分配给8个字节,占64位 public class SimpleTypes public static void main(String args) byte a=0x44; short b=044; int c=1000000; long d=0xfffL; char e=A; float f=0.45F; double g=0.05; boolean h=true; System.out.println(a=+a); System.out.println(b=+b); Syst
10、em.out.println(c=+c); System.out.println(d=+d); System.out.println(e=+e); System.out.println(f=+f); System.out.println(g=+g); System.out.println(h=+h); 9.基本数据类型的转换当我们把一种基本数据类型变量的值赋给另一种基本类型变量时,就涉及到数据转换。基本类型数据的下列类型会涉及到数据转换,不包括逻辑类型和字符类型。我们将这些类型按精度从“底”到“高”排列了顺序。 byte short char int long float double 当把在
11、级别低的变量的值赋给级别高的变量时,系统自动完成数据类型的转换。例如,float x=100;如果输出x的值,结果将是100.0例如 int x=50; float y; y=x;如果输出y的值,结果将是50.0。 当把在级别高的变量的值赋给级别底变量时,必须使用显示类型转换运算。显示转换的格式:(类型名)要转换的值;例如: int x=(int)23.89; long y=(long)34.98F;如果输出x,y的值将是23和34,强制转换运算可能导致精度的损失 例子例子2 public class Example2_2 public static void main (String arg
12、s ) int c=2200; long d=8000; float f; double g=1234.123456789; c=(int)d; f=(float)g; /导致精度的损失导致精度的损失. System.out.print(c= +c); System.out.println( d= +d); System.out.println(f= +f); System.out.println(g= +g); 2.3 从命令行输入、输出数据从命令行输入、输出数据nScanner是JDK1.5新增的一个类,可以使用该类创建一个对象,如:Scanner reader=new Scanner(S
13、ystem.in);然后reader对象调用下列方法,读取用户在命令行输入的各种数据类型:nextBoolean(),nextByte(),nextShort(),nextInt(),nextLong(),nextFloat(),nextDouble();举例。import java.util.Scanner;public class Ex3 public static void main(String args) System.out.println(请输入若干个数,每输入一个数回车确认请输入若干个数,每输入一个数回车确认); System.out.println(最后输入数字最后输入数字0
14、结束输入操作结束输入操作); Scanner reader=new Scanner(System.in); double sum=0; int m=0; double x=reader.nextDouble(); while(x!=0) m=m+1; sum=sum+x; x=reader.nextDouble(); System.out.println(m+个数的和为个数的和为+sum); System.out.println(m+个数的平均值个数的平均值+sum/m); 2.4 Java的数组的数组n数组是相同类型的数据按顺序组成的一种复合数据类型。通过数组名加数组下标,来使用数组中的数据
15、。下标从0开始排序。n1、声明数组数组的元素类型 数组名字数组的元素类型 数组名字例:int a; float boy;2、创建数组数组名字=new 数组元素的类型数组元素的个数;如: a=new int3; 声明和创建数组一起完成如:int a=new int3;与与c/c+不同,不同,java不允许在声不允许在声明数组中的方括号内指定数组元明数组中的方括号内指定数组元素的个数。素的个数。创建数组后,系统会给每个数组元创建数组后,系统会给每个数组元素一个默认的值,如素一个默认的值,如int型是型是0,float型是型是0.0.n3、数组的初始化int a=1,2,3;String str=“
16、java”,”program”,”welcome”;4、数组长度“数组名字.length”求数组中元素的个数。如a.length值为3.n举例:npublic class UseIntArraynnpublic static void main(String args) nnint intArray=8,9,12;nint sum=0;nfor(int i=0;iintArray.length;i+)nsum+=intArrayi;nfor(int i=0;iintArray.length;i+)n System.out.print( intArray+i+=+intArrayi);nSyst
17、em.out.println();nSystem.out.println( sum=+sum);nn举例举例 public class Example2_4 public static void main(String args) int a=100,200,300; int b=10,11,12,13,14,15,16; b=a; b0=123456; System.out.println(数组a:+a0+,+a1+,+a2); System.out.println(数组b:+b0+,+b1+,+b2); System.out.println(数组b的长度:+b.length); 举例举例n
18、import java.awt.Graphics;nimport java.applet.Applet;npublic class RefArray extends Appletn public void paint(Graphics g)nnint intArray=18,-9,81,96,12;nint refArray,max;nrefArray=intArray;ng.drawString(intArray数组:,20,20);nfor(int i=0;iintArray.length;i+)ng.drawString( +intArrayi,120+i*20,20);ng.drawS
19、tring(refArray数组:,20,40);nn for(int i=0;irefArray.length;i+)ng.drawString( +refArrayi,120+i*20,40);nintArray1=66;ng.drawString(intArray1=+intArray1,20,60);ng.drawString(refArray1=+refArray1,130,60);nmax=intArray0;nfor( int i=1; i max )n max=intArrayi;nng.drawString(intArray数组元素的最大值: max=+max,20,80); n