单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,Y,ANG,L,IN,B,NUITC,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,Java,程序设计,第2章 根本数据类型及操作,学习目标,编写Java程序执行简洁的计算,理解标识符、变量、常量,使用赋值语句和赋值表达式,把握Java的根本数据类型,使用操作符和表达式,了解操作数计算挨次,操作符优先级和结合规章,使用JOptionPane输入对话框和把握台猎取输入,生疏Java文件、编程风格和命名规章,理解语法错误、运行时错误和规律错误,例 计算圆的面积,编写程序,给定半径,计算圆的面积,读入半径值,计算面积,面积,=,半径,半径,显示面积,Example:ComputeArea.java,标识符,Java中使用标识符(identifier)来命名变量、常量、方法、类、包等实体。,标识符命名规章,标识符是由字母、数字、下划线(_)、美元符号($)组成的字符序列。,标识符必需以字母、下划线(_)、美元符号($)开头。不能以数字开头。,标识符不能是保存字。,标识符不能为true、false或null。,标识符可以为任意长度。,例如:$2,area,radius,showMessageDialog是合法的标识符;2A,d+4是非法的标识符,Java保存字,abstract,continue,for,new,switch,assert,default,if,package,synchronized,boolean,do,goto,private,this,break,double,implements,protected,throw,byte,else,import,public,throws,case,enum,instanceof,return,transient,catch,extends,int,short,try,char,final,interface,static,void,class,finally,long,strictfp,volatile,const,float,native,super,while,变量,变量(variable)用于保存数据输入、数据输出和中间值。可以向变量赐予类型匹配的值。,声明变量语法,datatype variableName;,或者,datatype v1,v2,v3;,例如:,int x;,double radius,area;,赋值语句,语法,variable=expression;,其中,expression,是包含数值、变量和操作符的表达式。赋值语句的结果是将表达式的值赋值给左边的变量。,例如:,x=1;,x=5*(3/2)+3*2;,x=y+1;,area=radius*radius*3.14159;,赋值表达式,语法,variable=expression,赋值表达式的结果等于表达式的值。赋值表达式是右结合的。,例如:,i=j=k=1;,等价于,k=1;,j=k;,i=j;,同时完成变量声明和初始化,语法,datatype variable=expression;,例如:,int x=1;,int x=1,y=2;,方法中的变量在使用前必需赋值。,int x,y;,y=x+1;/error,常量,常量(constant)是一旦初始化后就不能再转变的数据。,语法,final datatype CONSTANT_NAME=value;,例如:,final double PI=3.14159;,使用常量的好处,避开重复输入,便于程序修改,便于程序阅读,Example:ComputeAreaConst.java,Java,数据类型,根本类型,规律类型,byte,short,int,long,整数类型,浮点类型,float,double,char,引用类型,类,(class),接口,(interface),数组,(array),boolean,字符类型,数据类型,数值数据类型,整数,byte8,位带符号整数,(-128,到,127),short16,位带符号整数,(-32768,到,32767),int32,位带符号整数,(-2147483648,到,2147483647),long64,位带符号整数,(-9223372036854775808,到,9223372036854775807),浮点数,float32,位浮点数,(,负数,-3.410,38,到,-1.410,-45,正数,1.410,-45,到,3.410,38,),double64,位浮点数,(,负数,-1.810,308,到,-4.910,-324,正数,4.910,-324,到,1.810,308,),数字操作符,加(+)、减(-)、乘(*)、除(/)、求余(%),int a=34+1;/35,double b=34.0 0.1;/33.9,long c=300*30;/9000,double d=1.0/2.0;/0.5,int e=1/2;/0,byte f=20%3;/2,整数相除的结果还是整数,省略小数局部。,int i=5/2/2,int j=-5/2/-2,数字字面值,字面值是直接消逝在程序中的常量值。,int i=34;,long k=100000;,整数字面值,以0开头表示八进制,如035;以0 x或0X开头表示十六进制,如0 x1D,0X1d;以1-9开头表示十进制,如29,后缀字母:以l或L结尾表示long 类型,如29L;其它表示int类型。,浮点数字面值,浮点数是包含小数点的十进制数,后跟可选的指数局部。如,18.1.8e1.18E2,后缀字母:以d或D结尾或者无后缀表示double类型;以f或F结尾表示float类型,简捷操作符,常用简洁操作符,操作符举例等价于,+=i+=8i=i+8,-=f-=8.0f=f-8.0,*=i*=8i=i*8,/=i/=8i=i/8,%=i%=8i=i%8,递增和递减运算符:,+,-,前缀表示先加,(,减,)1,后使用,后缀表示先使用后加,(,减,)1,数字类型转换,假设二元操作符的两个操作数的数据类型不同,那么依据下面的规章对操作数进展转换:,假设有一个操作数是double类型,另一个操作数转换为double类型。,否则,假设有一个操作数是float类型,另一个操作数转换为float类型。,否则,假设有一个操作数是long类型,另一个操作数转换为long类型。,否则,两个操作数都转换为int类型。,byte i=100;,long k=i*3+4;,double d=i*3.1+k/2;,强制类型转换,将值赋值给较大取值范围的变量时,自动进展类型转换。,byte short int long float double,将值赋值给较小取值范围的变量时,必需使用强制类型转换(type casting)。,语法,(datatype)variableName,例如:,float f=(float)10.1;/10.1,int i=(int)f;/10,int j=(int)-f;/-10,留意,整数操作时,除数不能为0。,整数除0产生ArithmeticException特殊。,浮点数操作上溢至Infinity,下溢至0。,浮点数除0等于Infinity。,0.0除0.0等于NaN,Example:IntegerDemo.java,DoubleDemo.java,字符数据类型,char表示16位的单个Unicode字符。,char类型的字面值,以两个单引号界定的单个Unicode字符。如:”男”,”女”,可以用uxxxx形式表示。如:”u7537”,”u5973”,转义字符表示:n t b r f ”“,例如:,char letter=”A”;,char numChar=”4”;,字符串,String表示一个字符序列。,字符串的字面值是由双引号界定的零个或多个字符。,“Welcom to java!“,“,连接运算:+,+=,加号用于连接两个字符串。假设其中一个不是字符串,则先将该操作数转换成字符串,再执行连接操作。,String message=“Welcome“+“to“+“java“;/Welcome to Java,String s=“Chapter“+2;/Chapter2,String s1+=“Supplement“+”B”;/SupplementB,message+=“and Java is fun“;/Welcome to Java an Java is fun,System.out.println(“i+j=“+i+j);,从输入对话框获得输入,猎取输入字符串,String string=JOptionPane.showInputDialog(,null,“Prompting Message“,“Dialog Title“,JOptionPane.QUESTION_MESSAGE);,String string=JOptionPane.showInputDialog(“Prompting Message“);,字符串转换成数字类型,int i=Integer.parseInt(string);,double d=Double.parseDouble(string);,消息,标题,图标,例,计算还贷金额,用户输入利率、年数、贷款总额,程序计算每月分期付款金额和总金额。,每月分期付款计算公式:,Example:ComputeLoan.java,例,整钱兑零,编写程序,把给定的钱数分成较少的货币单位。可用的货币单位为:,dollar(1,元,),quarter(2,角,5,分,),dime(1,角,),nickel(5,分,),penny(1,分,),Example:ComputeChange.java,例,显示当前时间,编写程序,显示当前的格林威治标准时间,(Greenwich Meridian Time,GMT),,格式为,:,时:分:秒,Example:ShowCurrentTime.java,从把握台猎取输入,标准输入/输出流,System.out 标准输出流,System.in 标准输入流,Scanner类,Scanner scanner=new Scanner(System.in);,double d=scanner.nextDouble;,方法:,nextByte nextShort nextInt,nextLong nextFloat nextDouble,next 读入一个字符串,Example:TestScanner.java,ComputeLoanAlternative,编程风格,良好的编程风格有利于削减错误,产生简洁阅读、易于理解的代码。,注释,类和方法前使用文档注释,方法步骤前使用行注释。,命名,变量和方法名使用小写,假设有多个单词,第一个单词首字母小写,其它单词首字母大写。,类名的每个单词的首字母大写。,常量使用大写,单词间以下划线分隔。,缩进、空格、块样式在eclipse中使用ctrl+shift+f,编程错误,语法错误(syntax error),在编译期间产生的错误。,运行时错误(runtime error),导致程序非正常终止的错误。,规律错误(logic error),程序不能按预期的方式执行。,Example:ShowSyntaxErrors.java,ShowRuntimeErrors.java,ShowLogicErrors.java,调试,规律错误通常称为bug。查找并修正这些错误的过程称为调试(debug)。,阅读程序,使用打印语句输出中间结果,使用调试器,在Eclipse中进展调试,双击编辑窗口左侧灰色边界添加断点,在编辑窗口右键菜单中选择“调试方式“-“Java应用程序“,