1、模块2 Java语言基础r学习目标掌握标识符、关键字、分隔符、变量和常量的含义和使用方法。了解Java注释的格式和代码书写风格。掌握基本数据类型及数据类型转换。掌握运算符的分类和使用,以及表达式中运算符的优先级和结合性。掌握从控制台获取用户键盘输入数据的方法。技能目标能够在MyEclipse IDE中定义标识符、变量和常量吏用关键字及分隔符。01能够在MyEclipse IDE中编写适当的Java注释。02能够在MyEclipse IDE中运用基本数据类型并进行数据类型转换。03能够在MyEclipse IDE中编写表达式并进行各类运算。04能够在MyEclipse IDE中编写程序从控制台获
2、取用户键盘输入。052回顾与思考【例2】编写一个Java应用程序,根据所给圆的半径,计算并输出圆的周长。文 件名为Example2_l.java,其代码如下。publ ic cl ass Exampl e2_l/*例2-1根据所给圆的半径,计算并输出圆的周长*authorJava程序设计案例教程*version 1.0*/publ ic static void ma in(String args)final doubl e PI=3.14;圆周率int radius=10;半径doubl e perimeter=2*PI*radius;/周长Systen.out.printin(半径为+rad
3、ius+”的圆的周长为+perimeter);2回顾与思考【例2】编写一个Java应用程序,根据所给圆的半径,计算并输出圆的周长。以上代码中,Example2_ls main、args、PIS radius和 perimeter者R 是标识符;public、classs static、voids finaL double和int都是关键字;、()、;和.都是分隔符;radius和 perimeter是变量;PI是 常量;double和in嘱于基本数据类型;PI*radius涉及数据类型转换;二、*和+都是运算符;“是字符串定义符;+也是字符串运算符;/*至*/之间、/*至*/之间、之后的同一行
4、的内容为注释。寥寥几行代码就涉及了Java中 很多基本语法。接下来将逐个分析Java语言中的各类基本语法要素。2.2变量和常量2.2.1标识符标识符用来表示变量、常量、类、方法、参数、接口、包、文件等元素的名字。Java语言 中的标识符由字母、数字、下画线和美元符号($)组成,并且需要遵守以下规则。(1)不能以数字开头。(4)不能使用Java 语言中的关键字。(2)区分大小写。(3)没有长度限制。标识符命名惯例上(但不强迫)遵循见名知义原则和驼峰命名法。2.2变量和常量2.2.2关键字关键字是Java语言中已被赋予特定含义的标识符,只能供Java编译系统使用。Java语言中 不允许用户对关键字
5、再赋予其他含义。Java语言中的关键字见表2-1。表2-1 Java语言中的关键字abstractbool eanbreakbytecasecatch另外,还 有两个特殊标 识符goto和 constocharcl asscontinuedefaul tdodoubl eel seextendsfal sefinalfinal l yfl oatforifimpl ementsimportinstanceofintinterfacel ongnativenewnul lpackageprivateprotectedpubl icreturnshortstaticsuperswitchsynch
6、ronizedthisthrowthrowstransienttruetryvoidvol atil ewhil e您2.2变量和常量2.2.3分隔符(1大括号():用来定义语句块、类、方法及局部范围;也用于以赋值方式初始化数组。方括号():用来声明数组和引用数组元素。(3圆括号(0):用来容纳方法的参数列表;也用于由控制语句和强制类型转换组成的表达 式;还用来表示执行或计算的优先级。您2.2变量和常量2.2.3分隔符(4:分号(;):用来终止一条语句;也用来分隔for循环控制语句圆括号中的表达式。逗号(,):用来分隔变量列表中的各个变量或参数列表中的各个参数;也用来分隔(5)for循环控制语
7、句圆括号中各表达式部分的语句序列。6 圆点(.):用来分隔包与其子包或类;也用于类和实例对象调用成员变量和成员方法。空白():这类分隔符比较特殊,包括空格(Space)、跳格(Tab)和换行(7)(Enter)。2.2变量和常量2.2.4变量变量是程序运行过程中值可以发生改变的量。Java中的变量是程序在计算机内存中的一个 基本存储单元。Java中的变量必须先声明后使用。声明变量的格式为:数据类型变量名;变量名必须是Java中合法的标识符,可以依据个人的喜好命名变量。习惯上 以其所代表的含义给变量命名,如num代表数字、age代表年龄等。尽量不要用简 单的英文字母命名变量,因为简单的变量名称所
8、代表的含义往往令人费解,它会 增加阅读及调试程序的难度。您2.2变量和常量2.2.4变量变量声明后,可对变量进行初始化,即为其赋初值,格式如下。变量名=变量值;也可以在声明变量的同时立即对其进行初始化,格式如下。数据类型变量名=变量值;如果需要声明或声明并初始化多个同一类型的变量,可以采用如下方式。数据类型变量名L变量名2,;数据类型变量名1二变量值L变量名2二变量值2,;因为变量的值在程序运行过程中可以发生改变,所以下面的语句语法是正确的。2.2变量和常量2.2.5常量常量是程序运行过程中值始终保持不变的量。声明并初始化常量只要在声明变量的数据类 型前加上关键字final即可,格式如下。02
9、.3Java注释及代码书写风格2.3.1 Java 注释注释是对所编写代码的解释和说明。适当的注释有助于阅读和调试程序。注释不属于Java 程序代码的组成部分,因此,编译器在读到注释时会将其忽略。Java语言中有以下3种形式的 注释。一 1.单行注释2多行注释 03.文档注释您2.3Java注释及代码书写风格2.3.2 Java代码书写风格编写代码必须形成特定的风格。Java对 代码编写格式的要求是非常自由的,在符合 语法的前提下,可以把所有代码写成一行,也可以每行只写一个代码。如果这样书写或 自由发挥,编写的代码就难以阅读,给程序 员的后续工作带来很多麻烦。对于代码的书 写,推荐以下风格(在
10、MyEclipse IDE中可 以设置)。类及其所属包、导入包顶格书写,类体语句块的左大括号在上一行的行尾,右大括号独占一行。类体中的成员变量、构图2-1 Java代码书写风格造方法、成员方法等逐级缩进,如图2-1所示2.4数据类型2.4.1基本数据类型基本数据类型有8种,分别是:字节型(byte)短整型(short整型(int)长整型(long)单精度型(float双精度型(double2.4数据类型2.4.1基本数据类型L字符型字符型(char)用来表示单个字符,如字母、数字、符号等。J a va使用U n i cod e字符集,所以字符型数据都是无符号的16位整数,范围为065 536,
11、即0 x0000Oxffff(Ox表示 十六进制数)。T字符型数据占两个字节,用加一对单引号引起来的 Unicode字符来表示,如南W9等都是合法的字符型数据 o也可以直接用加一对单引号引起来的Unicode编码来表示字 符型数据,以u开头加上4个十六进制数,如u0042,表 示2.4数据类型_2.4.1基本数据类型1.字符型有些字符在程序中难以直接表达,Java中就定义了这样一些特殊字符,称为转义字符。转义字符以开头,跟在后面的字符含义发生了转变,所以称之为转义。常用的转义 字符见表2-2。表2-2常用转义字符表转义字符含 义转义字符含 义反斜杠n换行,单引号t跳格双引号b退格r回车f换页2
12、.4数据类型_2.4.1基本数据类型2.布尔型布尔型(boolean)用来表示两个逻辑状态,只有true和false两个取值,分别代表逻辑 真和逻辑假。truefalse2.4数据类型_2.4.1基本数据类型3.整数型整数型是指没有小数部分,但有符号的数据类型。Java提供字节型(byte)、短整型(short)、整型(int)和长整型(long)4种整数型数据。这4种整数型数据的区别是它们在 内存中所占用的字节数不同,因而它们所能存储的整数的取值范围也相应地不同。整数型数 据的基本指标见表2-3。表2-3整数型数据的基本指标数据类型长 度取值范围byte1字节(8位)-128-127shor
13、t2字节(16位)32 76832 767int4字节(32位)-2 147 483 6482 147 483 647l ong8字节(64位)263 263 12.4数据类型_2.4.1基本数据类型心4.浮点数型浮点数型悬旨带有小数部分的数据类型,包括单精度型(float)和双精度型(double)两种浮点数型。默认情况下,浮点数型数据为double类型。float类型的数据须在浮点数后 加上后缀F或f,如10.9f。浮点数型数据的基本指标见表2-4。表2-4浮点数型数据的基本指标数据类型长 度取值范围fl oat4字节(32位)-3.4X10383.4X1038doubl e8字节(64位
14、)-1.7X 10308-l7X103082.4数据类型2.4.2引用数据类型引用数据类型包含:接口类6数组2.4数据类型2.4.3数据类型转换11.自动类型转换:取值范围小的数据类型向取值范围大的数据类型转换,Java编译器自 动实现,不需要做特殊处理。这类数据类型转换称为自动类型转换。沿箭 头方向取值范围从小到大的顺序为:byte short int long float double;charintlongfloatdouble。沿以上和中箭头方向发生的数据 类型转换属于自动类型转换。例如,int i=10;double d=i;o2.4数据类型2.4.3数据类型转换沿箭头方向,取值范围
15、大的数据类型向取值范围小的数据类型转换,会导致溢出或精 度下降,转换后必然会丢失部分信息。这类数据类型转换称为强制类型转换。2.4数据类型_2.4.3数据类型转换(2.强制类型转换:强制类型转换有语法格式要求,其格式为:目标数据类型变量名二(目标数据类型)源数据类型例 如double d=5.5;int i=(int)d;换后,源数据本身类型 不会发生改变。例如,上例中变量d的数据类 型仍为double。/当然,强制类型转2.4数据类型2.4.4包装类以上Java中的8种基本数据类型也被 称为原始数据类型。为提高程序运行效 率,可以不把原始数据类型当成对象考 虑。然而,Java中所有的一切都可
16、作为 对象,所以Java为原始数据类型提供了 一些特殊的类,让原始数据类型在使用 上如同对象一般。这些特殊的类称为 Wrapper Class(包装类)。表2-5列 出了基本数据类型及其对应的包装类。表2-5基本数据类型及其对应的包装类基本数据类型包装类bool eanBool eancharCharacterbyteByteshortShortintI ntegerl ongLongfl oatFl oatdoubl eDoubl e25运算符2.5.1算术运算符Java中的算术运算符见表2-6。表2-6算术运算符运算符含 义+加法运算符减法运算符*乘法运算符/除法运算符%取余运算符+自增运
17、算符自减运算符+、-、*、/实现两个 操作数的加、减、乘、除 四则运算,取两个操作 数相除的余数。+和-也是 一元运算符,表示单个操 作数的正和负。25运算符_2.5.2关系运算符关系运算符用来比较两个数值的大小,结果返回布尔型的值true或false。关系运算符两边 的数据类型要一致。数值型数据的关系运算是比较其值的大小,字符型数据的关系运算是比较 其Unicode码的大小,布尔型数据只能进行二二和!二比较。Java中有6个关系运算符,见表2-7。表2-7关系运算符运算符含 义大r=大于等于小于无符号按位右移25运算符_2.5.5赋值运算符赋值运算符用一个等号二来表示。赋值运算符用于把等号右
18、边的值指定给等号左边的变 量或常量。赋值运算符可以与算术运算符和逻辑运算符组成复合赋值运算符,使得程序运行效 率更高。复合赋值运算符示例见表2-10。表2-10复合赋值运算符示例运算符示 例等效表达式+=x+=yx=x+y=x-=yx=x-y*=x*=yx=x*y/=x/=yx=x/y%=x%=yx=x%y&=x&=yx=x y1=x|=yX=X|yx=yx=x y25运算符2.5.6其他运算符1.条件运算符条件运算符由?和:构成,是一个三元运算符,格式如下。2,z;y;Z的取值25运算符2.5.6其他运算符2.字符串连接符+除了作为算术运算符外,还能作为字符串连接符,实现两个字符串的连接。例
19、如:int a=123,b=456;int c=a+b;/整型数c的值为579String x=123zy=456;String z=x+y;/字符串z的值为 12345625运算符2.5.6其他运算符3.对象运算符对象运算符使用关键字instanceof来判断对象是否为某种类型,运算结果为布尔型数据。其格式如下。对象标识符instanceof类型标识符;例如:java.util.Date date=new java.util.Date();System.out.print(date instanceof java.util.Date();结果为trueSystem,out.print(dat
20、e instanceof java.sql.Date();/结果为false2.6表达式1Q 表达式是符合语法规则的操作数、操作符和运算符的有效组合。每个表达式的山运算结果都是一个值,表达式的值的数据类型就是表达式的类型。Java中的运算符 都有各自的优先级和结合性。优先级是指运算符在表达式运算中的执行顺序。同一个表达式中往往有多个运 算符,必须为这些不同的运算符规定一个执行顺序。运算符优先级越高,其在表达 式中的执行顺序越靠前。结合性是指同一个表达式中多个相同级别运算符的运算方向,有从左向右和从 右向左两种结合性。U2.6表达式_各种运算符的优先级和结合性见表2-11,优先级从上到下逐级降低
21、。表2-11运算符的优先级和结合性优先级运算符结合性1()、口从左向右2!、+、+(正)、一(负)从右向左3*、/、从左向右4+、一从左向右5,从左向右6V、V=、=、instanceof从左向右7=、!=从左向右8&从左向右9从左向右101从左向右11&从左向右12II从左向右13?.从右向左14=、+=、一=、*=、/=、=、&=、1=从右向左2.6表达式_【例22】计算并输出表达式23+7 8|30+15的值。文件名为Example2_2.java,其代码如下。publ ic cl ass Exampl e2_2*例2-2运算符的优先级和结合性*authorJava程序设计案例教程*ve
22、rsion 1.0*/publ ic static void main(String args)System.out.printl n(23+78|30-57&8 5 7&8-3*6+2 (10-4)*2-3*6+2(10 4)*2+15);2.6表达式【例22】按照表2-11列出的运算符的优先级和结合性,先计算括号中的10-4,表达式被简化为 23+78|30-57&8-3*6+2 6*2+15;再计算3*6及6*2,表达式再次被简化为23+7 8|30-5 7-18+2 12+15;然后计算23+7、30-5、8-18+2及12+15,表达式进一步被简化为30 8|25 7&-8 27;接
23、着计算30 8、25 7及-8 27 z 表达 式又被简化为true|true&false”;接着计算true&false,表达式最后被简化为true|false;最终表达式的结果为true。您2.7控制台输入/输出2.7.1控制台输出Java中最常见的是用println()方法输出数据到控制台并换行。该 方法由System类的Printstream型静态常量out调用执行。如果把 println()改成print。,则后续的内容输出会紧接在这一次的输出之 后(不换行)。也可用printf(“输出格式”,输出数据列表)方法实现增 强的格式化输出。例如,System.out.printf(“%s
24、%.lfn“,”该圆的 面积为:“,area);。其中,$表示格式化输出字符串,表 示格式化输出浮点数,小数点后位数为1,n表示输出后换行。k_2.7控制台输入/输出2.7.2控制台输入Scanner类是用于扫描输入文本的实用程序。Scanner类位于 java.util包中。如果要使用Scanner类,则必须使用import语句导 入Scanner类。然后,使用Scanner类的相应方法获取用户从键盘 输入至控制台的数据。2.7控制台输入/输出2.7.2控制台输入【例23】用Scanner类实现用户数据的控制台输入。文件名为Example2_3.java,其代码如下。import java.
25、util.Scanner;/导入 Scanner 类publ ic cl ass Exampl e2_3/*例2-3用Scanner类实现用户数据的控制台输入*authorJava程序设计案例教程*version 1.0*/publ ic static void inain(String args)String s=sc.next();获取用户输入的字符串 System.out.print(请输入你的年龄:”);int i=sc.next工nt();获取用户输入的整数 System.out.print(请输入你的身高(米):;fl oat f=sc.nextFl oat();获取用户输入的浮点
26、数 System.out.printin(你的姓名是:+s);System.out.printin(你的年龄是:+i);System.out.printin(你的身高是:+f+米);创建Scanner类的实例,System.in表示系统输入,如键盘输入Scanner sc=new Scanner(System,in);System.out.print(请输入你的姓名:n);2.7控制台输入/输出2.7.2控制台输入0112-3运行结果如图2-2所示。百3腾。匕笈、*咏|品砧国画|田里。母terminatedexample2 2 Java Application C:UsersDELLAppDa
27、taLocaKGenuitecCommonbinarycom.sun.java.jc请输入你的姓名:飞群 7请输入你的年龄:20请输入你的身高(米):1.75际的姓名是:张三你的年龄是:20你的身高是:175米图2-2【例2-3】运行结果标识符、关键字、分隔符、变量和常量是Java语言中最基本的语 法要素。Java语言中的注释有3种形式:单行注释、多行注释和文档 注释。Java语言中有8种基本数据类型,分别是:字符型(char)、布 尔型(boolean)、字节型(byte)、短整型(short)、整型(int)、长 整型(long)、单精度型(float)和双精度型(double)。不同类型
28、数 据之间的运算会导致两种数据类型转换:自动类型转换和强制类型转 换。基本数据类型有各自对应的包装类。Java中的运算符包括赋值运 算符、算术运算符、关系运算符、逻辑运算符、位运算符,以及条件 运算符、字符串连接符、对象运算符等。2.9习题1.判断下列陈述是否正确。(1)Java中可以用中文汉字给变量命 名。(2)instanceOf是一个合法的Java 关键字。(3)赋值运算符的左边必须是变量。(4)表达式 int i 二(int)(5.5+3);中只包含强制类型转换。2.9习题2.写出下列代码片段运行的结果。bool ean a=true;bool ean b=fal se;System.
29、out.printl n(a&b=+(a&b);System.out.printl n(na|b=+(a|b);System,out.printl n(;a=+J a);int b=36;int a=59;System.out.printin(System.out.printl n(System,out.printin(System,out.printl n(a&b=+(a&b);System.out.printl n(a|b=+(a|b);System.out.printl n(System.out.printl n(System.out.printl n(ab=+(a*b);System.
30、out.printl n(ab=+(a b);ab=+(a =b=a=b+(a=b);+(a V=b);+(a=b);a!=b=+(a!=b);29习题_2.写出下列代码片段运行的结果。int a=6;int b=a+;System,out.printl n(ua=+a+”,b=+b);a=6;b=+a;a=b=20;System.out.printl n(a=+a);System.out.printl n(b=+b);System.out.printl n(,,a=+a+b=+b);3.问题与思考。(1)main。方法中的main是属于标识符 还是关键字?为什么?(2)查阅Java API中
31、有关Wrapper Class的内容。Wrapper Class位于哪个包中?如何用Wrapper Class声明并初始化原始数 据类型变量?(3)字符串属于何种数据类型?如何声 明并初始化字符串变量?20上机实践1.编写程序,从控制台获取输入的长方形的长和宽,输出其周长和面积。2.已知摄氏温度转为华氏温度的公式为F=Cx9/5+32编写程序,从控制台获取输入的摄氏温度,将其转为华氏温度并输出。3.编写程序,从控制台获取输入的一个4位整数,求出各位数的数字之和并输4.编写程序,实现一个数字加密器,加密规则是:力口密结果=(整数 xl0+5)/2+3.141 59从控制台输入待加密的整数,要求输出的加密结果仍为一个整数。谢谢观看!