第3章-Java程序基础_第1页
第3章-Java程序基础_第2页
第3章-Java程序基础_第3页
第3章-Java程序基础_第4页
第3章-Java程序基础_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第3章 Java程序基础本章学习目标本章学习目标 l掌握Java程序基本语法。l理解数据类型及变量涵义。l学会定义和正确使用各种变量。l理解复合语句概念。3.1 引言引言 l每一个Java程序都是按照一定规则编写而成,这些规则一般称之为程序语法程序语法,只有语法正确了,程序才能通过编译系统的编译,进而也才能被计算机加以执行,本章重点介绍Java程序的基本概念和语法。 3.1.1 符号l1 基本符号元素基本符号元素l2 关键字关键字l3 标识符标识符基本符号元素l字母:A-Z,a-z,美元符号$和下划线(_)。l数字:0-9。l算术运算符:+,-,*,/,%。l关系运算符:,=,=,!=,=。l

2、逻辑运算符:!,&和|。l位运算符:,&,|,。l赋值运算符:=。l其他符号:(),等等。关键字l关键字是Java语言本身使用的标识符,有其特定的作用。所有的Java关键字将不能被用作用户的标识符,关键字用英文小写字母表示。 l初学者不必刻意记忆以上关键字,在以后的使用过程中,自然会逐步掌握的。 标识符l本书中,标识符特指用户自定义的标识符。在Java语言中,标识符必须以字母、美元符号或者下划线打头,后接字母、数字、下划线或美元符号串。另外,Java语言对标识符的有效字符个数不做限定。l合法的标识符: a,b,c,x,y,z,result,sum,value,a2,x3,_a,

3、$b等。l非法的标识符: 2a,3x,byte,class,&a,x-value,new,true,www等。 标识符命名约定标识符命名约定 l(1)一般标识符定义应尽可能“达意”, 如value,result,number,getColor,getNum,setColor,setNum等。l(2)final变量的标识符一般全大写, 如final double PI=3.1415。l(3)类名一般用大写字母打头, 如Test,Demo。 3.1.2 分隔符分隔符 l1 空白符空白符l2 可见分隔符可见分隔符空白符在程序中主要起间隔作用,没有其他的意义。空白符包括空格、制表符、回车和换行

4、符等,程序各基本元素间通常用一个或多个空白符进行间隔。 可见分隔符也是用来间隔程序基本元素的,这一点同空白符类似,但是不同的可见分隔符有不同的用法。Java语言中,主要有六种可见分隔符 六种可见分隔符六种可见分隔符 l(1)“/” l(2)“/* ”和“*/” l(3)“;” l(4)“,” l(5)“:” : 说明语句标号l(6)“”和“” 3.1.3 常量常量 lJava程序中使用的直接量称为常量,它是用户在程序中“写死”的量,这个量在程序执行过程中都不会改变,也称最终量(用final标识的量)。 布尔值布尔值 l布尔类型的取值范围就是true或false两个值,因而其常量值只能是true

5、或false,而且true或false只能赋值给布尔类型的变量。l不过,Java语言还规定布尔表达式的值为0可以代表false,而1(或其他非0值)则表示true。 2 整数值l整数常量在程序中经常出现,习惯以十进制表示,如10、100等。l如八进制或十六进制进行表示,用八进制时,需在数字前加0示意,而十六进制加0 x(或0X)标识,譬如010(十进制值8)、070(十进制值56)、0 x10(十进制值16)、0Xf0(十进制值240)。l程序中出现的整数值默认分配四个字节的空间进行存储,即其数据类型为int,但当整数值超出int的取值范围(详见书上表3-1)时,系统则自动用八个字节空间来存储

6、,即其类型为long型,若要系统将数值不大的整数常量也用long类型来存储,可以在数值后添加L (或小写l)后缀,如22L。 3 浮点数l浮点数即通常所说的实数,它包含有小数点,可以用两种方式进行表示:标准式和科学记数式。l标准式是由整数部分、小数点和小数部分构成,如1.5、2.2、80.5等都是标准式的浮点数。l科学记数法由一个标准式跟上一个以10为底的幂构成,两者间需有E(或e)间隔开,如1.2e+6、5e-8和3E10等都是以科学记数法表示的浮点数。在程序中,一般浮点数的默认数据类型为double,即用8个字节空间来存放,当然也可以用F(或f)后缀来限定其类型为float,如55.5F、

