单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,第,3,章 变量与数据类型,第3章 变量与数据类型,Java,的变量,程序使用变量来存储数据,在程序中,必须先定义变量,才能使用他们,定义一个变量是指定变量的名字和变量的数据类型,其基本语法为:,数据类型名 变量名,=,初始值,;,Java,是一种强类型的程序设计语言,变量的值要与变量的类型一致,否则无法通过编译,如何取变量名?,变量名称的限制,P15,按照,Java,编码规范来给变量取名,Java的变量程序使用变量来存储数据,Java,编码规范,类名和接口名,首字母大写。如果由几个单词构成,那么每个单词的首字母大写,其余字母小写,例如,SmartDoll,方法名和变量名,首字母小写。如果由几个单词构成,那么除第一个单词外,其他每个单词的首字母大写,其余字母小写,例如,numberOfDogs,。如果变量名指代的实体的数量大于,1,,那么采用复数形式。,常量名,全部采用大写字母。如果由几个单词构成,单词之间以下划线“,_,”隔开连接,Java编码规范类名和接口名,Java,编码规范,Java,程序文件,源程序代码文件的扩展名为“,.java,”,Bytecode,代码文件的扩展名为“,.class,”,Java,编程规范文件网址:,http:/ 一个字符后缀来区别不同类型的数据。,Long,类型后加,L,或,l,;,float,后加,F,或,f,;,double,后加,D,或,d,。,基本数据类型的使用选用整数类型时,注意不同类型的取值范围,根,字符类型,Char,是字符类型,,Java,语言对字符采用,Unicode,字符编码。,所谓字符编码,是指用一串二进制数据来表示特定的字符。常见的字符编码包括:,ASCII,字符编码:用,1,个字节来表示一个字符。,Unicode,字符编码:用,2,个字节来表示一个字符,称为,UCS-2,(,Java,采用的就是这种);用,4,个字节来表示一个字符,称为,UCS-4,。,一些特殊字符的表达,需要使用转义字符来表达。,参见,P29,,表,3-3,。,字符类型Char是字符类型,Java语言对字符采用Unico,布尔类型(,boolean,),布尔类型只有,true,和,false,两种取值,除此之外,没有其他取值可能。,在,Java,语言中,不允许将整数值赋值给布尔类型的变量。,布尔类型(boolean)布尔类型只有true和false两,数据类型的转换,Java,的数据类型在定义时就已经决定,因此不能随意转换成其他的数据类型。如果程序需要,,Java,也运行有限度地进行类型转换处理。,自动转换,转换前的数据类型与转换后的类型兼容,转换后的数据类型的表示范围比转换前的类型大,即,转换不会引起数据值精确度的任何损失,运算表达式中,如果运算数属于不同的类型,则运算时,取值范围小的类型的数值会被自动转换成取值范围大的类型的数值进行运算,结果也为取值范围大的类型的数值,数据类型的转换Java的数据类型在定义时就已经决定,因此不能,类型转换实例,表达式中不同数据类型的数据先自动转换为同一类型,然后进行计算。,自动转换总是从取值范围小的类型到取值范围大的类型。,public class TypeCast,public static void main(String args,short a=1,b=1;,short c=a+b;,byte,short,char,int,long,float,double,类型转换实例表达式中不同数据类型的数据先自动转换为同一类型,,强制类型转换,将取值范围大的类型的数转换成取值范围小的类型的数时,即数据转换时可能会造成数据精确度损失时,需要使用强制类型转换。,强制类型转换语法,(,欲转换的数据类型,),变量名称,;,强制类型转换可能会造成数据精确度的丢失或溢出,使用时要注意这种转换给程序带来的影响。,double,float,long,int,char,short,byte,强制类型转换将取值范围大的类型的数转换成取值范围小的类型的数,编写程序获得由键盘输入的数据,public class className,public static void main(String args)throws IOException,BufferedReader buf;,String str;,/,创建一个,BufferedReader,类型对象并赋值给,buf,变量,buf=new BufferedReader(new InputStreamReader(System.in);,str=buf.readLine();/,通过,buf,引用的对象从标准输入中读取字符串,编写程序获得由键盘输入的数据public class cla,输入字符串,import java.io.*;,public class app3_13,public static void main(String args)throws IOException,BufferedReader buf;,String str;,buf=new BufferedReader(new InputStreamReader(System.in);,System.out.print(,请输入一个字符串:,);,str=buf.readLine();,System.out.println(,输入的字符串为:,+str);,输入字符串import java.io.*;,输入数值,import java.io.*;,public class app3_14,public static void main(String args)throws IOException,int num;,String str;,BufferedReader buf;,buf=new BufferedReader(new InputStreamReader(System.in);,System.out.print(,请输入一个整数:,);,str=buf.readLine();,num=Integer.parseInt(str);,System.out.println(,输入的整数是:,+num);,注:将字符串转换成数值类型的方法,参照,P36,,表,3-6.,输入数值import java.io.*;注:将字符串转换成,