1、第二章 Java 语言编程基础 2.1 了解 Java 的标识符与关键字2.2 了解 Java 的数据类型2.3 了解 Java 的变量和常量 2.4 了解 Java 的运算符与表达式2.5 熟悉 Java 的程序的流程控制2.6 掌握 Java 程序的注释用法2.1 了解 Java 的标识符与关键字下面我们通过一个 简单的程序来学习 java 中的标识符与关键字。/Example2_1.javapackage Chapter2; /声明程序所在包import java.util.Scanner;public class Example2_1 public static void main(S
2、tring args) int x, y, z; / 声明三个变量System.out.println(“请输入两个整数:“);/ Scanner 类表示一个文本扫描器,/它可以扫描从键盘上输入的字符Scanner in = new Scanner(System.in); / 方法 nextInt()返回键盘上输入的一个整数x = in.nextInt(); y = in.nextInt(); z = x + y;System.out.println(x + “+“ + y + “=“ + z);上例中,类名 Example2_1,变量名 x、y 和 z,对象名 in 等均属于用户定义的标识符
3、,而public、 class、static 、void、int 等均属于 Java 语言本身定义的关键字。 一、Java 标识符的命名规则 Java 的标识符命名规则如下:(1)标识符由字母、数字、下划线、美元符号组成,没有长度限制。(2)标识符的首字符必须是字母、下划线(_)或美元符号($) 。(3)标识符中的字母是区分大小写的,比如 Dog 和 dog 是不同的标识符。(4)常量通常以大写字母英文单词命名,变量通常以小写字母英文单词命名。如果一个变量名由多个单词构成,第一个单词为小写,第二个单词首字 母大写,如 anInt。(5)类的标识符通常以大写英文字母开始。(6)Java 关键字、
4、保留字等不能作为用户自定义标识符使用。 关键字(keyword )是指编程语言预先定义的标识符,在程序中有其特殊的含义,用户不能将其作为自定义标识符。 二、Java 关键字与保留字 abstract(抽象) assert(断言) boolean(布尔) break(中断) byte(字节)catch(捕获) char(字符) class(类) continue(继续) default(默认) do(做) double(双精度) else(否则) enum(枚举) extends(继承)false(假) final(最终) finally(最终) float(单精度浮点)for(当时候)if(如
5、果) implements(实现) import(引入) instanceof(是 的实例)int(整数)interface(接口) long(长整数) native(本地) new(新建) null(空)package(打包) private(私有) protected(受保护)public(公共) return(返回)short(短整数) static(静态) strictfp(精确浮点)super(超级的) switch(转换) synchronized(同步)this(这个) throw(抛出) throws(抛出) transient(暂时的)true(真) try(尝试) void
6、(空的) volatile(易变的)while(当时候)保留字(reserved word)是指 Java 语言预留的但暂时没有使用的关键字。对于保留字,用户也不能将其作为标识符使用。byValue(按值) case(情形) const(常量)future(将来) generic(类属) goto(跳转到)inner(内部) outer(外部) operator(运算符)rest(余数) var(变量) 琰茞 2.2 了解 Java 的数据类型 一、Java 的数据类型 Java 的数据类型分为简单数据类型和复合数据类型。 数据类型 关键字 所占位数 默认值 取值范围布尔型 boolean 8
7、 false true,false字节型 byte 8 0 -27 27-1(-128127)短整型 short 16 0 -215 215-1(-3276832767)整型 int 32 0 -231 231-1( -2 147 483 6482 147 483 647)长整型 long 64 0 -263 263-1单精度型 float 32 0.0 3.4e-0383.4e+038双精度型 double 64 0.0 1.7e-3081.7e+308字符型 char 16 u0000 u0000uFFFF(1)byte、short、int、long 均用于表示整数,只不过它们的取值范围不
8、同。(2)float 和 double 均用于表示浮点型数值,其区别在于它们所能表示的数值范围和精度不同。其中,double 型比 float 型可以存储范围更大,精度更高的数值。(3)字符型(char)用来表示 Unicode 字符集中的符号,如各种控制字符、字母、数字和汉字。Unicode 字符集采用十六进制数表示每一个字符,如 u0061表示小写字母 a。(4)布尔型(boolean)只有“真” (true )和“假” (false)两个值。 package Chapter2;public class DataTypeConvert public static void main(Str
9、ing args) char c1 = a, c2 = b, c3; / 声明三个字符变量int x1 = 10, x2, x3; / 声明三个整型变量float y1 = 20.56F, y2; / 声明两个浮点型变量c3 = (char) (c1 + c2); / 两个字符相加,结果为整型。由于 c3 为字符型,/ 故必须将整型强制转换为字符型x2 = x1 + c1; / 整型加字符型(实际上是字符的 ASCII 码值) ,结果为整型x3 = (int) (x1 + y1); / 整型加浮点型,结果为浮点型。由于 x3 为整型,/其级别低于浮点型,故必须进行强制转换y2 = x1 * y
10、1; / 整型与浮点型相乘,结果为浮点型System.out.println(“c3=“ + c3 + “ x2=“ + x2 + “ x3=“ + x3);System.out.println(“y2=“ + y2);二、数据类型转换在编写程序时,由于参与运算的变量或常量的数据类型不同,或者表达式结果与目标变量的数据类型不同,我们会经常碰到数据类型的转换问题。 程序的运行结果:c3=? x2=107 x3=30y2=205.599991简单数据类型的优先级 在 Java 中,为了规范简单数据类型的转换,系统基于各种简单数据类型取值精度的不同,为各种简单数据类型规定了不同的优先级,具体如下:(
11、byte、short、char) int long float double2数据类型的自动转换与强制转换 在参与运算的数据包含多种数据类型,或者赋值语句中左侧赋值变量和右侧表达式结果类型不同时,有如下几个原则: 如果赋值变量的数据类型优先级高于表达式结果数据类型的优先级,则表达式结果的数据类型将被自动转换为赋值变量的数据类型。 如果赋值变量的数据类型优先级低于表达式结果数据类型的优先级,或者两者同级,则表达式结果的数据类型必须强制转换为赋值变量的数据类型。 三、各种数据类型数据的表示方式 1整型数值 整型数值有三种表示形式:十进制整数、八进制整数和十六进制整数,其特点如下:十进制表示方法:由
12、正、负号和数字 09 组成,但数字部 分不能以 0 开头 。例如:int x=10, y=-24; 八进制表示方法:由正、负号和数字 07 组成,数字部分以 0 开头 。例如:short x=010, y=-024;十六进制表示方法:由正、负号,数字 09,字母 AF 或 af(表示数值 1015)组成,数字部分以 0X 或 0x 开头 。例如:int x=0xffff, y=-0X3D4; 提示:对于长整型变量来说,数值后必须添加后缀字母 L 或 l。同时,由于小写字母“l”很容易与阿拉伯数字“1”混淆,建议使用“L” 。2浮点型数值 浮点型数值有如下两种表示方式:(1)小数表示法,它由整数
13、部分和小数部分组成, 例如:4.0,5.32。(2)科学表示法,它常用来表示很大或很小的数,表示方 法是在小数 表示法后加“E”或“e”及指数部分。但要注意, “E”或“e”前面必须有数字,指数部分可正可负,但必须都是整数。例如:4.2E-5,3E6。 3字符值 字符值有普通字符表示法和转义字符表示法两种。例如:char c1 = a, c2 = n, c3=人;普通字符表示法是用单引号括起来的一个字符,而且区分大小写,例如:A和a是两个不同的字符,而VC 是不合法的。 转义字符表示法的格式为“字符” ,主要用来表示一些无法显示的字符, 如回车符、换行符、制表符等。 字符形式 ASCII 值
14、功 能 a 0x07 响铃 b 0x08 退格 t 0x09 横向制表符 n 0x0a 换行 r 0x0d 回车 0x5c 反斜杠 0x27 单引号 “ 0x22 双引号常用的转义字符及其功能:4字符串值 字符串值是使用双引号括起来的零个或多个字符,且字符串中可以包含转义字符。例如:String c1 = “I am Java!“; String c2 = “n 换行“; 5布尔型值 布型尔数据只有两个值:true 和 false,分别表示真和假。例如:boolean cond1 = true, cond2 = false; 2.3 了解 Java 的变量和常量 一、声明变量的方法 变量是指在
15、程序运行过程中可以发生变化的量,它用于在程序运行时临时存放数据。声明变量的语法格式如下: datatype variablename1 ,variablename2,variablename3.; datatype 表示 Java 中任意的数据类型; variablename1 表示任意合法的变量名。我们可以同时声明多个变量,各变量之间用逗号分隔。例如:char a; int i1,i2; Java 变量又分为成员变量(位于类中方法体以外的变量)和方法变量(位于方法体内的变量,又称局部变量) 。对于成员变量而言,我们还可以为其增加访问控制修饰符(如public、 private 等)和“sta
16、tic”字样,以限制访问变量的权限和变量的创建方式。 例如:public int var2; public static int var3; 二、声明常量的方法 常量是指在程序运行过程中不能改变的量,它用来记忆一个固定的数值。也就是说,常量只能被赋值一次。 在 Java 中,常量用 final 来声明,而且常量名全部用大写字母,以便与变量名有所区别。定义常量的的一般格式如下: final datatype CONSTANTNAME=值或表达式; datatype 表示 Java 中的任意数据类型, CONSTANTNAME 是用户自定义的合法的常量名, 例如:final double PI =
17、 3.14, RADIUS = 20; final double CIRCUMFERENCE = 2 * PI * RADIUS; 2.4 了解 Java 的运算符与表达式 运算符是指具有运算功能的符号。参与运算的数据称为操作数,运算符和操作数按照一定规则组成的式子称为表达式。 根据操作数个数不同,可以将运算符分为三种:单目运算符(又称一元运算符) 、双目运算符(又称二元运算符)和三目运算符(又称三元运算符) 。根据运算符的性质或用途不同,Java 中的基本运算符分为以下几类:(1)算术运算符:+,-,*,/ ,%,+,- -(2)关系运算符:,=, ,表达式 expression1 的值必须
18、为布尔型,表达式 expression2 与表达式 expression3 的值可以为任意类型,且类型可以不同。 条件表达式的值取决于 expression1 的判断结果。如果 expression1的值为 true,则执行表达式 expression2,否则执行表达式 expression3。 编写程序时,对于一些简单的选择结构,使用三目运算符来实现会更简捷。例如: int x = 20; int y = 10;int max = x = y ?x : y;六、位运算符及其表达式 Java 提供了可以直接对二进制数进行操作的位运算符 。 分类 运算符 名 称 示 例 运算符说明 按位取反 A
19、 这是一个单目运算符,用来对操作数中的位取反,即 1 变成 0,0 变成 1第二种形式:if (expression)statement;elsestatement;表达式 expression 的结果只能是布尔型,即此表达式的结果只能是 true 或false。当表达式 expression 为 true 时执行 if 所对应的代码块,否则,如果有 else 则 执行 else 对应的代码块。 第二种形式和第三种形式是相通的,如果第三种形式中 else if 代码块不出现,则变成第二种形式。else 语句必须和 if 或 else if 配对使用,else 总是与离它最近的 if 或 els
20、e if 配对,可以通过大括号来改变配对关系。第三种形式:if (expression)statement;else if(expression)statement; /可以有零个或多个 else if 语句else /最后的 else 语句也可以视情况省略statement;实例 2-1 计算税款 在我国,个人所得税是基于纳税人的情况和应征收入计算的。纳税人情况共分为三种:单身纳税人、已婚纳税人和家庭纳税人。另外,对于不同情况的纳税人,其税率是分档计算的,中国 2008 年的税率如下表所示。例如:如果是单身纳税人,可征税收入为 10000 元,则前 6000 元的税率为10%,后 4000
21、元的税率为 15%,则需要缴纳的税额为 1200 元。 税率 单身纳税人 已婚纳税人 家庭纳税人10% 低于 6000¥低于等于12000¥低于等于 10000¥15%6001¥-27950¥12001¥-46700¥10001¥-37450¥27%27951¥-67700¥467001¥-112850¥37451¥-96700¥30%67701¥-141250¥112851¥-171950¥96701¥-156600¥35%14251¥及以上171951¥及以上156601¥及以上【技术要点】 程序定义两个变量分别表示纳税人的情况和可征税收入,其中用 0 表示单身纳税人,1 表示已婚纳税人,
22、2 表示家庭纳税人。对每一种纳税人的情况,有五种税率,每种税率对应特定的可征税收入。例如:一个单身纳税人的收入是 10 0000 元,则 6000 元部分的税率为 10%,6000-27950 部分为15%,27950-67700 部分为 27%,67700-100000 部分为 30%。 步骤 1:启动 Eclipse,在 Chapter2 包中创建类 ComputeTax,并编写如下代码。/ ComputeTax.javapackage Chapter2;import java.util.Scanner;public class ComputeTax public static void
23、main(String args) double income = 0.0; /定义可征税收入int status = 0; /定义纳税人的情况double tax = 0; /定义税额/提示用户输入纳税人的类型System.out.println(“请输入纳税人的类型 :0-单身,1-已婚,2-家庭“);Scanner inStatus = new Scanner(System.in);if (inStatus.hasNextInt() status = inStatus.nextInt(); /输入纳税人的类型System.out.println(“请输入可征税收入:“);Scanner
24、in = new Scanner(System.in);if (in.hasNextDouble() income = in.nextDouble(); /输入可征税收入if (status = 0) /计算单身纳税人的缴纳税额if (income max_life) fg_num = fg_loop; /记录仙女草的数量gs_num = gs_loop; /记录银河梭的数量max_life = FGLIFE * fg_loop + GSLIFE * gs_loop;System.out.println(“购买的宝物最多能增加你“ + max_life + “个生命力!“);System.ou
25、t.println(“购买仙女草的数量为“ + fg_num);System.out.println(“购买银河梭的数量为“ + gs_num);四、跳转语句 通过跳转语句可以实现程序流程的跳转。 Java 中的跳转语句包括 break 语句、continue 语句和 return 语句。 1break 语句 break 语句可以用在循环语句的内部,用来结束循环。public static void main(String args)int i = 0;while(i 10) /i10 时执行 while 循环i+; /i 自身加 1if(i = = 5) /如果 i 等于 5,则退出循环br
26、eak ;System.out.println(i); /输出 i 值System.out.println(“循环结束“); 2continue 语句 continue 语句只能用在循环语句内部,用来跳过本次循环,继续执行下一次循环。在 while 和 do-while 循环结构中使用 continue 语句,表示将跳转到循环条件处继续执行;而在 for 循环结构中使用 continue 语句,表示将跳转到迭代语句处继续执行。 public static void main(String args)int i = 0;while(i 4)i+;if(i = = 2) /当 i 等于 2 时,执
27、行 continue 语句continue; /跳过过本次循环,直接执行下一次循环System.out.println(i); /当执行 continue 语句后,这行代码将执行不到System.out.println(“循环结束“);3return 语句 return 语句用在方法中,作用是终止当前方法的执行,返回到调用该方法的语句处,并继续执行程序。return 语句的语法格式如下:return expression;return 语句后面可以带返回值,也可以不带。表达式 expression 可以是常量、变量、对象等。return 语句后面表达式的数据类型必须与方法声明的数据类型一致。
28、当程序执行 return 语句时,先计算表达式的值,然后将表达式的值返回到调用该方法的语句处。位于 return 语句后面的代码不会被执行,所以 return 语句通常位于代码块的最后。 2.6 掌握 Java 程序的注释用法 单行注释以双斜杠“/”开始,终止于本行结束。单行注释多用于对一行代码的简短说明。多行注释以“/*”开始,以“ */”结束,两者之间的所有字符都是多行注释的内容。多行注释通常用于对文件、方法、数据结构等的说明,或者算法的描述。多行注释一般位于方法的前面,起引导作用,也可以根据需要放在其他合适的位置。文档注释以“/*”开始,以 “*/”结束,在此之间的所有字符都是文档注释的内容。文档注释主要是为了支持 JDK 工具 javadoc,通过 javadoc,文档注释将会生成 HTML 格式的代码报告,因此文档注释应当书写在类、构造方法、成员方法以及常量或变量的定义之前。Java 有三种程序注释方式,分别为单行注释、多行注释和文档注释,其特点如下: 本章小结本章首先介绍了 Java 中标识符与关键字、数据类型、变量和常量等基础知识,之后介绍了Java 的运算符及其表达式,最后通过多个实例重点讲述了程序流程控制方面的知识,并对Java 的几种程序注释方法作了简要说明。