7、22.2f等。 4 字符常量l字符常量是指用一对单引号括起来的字符,如A、a、1、和*等,事实上,所有的可见Ascii码字符都可以用单引号括起来作为字符常量。l此外,Java语言还规定了一些转义字符,这些转义字符以反斜杠打头,将其后的字符转变为另外的含义。l需要注意的是,反斜杠后的数字表示Unicode字符集的字符,而不是Ascii码字符集。 转义字符描述xxx1到3位八进制数所表示的字符(xxx)uxxx1到4位十六进制数所表示的字符(xxxx)单引号字符双引号字符r回车反斜杠n换行b退格f换页t跳格Java转义字符表转义字符表5 字符串常量字符串常量 lSystem.out.println

8、(Hello,welcome to Java programming.); 上述语句中,用双引号括起来的就是字符串常量,再比如:lNice to meet you! lYt- (¥)l1n2n3 (1、2、3各占据一行)l尤其需要注意的是,单个的字符加上双引号也是字符串常量,如:lN (字符串常量)lN (字符常量)l字符串常量一般都是用来给字符串变量赋初值的。 3.1.4 变量变量 l在程序执行过程中其值可以改变的数据,称为变量。l每个变量都必须有对应的名称来标识它,即变量名。变量名由程序设计者自己命名,但要注意必须是合法的标识符。l另外,为了提高程序可读性,一般都会根据变量意义或特征取对应

9、英文单词或简写等。l根据变量数据的特点,决定其数据类型,在Java中,一个变量只能属于某种确定的数据类型,并且在定义该变量时就要给出声明,这样就确定了该变量的取值范围,同时也确定了对该变量所能执行的操作或运算。 八种基本的数据类型八种基本的数据类型 l整型: byte 1、short 2、int 4、long 8l实型: float 4和double 8l布尔型: boolean 1bitl字符型: char 2变量定义变量定义lbyte age; (存放某人的年龄)lshort number; (存放某大学人数)lchar gender; (存放某人性别)ldouble balance; (

10、存放某帐户的余额)lboolean flag; (存放布尔值) 变量一经定义,系统将为其分配一定长度的内存存储空变量一经定义,系统将为其分配一定长度的内存存储空间,在程序中使用到该变量时,就需要在对应的内存中进间,在程序中使用到该变量时,就需要在对应的内存中进行读数据或写数据,通常称这种操作为对变量的访问。行读数据或写数据,通常称这种操作为对变量的访问。3.1.5 final变量变量 lfinal变量的定义形式与普通变量一样,但其所起作用却是类似于前面讲的常量。l定义final变量的方式有两种: 1 定义的同时初始化定义的同时初始化final double PI = 3.14;2 先定义后初始

11、化先定义后初始化final double PI ;PI = 3.14;提示提示l在程序设计时,一般建议将程序中多次要用到的常量值定义为final变量,这样在程序中就可以以final变量名来引用该常量值,以减少程序的出错概率,同时将来若常量值发生变化时也好调整。lfinal变量与普通变量的本质区别是:后者在初始化后仍能对其进行赋值,而前者在初始化后就不能再被赋值。 3.1.6 变量类型转换变量类型转换 l一般情况下,各种数据类型的变量间最好不要互相串用,但是在特定的情况下,存在进行变量类型转换的需要。 l比如将一个int类型的值赋给long类型变量,或将一个double类型的值赋给float类型

12、变量。前者的转换不会破环原有值,这种转换一般系统会自动进行,而后者的转换很可能会破环原有值,这种转换需要程序员在程序中明确指出,即进行强制转换。 类型转换类型转换llong a = 10; (常量10的默认类型为int,系统会自动自动将其转换为long类型并存至a中)lfloat f = 11.5;short b ; b = (short)f; (强制强制转换)3.2 基本数据类型数据类型名数据类型名称称数据类型标数据类型标识识占据存储空间占据存储空间取值范围取值范围布尔型布尔型boolean1bittrue(非(非0),或),或false(0)整型整型byte8bits(1Byte)-128

13、 +127short16bits(2Bytes)-32768 +32767int32bits(4Bytes)-21亿亿 +21亿亿long64bits(8Bytes)-9.21018 +9.21018浮点型浮点型float32bits(4Bytes)7位精度位精度double64bits(8Bytes)15位精度位精度字符型字符型char16bits(2Bytes)Unicode字符字符3.2.1 布尔型布尔型 l布尔类型用关键字boolean来标识,其取值范围就是:true(逻辑真)和false(逻辑假),是最简单的数据类型。l布尔类型的数据可以参加逻辑运算,并构成逻辑表达式,其结果也是布尔

