Java程序设计第2章基本数据类型及操作学习目标编写Java程序执行简单的计算理解标识符、变量、常量使用赋值语句和赋值表达式掌握Java的基本数据类型使用操作符和表达式了解操作数计算顺序,操作符优先级和结合规则使用JOptionPane输入对话框和控制台获取输入熟悉Java文件、编程风格和命名规则理解语法错误、运行时错误和逻辑错误掌握调试技术例计算圆的面积编写程序,给定半径,计算圆的面积读入半径值计算面积面积=半径×半径×π显示面积Example:ComputeArea.java标识符Java中使用标识符(identifier)来命名变量、常量、方法、类、包等实体。标识符命名规则标识符是由字母、数字、下划线(_)、美元符号($)组成的字符序列。标识符必须以字母、下划线(_)、美元符号($)开头。不能以数字开头。标识符不能是保留字。标识符不能为true、false或null。标识符可以为任意长度。例如:$2,area,radius,showMessageDialog是合法的标识符;2A,d+4是非法的标识符Java保留字abstractcontinuefornewswitchassertdefaultifpackagesynchronizedbooleandogotoprivatethisbreakdoubleimplementsprotectedthrowbyteelseimportpublicthrowscaseenuminstanceofreturntransientcatchextendsintshorttrycharfinalinterfacestaticvoidclassfinallylongstrictfpvolatileconstfloatnativesuperwhile变量变量(variable)用于保存数据输入、数据输出和中间值。可以向变量赋予类型匹配的值。声明变量语法datatypevariableName;或者datatypev1,v2,…,v3;例如:intx;doubleradius,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;同时完成变量声明和初始化语法datatypevariable=expression;例如:intx=1;intx=1,y=2;方法中的变量在使用前必须赋值。intx,y;y=x+1;//error常量常量(constant)是一旦初始化后就不能再改变的数据。语法finaldatatypeCONSTANT_NAME=value;例如:finaldoublePI=3.14159;使用常量的好处避免重复输入便于程序修改便于程序阅读Example:ComputeAreaConst.javaJava数据类型基本类型逻辑类型byteshortintlong整数类型浮点类型floatdoublechar引用类型类(class)接口(interface)数组(array)boolean字符类型数据类型数值数据类型整数byte8位带符号整数(-128到127)short16位带符号整数(-32768到32767)int32位带符号整数(-2147483648到2147483647)long64位带符号整数(-9223372036854775808到9223372036854775807)浮点数float32位浮点数(负数-3.4×1038到-1.4×10-45正数1.4×10-45到3.4×1038)double64位浮点数(负数-1.8×10308到-4.9×10-324正数4.9×10-324到1.8×10308)数字操作符加(+)、减(-)、乘(*)、除(/)、求余(%)inta=34+1;//35doubleb=34.0–0.1;//33.9longc=300*30;//9000doubled=1.0/2.0;//0.5inte=1/2;//0bytef=20%3;//2整数相除的结果还是整数,省略小数部分。inti=5/2//2intj=-5/2//-2数字字面值字面值是直接出现在程序中的常量值。inti=34;longk=100000;整数字面值以0开头表示八进制,如035;以0x或0X开头表示十六进制,如0x1D,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类型。bytei=100;longk=i*3+4;doubled=i*3.1+k/2;强制类型转换将值赋值给较大取值范围的变量时,自动进行类型转换。byte→short→int→long→float→double将值赋值给较小取值范围的变量时,必须使用强制类型转换(typecasting)。语法(datatype)variableName例如:floatf=(float)10.1;//10.1inti=(int)f;//10intj=(int)-f;//-10注意整数操作时,除数不能为0。整数除0产生ArithmeticException异常。浮点数操作上溢至Infinity,下溢至0。浮点数除0等于Infinity。0.0除0.0等于NaNExample:IntegerDemo.java,DoubleDemo.java字符数据类型char表示16位的单个Unicode字符。char类型的字面值以两个单引号界定的单个Unicode字符。如:'男','女'可以用\uxxxx形式表示。如:'\u7537','\u5973'转义字符表示:\n\t\b\r\f\\\'\例如:charletter='A';charnumChar='4';字符串String表示一个字符序列。字符串的字面值是由双引号界定的零个或多个字符。Welcomtojava!连接运算:+,+=加号用于连接两个字符串。如果其中一个不是字符串,则先将该操作数转换成字符串,再执行连接操作。Stringmessage=Welcome+to+java;//WelcometoJavaStrings=Chapter+2;//Chapter2Strings1+=Supplement+'B';//SupplementBmessage+=andJavaisfun;//WelcometoJavaandJavaisfunSystem.out.println(i+j=+i+j);从输入对话框获得输入获取输入字符串Stringstring=JOptionPane.showInputDialog(null,PromptingMessage,DialogTitle,JOptionPane.QUESTION_MESSAGE));Stringstring=JOptionPane.showInputDialog(PromptingMessage);字符串转换成数字类型inti=Integer.parseInt(string);doubled=Double.parseDouble(string);消息标题图标例计算还贷金额用户输入利率、年数、贷款总额,程序计算每月分期付款金额和总金额。每月分期付款计算公式:12)1(11年数月利率月利率贷款总额月还款额Example:ComputeLoan.java例整钱兑零编写程序,把给定的钱数分成较少的货币单位。可用的货币单位为:dollar(1元)quarter(2角5分)dime(1角)nickel(5分)penny(1分)Example:ComputeChange.java例显示当前时间编写程序,显示当前的格林威治标准时间(GreenwichMeridianTime,GMT),格式为:时:分:秒Example:ShowCurrentTime.java从控制台获取输入标准输入/输出流System.out标准输出流System.in标准输入流Scanner类Scannerscanner=newScanner(System.in);doubled=scanner.nextDouble();方法:nextByte()nextShort()nextInt()nextLong()nextFloat()nextDouble()next()读入一个字符串Example:TestScanner.java,ComputeLoanAlternative编程风格良好的编程风格有利于减少错误,产生容易阅读、易于理解的代码。注释类和方法前使用文档注释方法步骤前使用行注释。命名变量和方法名使用小写,如果有多个单词,第一个单词首字母小写,其它单词首字母大写。类名的每个单词的首字母大写。常量使用大写,单词间以下划线分隔。缩进、空格、块样式(在eclipse中使用ctrl+shift+f)编程错误语法错误(syntaxerror)在编译期间产生的错误。运行时错误(runtimeerror)导致程序非正常终止的错误。逻辑错误(logicerror)程序不能按预期的方式执行。Example:ShowSyntaxErrors.java,ShowRuntimeErrors.java,ShowLogicErrors.java调试逻辑错误通常称为bug。查找并修正这些错误的过程称为调试(debug)。阅读程序使用打印语句输出中间结果使用调试器在Eclipse中进行调试双击编辑窗口左侧灰色边界添加断点在编辑窗口右键菜单中选择调试方式-Java应用程序