版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、学习导读学习导读 Java语言是用符号语言是用符号”说话说话”的,那的,那就必须了解两个方面的问题就必须了解两个方面的问题: 其一其一:用到了哪些符号用到了哪些符号 其二其二:如何使用这些符号如何使用这些符号第第2章章 Java语言编程基础语言编程基础 教学重点教学重点 vJava的关键字、标识符、各种数据类型的关键字、标识符、各种数据类型vJava的常量与变量及各种数据类型的常量与变量及各种数据类型vJava的各种运算符及表达式的各种运算符及表达式2.1.1 标识符标识符 在Java编程语言中,标识符是赋予变量、类或方法的名称。变量、方法、类和对象的名称都是标识符,程序员需要标识和使用的东西
2、都需要标识符。标识符可从一个字母、下划线(_)或美元符号($)开始,随后可跟数字、字母、下划线或美元符号。标识符区分大小写,没有长度限制,可以为标识符取任意长度的名字。 下面是几个有效的标识符: identifier thisone UserName User_name _system_varl $max 2.1 Java语言基本知识语言基本知识 下面是几个非法的变量名: 3max (标识符不能以数字开头) room# (包含非法字符“#”) class (“class”为关键字) 标识符不能是关键字,但是它可以包含关键字作为它的名字的一部分。例如,thisone是一个有效标识符,但this却
3、不是,因为this是一个Java关键字。 下面是一些约定俗成的准则下面是一些约定俗成的准则v1.变量名变量名:v采用名词采用名词,第一个字名小写第一个字名小写,如果多个单词组合则第如果多个单词组合则第二个单词的第一个字母大写二个单词的第一个字母大写.如如 isVisible.v2.类名类名,接口名接口名:v采用名词采用名词,第一个字母大写第一个字母大写,内含的单词首字母大写内含的单词首字母大写v如如:String System Integer Boolean v3.方法名方法名:v采用名词采用名词,第一个字母小写第一个字母小写,内含的单词首字母大写内含的单词首字母大写v如如:parseInt(
4、)v4.常量名常量名: 全部采用大写字母全部采用大写字母 如如:TOTAL_COUNT 二二 关键字关键字 关键字对Java编译器有特殊的含义,它们可标识数据类型名或程序构造(construct)名。 表1-1列出了在Java编程语言中使用的关键字。 有关关键字值得我们注意的地方: (1)true、false和null为小写,而不是象在C+语言中那样为大写。严格地讲,它们不是关键字,只是符号。然而,这种区别是理论上的。 (2)无sizeof运算符,因为所有数据类型的长度和表示是固定的,与平台无关,不是像在C语言中那样数据类型的长度根据不同的平台而变化。这正是Java语言的一大特点。 (3)go
5、to和const是Java编程语言中保留的没有意义的关键字。 2.1.2 常量与变量常量与变量 在Java中,不同类型的数据既可以以常量的形式出现,也可以以变量的形式出现。 常量就是指在程序执行期间其值不能发生变化的数据,常量是固定的。如整型常量123,实型常量1.23,字符常量A,布尔常量true等。 变量的值则是可以变化的,它的定义包括变量名、变量类型和作用域几个部分。注意以下几点: (1)变量名必须是一个合法的标识符。变量名应具有一定的含义,以增加程序的可读性。 (2)变量类型可以为前面所说的任意一种数据类型。 (3)声明一个变量的同时也就指明了变量的作用域,变量的作用域指明可访问该变量
6、的一段代码。在Java中,两个主要的作用域是通过类和方法定义的。目前我们仅考虑由方法或在一个方法内定义的的作用域。 v 方法定义的作用域以它的左大括号开始。如果该方法有参数,它们也被包括在该方法的作用域中,与方法中其他变量的作用域是一样的。 v 在一个作用域中定义的变量对于该作用域外的程序是不可见的。 v 作用域可以嵌套,外面的作用域包含内部的作用域。即外部作用域定义的对象对于内部作用域中的程序是可见的,反之则不然。 v 程序块能被嵌套,但不能将内部作用域声明的变量与其外部作用域声明的变量重名。 (4)变量的声明 int a,b,c; /定义a,b,c为int型变量 double d,e; /
7、定义d,e为double型变量 float f=2.5f,g=5.8f; /定义f,g为float型变量, 并赋初值 其中,多个变量间用逗号隔开。 (5)在Java程序中声明变量后,可用赋值语句来给变量赋值,其通用格式如下: var = expression; 其中var为已声明的变量名,= 为赋值运算符, expression是有适当值的表达式。 var的类型必须与expression的类型一致。 2. 2 基本数据类型基本数据类型 一 数据类型 Java编程语言有八种基本数据类型,可分为以下四种: 1逻辑类型逻辑类型boolean boolean 数据类型有两个常量值:true和false
8、。 注意:Java是一种严格的类型语言,它不允许数值类型和boolean类型之间进行转换。 在C/C+语言中允许用数值表示逻辑值,如用0表示false,非0表示true。这在Java中是不允许的,需要使用boolean值的地方不能以其他值代替。 2字符类型字符类型char 使用char类型可表示单个字符,字符常量必须用一对单引号括起来,如a,B等。 Java中使用Unicode码表示字符,它要求采用双字节对字符进行编码。所以,Java中的char类型是16位,其取值范围为065535。 与C语言类似,Java也提供转义字符,以反斜杠()开头,将其后的字符转变为另外的含义。 表3-2列出了Jav
9、a中的转义字符。 值得注意的一点是,用双引号引用的文字,就是我们平时所说的字符串类型(String),它不是基本类型,而是一个对象类型,Java是将字符串作为对象实现的。为char类型所规定的字符转义序列在字符串内同样适用,如“threenlines”等。 3整数类型整数类型byte,short,int,long 在Java编程语言中有四种整数类型,每种类型可使用关键字byte, short, int和long中的任意一个进行声明。所有Java编程语言中的整数类型都是有符号整数,不存在无符号整数。 整型常量可用十进制、八进制或十六进制表示。首位为“0”表示八进制的数值;首位为“0 x”表示十六
10、进制的数值。请看下面的例子: 5 表示十进制值5 075 表示八进制数值75 (也就是十进制数61) 0 x9ABC 表示十六进制的数值9ABC (也就是十进制数39612) 整型常量缺省为int类型,如在其后有一个字母“L”表示一个long常量(也可以用小写“l”)。由于小写“l”与数字“1”容易混淆,因而,建议大家采用大写“L”。 上面所说的整数long的形式如下: 5L 表示十进制值5,是一个long值 075L 表示八进制数值75,是一个long值 0 x9ABCL 表示十六进制的数值9ABC,是一个long值 四种整数类型的大小和可表示的范围是不一样的,如表3-3所示。 整数类型整数
11、长度表示范围byte8位-2727-1short16位-215215-1int32位-231231-1long64位-263263-1表表3- -3 Java整数类型整数类型 4浮点类型浮点类型float,double 在Java编程语言中有两种浮点类型:float和double。如果一个数值常量中包含小数点或指数部分,或者其后跟有字母F或f(float)、D或d(double),则该数为浮点数。如果不明确指明浮点数的类型,浮点数缺省为double类型。下面是几个浮点数: 3.14159 (double型浮点数) 2.08E25 (double型浮点数) 6.56f (float型浮点数) 在
12、两种类型的浮点数中,float为32位(单精度),double为64位(双精度)。也就是说double类型的浮点数具有更高的精度。 例如: int a; /声明整型变量 float f1=3.14f; /声明浮点型变量并赋值 char c; /声明字符型变量 boolean b1=true;/声明布尔型变量并赋值 boolean b2; /声明布尔型变量 c=A; /给字符型变量赋值 b2=67; /给布尔型变量赋值 当一个对象被创建时,实例变量在分配内存空间的同时被初始化。初始化值如表3-4所示。 三三 基本类型转换基本类型转换 在Java程序里,将一种数据类型转换成另外一种数据类型,称为类
13、型转换。类型转换有两种:自动类型转换(或称隐含类型转换)和强制类型转换。 在实际编程中常会将一种类型的值赋给另外类型的一个变量。如果这两种类型是兼容的,Java将执行自动类型转换。 简单的说,当两种数据类型是兼容的,并且目的数据类型的取值范围比来源数据类型的取值范围更大时,Java执行自动类型转换。例如,下面的语句把int型数据赋值给long型变量,在编译时不会发生任何错误: int i=10; long j=i; 除了赋值方式,类型转换也可以在表达式中进行。当分析表达式时,Java自动提升各个byte型、char型或short型的操作数到int型。例如: byte a=40, b=50, c
14、=100; int d=a*b/c; /a, b, c均被提升为int型操作数 同样,如果一个操作数是long型,整个表达式将被提升到long型;如果一个操作数是float型,整个表达式将被提升到float型;如果有一个操作数是double型,计算结果就是double型。例如:若将一个byte值与一个float值相乘,byte值被提升为float类型,结果就是float类型;若将一个int值和一个double值相加,int值被提升为double类型,结果就是double类型; 不是所有的数据类型都允许进行自动类型转换。例如,下面的语句把long型数据赋值给int型变量,在编译时就会发生错误:
15、long i=10; int j=i; 这是因为int型的取值范围比long型的要小,因而不能够自动转换。这时就需要利用强制类型转换。上面的语句写成以下形式就不会发生错误: long i=10; int j=(int)i; 强制类型转换的格式是: (目标数据类型)变量名(目标数据类型)变量名 经过强制类型转换,将得到一个目标数据类型的数据,该数据是从指定变量所包含的数据转换而来的。值得注意的是,指定变量本身不会发生任何变化。 如果指定变量的取值超出了目标数据类型的取值范围,它的值将会因为对目标数据类型的值域取模而减少。例如: int i=1000000; byte j=(byte)i; /j=
16、64 因为1000000已经超出了byte类型所能表示的最大整数(127),因此结果是1000000除以256(256是byte类型的值域)的余数64。2.3 运算符运算符 与表达式与表达式 按照运算符功能来分,基本的运算符包括算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符、条件运算符等。 一一 算术运算算术运算 算术运算符包括加号(+)、减号(-)、乘号(*)、除号(/)、取模(%)、自增运算符(+)、自减运算符(-)等。 在算术运算中,有以下值得注意的地方: (1)算术运算符的总体原则是先乘除、再加减,括号优先。 (2)整数除法直接舍掉小数部分,而不是进位。 (3)与C/C+语言
17、不同,对取模运算符“%”来说,其操作数可以为浮点数。如:37.2%10=7.2。 (4)Java也用一种简写形式进行运算,并同时进行赋值操作。例如,为了将10加到变量x,并将结果赋给x,可用:x+=10。 (5)Java对相加运算符“+”进行了重载,使它能够进行字符串的连接,如abc+def,得到串abcdef。 (6)前缀+、-与后缀+、-的区别: +i(前缀+)在使用i之前,使i的值加1,因此执行完+i后,整个表达式和i的值均为i+1; i+(后缀+)在使用i之后,使i的值加1,因此执行完i+后,整个表达式的值为i,而i的值变为i+1。 -i在使用i之前,使i的减1,因此执行完-i后,整个
18、表达式和i的值均为i-1;i-在使用i之后,使i的减1,因此执行完i-后,整个表达式的值为i,而i的值变为i-1。 二二 关系运算关系运算 关系运算符用来比较两个值,返回布尔类型的值true或false。关系运算符都是二元运算符,如表3-5所示。运算符含义=等于!=不等于大于=大于等于=小于等于表3-5 Java中的关系运算符 Java允许“=”和“!=”两种运算符可用于任何数据类型。但只有数值类型可使用排序运算符进行比较,即只有整数、浮点数和字符运算数可以比较大小关系。 【例2.5】 Java中关系运算符的使用 三三 逻辑运算逻辑运算 逻辑运算符是指能参加布尔逻辑运算的运算符号。逻辑运算符的
19、运算数只能是布尔型,且其结果也是布尔型的值true或false,如表3-6所示。op1op2!op1op1&op2 op1|op2falsefalsetruefalsefalsefalsetruetruefalsetruetruefalsefalsefalsetruetruetruefalsetruetrue表3-6 Java中的逻辑运算符 对“或运算”,如果运算符左边表达式的值为true,则整个表达式的结果为true,不必对运算符右边的表达式再进行运算;同样,对“与运算”,如果运算符左边表达式的值为false,则不必对右边的表达式求值,整个表达式的结果为false。 【例2.6】 J
20、ava中逻辑运算符的使用 四四 位运算位运算 在Java语言中,位运算符有按位与运算符(&)、按位或运算符(|)、按位异或运算符()、按位取反运算符()、左移运算符()及无符号右移运算符()。1 1按位与运算(按位与运算(& &) 参与运算的两个数,如果相应位都为1,则该位结果为1,否则为0。 即:0&0=0,0&1=0,1&0=0,1&1=12 2按位或运算(按位或运算(| |) 参与运算的两个数,如果相应位都为0,则该位结果为0,否则为1。 即:0|0=0,0|1=1,1|0=1,1|1=13按位异或运算(按位异或运算() 参与运算的
21、两个数,如果相应位相同,则该位结果为0,否则为1。 即:00=0,01=1,10=1,11=04按位取反运算(按位取反运算() 按位取反运算符()属于一元运算符,它只对一个运算数进行操作。按位取反生成与输入位相反的值若输入0,则输出1;若输入1,则输出0。 即:0=1,1=05左移运算(左移运算() 左移运算符()使指定值的所有位都左移规定的位数,右边的空位补0。例如: int a=64,b; b=a) 右移运算符()使指定值的所有位都右移规定的位数,左边的空位补以原来最高位的内容。例如: int a=16,b=-8,c; c=a2;/c=4 c=b2; /c=-27无符号右移运算(无符号右移
22、运算() 无符号右移运算符()使指定值的所有位都右移规定的位数,左边的空位补0。例如: int a=16,b=-8,c; c=a2;/c=4 c=b2; /c=1073741822【例【例2.7】 Java中位运算符的使用中位运算符的使用 五五 其他运算符其他运算符 1 1三目条件运算符(?:)三目条件运算符(?:) 在Java语言中,三目条件运算符(?:)与C语言中的使用规则是完全一致的,使用的形式是: x ? y : z; 运算规则:先计算表达式x的值,若x为真,则整个条件表达式的值就是表达式y的值;若x为假,则整个条件表达式的值就是表达式z的值。 下面的例子实现了从两个数中找出较大数的功能。 int a=3,b=4; int max=ab?a:b; max的值为4。 三目条件运算是可以嵌套的,如有以下的语句,则max表示的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026海南国资运营招聘14人备考题库【必考】附答案详解
- 2026上海市青浦区教育系统公开招聘高端教育人才(第三轮)备考题库【网校专用】附答案详解
- 2026上海华东师范大学教育学部社会服务与事业发展部招聘考前冲刺密卷附答案详解【典型题】
- 关于本季度产品退货事宜的协商函(5篇)范文
- 2026年病理科常见疾病组织病理学诊断模拟考核试题及答案解析
- 中学校园网络工程技术方案
- 悬挑式脚手架安全监理实施细则
- 铁路桥梁总体设计方案
- 树莓种植项目验收报告
- 施工升降机安装质量验收报告
- 2025年一级建造师考试《矿业工程》真题及答案
- 2025至2030中国休闲组合鞋底行业发展研究与产业战略规划分析评估报告
- 2026年油藏数值模拟技术新进展:智能化与国产化创新
- T-CCIAA 48-2025 混合苯标准规范
- 2026年实验室生物安全责任书(标准)
- 社区宗教包保责任制度
- 压力容器制造(含设计)许可鉴定评审实施细则
- 2025-2030药用植物资源循环利用优化方案设计及国际化产业运营模式探讨
- 2026年官方兽医牧运通考试题库附答案
- 2025年光伏电站运维知识题库(附答案)
- (2026)肠内营养指南与共识课件
评论
0/150
提交评论