14、值,常用来作为分支、循环结构中的条件表达式。 boolean flag1 = true;boolean flag2 = 35;boolean flag3 = 1;3.2.2 整型整型 l1 byte l2 short l3 int l4 long 【例3-1】数据溢出演示。public class Test public static void main(String args) byte a = 20; short b = 20000; short c = 200000; System.out.println(清华大学的院系数量:+a); System.out.println(清华大学的在校

15、生人数:+b); System.out.println(海淀区高校在校生总人数:+c); 【例3-2】演示常量的不同进制表示。public class Test public static void main(String args) byte a = 10; /十进制 short b = 010; /八进制 int c = 0 x10; /十六进制 System.out.println(a的值:+a); System.out.println(b的值:+b); System.out.println(c的值:+c); 【例3-2】演示数据类型转换。public class Test public

16、 static void main(String args) byte a = 1; byte b = 2; byte c;c=a+b;/运算正确?c的值?c=a+1;/运算正确? c的值?c=64+1;/运算正确? c的值?System.out.println(c的值:+c); 3.2.3 浮点型【例3-3】演示单精度浮点型的使用。public class Test public static void main(String args) float pi = 3.1415f; float r =6.5f; float v = 2*pi*r; System.out.println(该圆周长为

17、:+v); 【例3-4】演示双精度浮点型的使用。public class Test public static void main(String args) double pi = 3 double r =6.5; double v = 2*pi*r; System.out.println(该圆周长为:+v); 3.2.4 字符型字符型 lJava语言用Unicode字符集来定义字符型,一个字符占用两个字节的存储空间,这与C/C+不同。l前面已经介绍过字符常量,下面再来看看字符型的变量定义:char ch; /定义字符型变量chch = 1; /给ch赋初值为1l字符

18、型变量在程序常被用作代号,比如ch为1代表成功,为0代表失败;为F表示女性,为M表示男性等。在具体进行程序设计时,应注意灵活应用。3.3 程序语句l3.3.1 赋值语句赋值语句 l3.3.2 条件表达式条件表达式l3.3.3 运算运算l3.3.4 复合语句复合语句 3.3.1 赋值语句l赋值语句的一般形式为:variable = expression;l在这里“=”不是数学中的等号,而是赋值运算符,其功能是将右边表达式的值赋(即传递或存入)给左边的变量,例如:lint i,j;lchar c;li = 100;lc = alj = i +100;li = j * 10;自增自减语句自增自减语句

19、l特别地,对于形如i=i+1;这样的赋值语句,可以将其简写为i+;或者+i,并称之为自增语句,同样还有自减语句i-;或者-i;,它们等价于i=i-1;语句。l我们把“+”和“-”叫做自增和自减,它们写在变量的前面与后面有时是有区别的!【例3-5】自增赋值语句。public class Test public static void main(String args) int i, j , k = 1; i = k+; j = +k; System.out.println(i=+i); System.out.println(j=+j); 复合赋值语句的复合赋值运算复合赋值语句的复合赋值运算 l+

20、= 加后赋值l-= 减后赋值l*= 乘后赋值l/= 除后赋值l%= 取模后赋值【例3-6】复合赋值语句。public class Test public static void main(String args) int i=0, j=30 , k = 10; i += k; /相当于 i = i+k; j -= k; /相当于j=j-k; i *= k; /相当于i=i*k; j /= k; /相当于j=j/k; k %=i+j; /相当于k=k%(i+j); System.out.println(i=+i); System.out.println(j=+j); System.out.pri

21、ntln(k=+k); 3.3.2 条件表达式l条件表达式的一般形式为: Exp1?Exp2:Exp3l首先计算Exp1,当表达式Exp1的值为true时,计算表达式Exp2并将结果作为整个表达式的值,当表达式Exp1的值为false时,计算表达式Exp3并将结果作为整个表达式的值。 【例3-7】条件表达式示例。public class Test public static void main(String args) int i, j=30 , k = 10; i = j=k*3?1:0; System.out.println(i=+i); 3.3.3 运算(1)算术运算 l Java的算术

22、运算有加(+)、减(-)、乘(*)、除(/)和取模(%)运算。 l3/2 结果为1l3/2.0 结果为1.5l5%2 结果为1l11%3结果为2(2)关系运算)关系运算 关系运算的结果为布尔值,即true或false Java语言中共有六种关系运算:l(大于)l=(大于等于)l(小于)lk; b2 = i=j; b3 = j/3!=k; System.out.println(b1=+b1+,b2=+b2+,b3=+b3); (3)逻辑运算)逻辑运算lJava语言中有三种逻辑运算:&(与)、|(或)、!(非),参与逻辑运算的操作数为布尔类型值,最终结果也为布尔值。 xyx&yx|y!xtruefalsefalsetruefalsetruetruetruetruefalsefalsetruefalsetruetruefalsefalsefalsefalsetrue(4)位运算)位运算l位运算指的是对二进制位进行计算,其操作数必须为整数类型或者字符类型。 运算符运算符用法用法功能功能&ope1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论