下载此文档

(精品)第2章.docx


文档分类:高等教育 | 页数:约21页 举报非法文档有奖
1/21
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/21 下载此文档
文档列表 文档介绍
该【(精品)第2章 】是由【286919636】上传分享,文档一共【21】页,该文档可以免费在线阅读,需要了解更多关于【(精品)第2章 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。• 13 •
• 32 •
Java 从入门到精通
第 2 章 Java 基本语言
第 2 章
Java 基本语言
在上一章中,读者已经了解了如何搭建 Java 开发环境及 Java 程序的开发过程。从本章
开始讲解 Java 的基本语言。这些基本语言的语法和其他一些编程语言相比有些是类似的,但还有很多不同之处,读者最好花一定的时间来了解这些最基本的语法。
基础语言要素
一个 Java 程序是由很多部分组成,其中任何一个单词都有它存在的意义。这些单词就是构成一个 Java 程序的基本语言要素。本节就来讲解这些基本语言要素,包括标识符、关键字、分隔符和注释等。
标识符
标识符是程序员为自己定义的类、方法或者变量等起的名称,例如第 1 章程序中的
HelloWorld 和 main 都是标识符,其中 HelloWorld 是类名,main 是方法名,除此之外还可以为变量名、类型名、数组名等。
在 Java 语言中规定标识符由大小写字母、数字、下划线(_)和美元符号($)组成,但是不能以数字开头。例如 HelloWorld、Hello_World、$HelloWorld 都是合法的标识符。但是如下几种就不是合法的标识符。
555HelloWorld(以数字开头)。
¥HelloWorld(具有非法字符¥)。
在 Java 中标识符是严格区分大小写的,Hello 和HELLO 是完全不同的标识符。
注意:标识符不能使用 Java 语言中的关键字,关键字的概念将在下一小节中进行讲解。
正确的标识符不一定是一个好的标识符。在一个大型的程序中,经常要定义上百个标识符,如果没有好的标识符命名习惯,就很可能造成混乱。所以标识符的命名要表达含义,例如定义一个学生类,就使用 Student 来进行命名,而不要为了省事定义为 SD。除此之外,还应有一些根据不同标识符定义的习惯。
包名:使用小写字母。
类名和接口名:通常定义为由具有含义的单词组成,所有单词的首字母大写。
方法名:通常也是由具有含义的单词组成,第一个单词首字母小写,其他单词的首字母都大写。
变量名:成员变量和方法相同,局部变量全部使用小写。
常量名:全部使用大写,最好使用下划线分隔单词。
在本书中,由于前面的程序大部分都是非常简单的,所以命名是很简单的。但是读者一
定要从开始就养成好的命名习惯,这样才能在后面的团队开发中适应工作要求。
• 33 •
• 14 •
关键字
在过去封建社会中,出现过文字狱,例如不能使用皇帝名字中的字,在朱元璋面前不能
提“和尚”两个字等。同样在 Java 语言中也存在这样的“文字狱”,这些字就是 Java 中的关键字,程序员是不能使用这些关键字作为标识符的,这些关键字只能由系统来使用。在程序中,关键字具有特殊的意义,Java 平台根据关键字来执行程序操作。
在很多 Java 书中讲解关键字时都是给出一个表格,然后告诉读者这些是关键字,一定要
深刻记忆这些关键字。其实没有几个读者会认真地看完这五十个左右的关键字,更别提记忆
了。这里作者简单地给这些关键字分一下类,并进行简单的讲解,让大家有一个简单的了解, 在后面的讲解中还要对大部分关键字进行详细的讲解。
1.访问修饰符关键字
在 HelloWorld 程序中出现的第一个单词就是public,它就是一个访问修饰符关键字。修饰符关键字包括如下几种。
public:所修饰的类、方法和变量是公共的,其他类可以访问该关键字修饰的类、方法或者变量。
protected:用于修饰方法和变量。这些方法和变量可以被同一个包中的类或者子类进行访问。
private:同样修饰方法和变量。方法和变量只能由所在类进行访问。
2.类、方法和变量修饰符关键字
class:告诉系统后面的单词是一个类名,从而定义一个类。
interface:告诉系统后面的单词是一个接口名,从而定义一个接口。
implements:让类实现接口。
extends:用于继承。
abstract:抽象修饰符。
static:静态修饰符。
new:实例化对象。
还有几种并不常见的类、方法和变量修饰符,例如 native、strictfp、synchronized、transient
和 volatile 等。
3.流程控制关键字
流程控制语句包括 if-else 语句、switch-case-default 语句、for 语句、do-while 语句、break 语句、continue 语句和 ruturn 语句,这都是流程控制关键字。还有一个关键字应该也包括在流程控制关键字中,那就是 instanceof 关键字,用于判断对象是否是类或者接口的实例。
4.异常处理关键字
异常处理的基本结构是 try-catch-finally,这三个单词都是关键字,异常处理中还包括
throw 和throws 这两个关键字。assert 关键字用于断言操作中,也算是异常处理关键字。
5.包控制关键字
Java 从入门到精通
第 2 章 Java 基本语言
• 15 •
• 32 •
包控制关键字只有两个,分别是 import 和package。inport 关键字用于将包或者类导入到程序中;pachage 关键字用于定义包,并将类定义到这个包中。
6.数据类型关键字
Java 语言中有 8 种基本数据类型,每一种基本数据类型都需要一个关键字来定义,除布尔型(boolean)、字符型(char)、字节型(byte)外,还有数值型。数值型又分为 short、
int、long、flort 和 double。
7.特殊类型和方法关键字
super 关键字用于引用父类,this 关键字用于应用当前类对象。void 关键字用于定义一般方法,该方法没有任何返回值。在HelloWorld 程序中的 main 方法前就有该关键字。
8.没有使用的关键字
在关键字家族中有两个另类,那就是 const 和 goto。在前面已经知道关键字是系统使用的单词,但是对于这两个另类虽然是关键字,但是系统并没有使用他们。这是初学者应特别注意的地方,在一些考试或者公司面试中经常会问到这个问题。
最后说一个显而易见,但是很多人注意不到的问题,那就是所有的关键字都是小写的, 如果采用了大写,那就肯定不是关键字。
注释
注释在前面介绍使用 Eclipse 开发 Java 程序时已经看到了,工具会自动产生一些注释, 后面作者又将自动生成的注释去掉,然后加上自定义的注释。从这里可以看到注释对于程序的运行是不起作用的。
注释添加在代码中,是给程序员看的,当系统运行程序,读取注释时会越过不执行。随着技术的发展,现在具有百万行代码的程序已经很常见了,在这样一个大型的代码中,如果没有注释,可想而知对于后面的修改和维护会产生多大的麻烦。在 Java 语言中提供了完善的注释机制,具有三种注释方式,分别是单行注释(//)、多行注释(/* */)和文档注释(/** */)。具有良好的注释习惯是一个优秀程序员不可缺少的职业素质。
在本书中将主要采用单行注释来对开发的程序进行注释。这有可能并不符合某些公司的开发规范,这里主要是为了讲解知识。读者工作中可以根据自己的开发需要,学习相关的开发规范。
基本数据类型
Java 是一门强数据类型语言,Java 程序中定义的所有数据都有一个固定的数据类型。Java中的数据类型基本可以分为两类:基本数据类型(也称原始数据类型)和复合数据类型。在 本节中主要讲解基本数据类型,复合数据类型在后面的章节中将会讲到。学习数据类型的重 点是了解每一种数据类型的取值范围。
Java 从入门到精通
第 2 章 Java 基本语言
• 33 •
• 16 •
常量和变量
在正式学习 Java 中的基本数据类型前,先来学习一下数据类型的载体常量和变量。从名
称上就可以看出常量和变量的不同,常量表示不能改变的数值,而变量表示能够改变的数值。这里先来看一个计算圆面积的程序。
public class YuanMianJi {
public static void main(String[ ] args) {
final double PI=; //定义一个表示 PI 的常量int R=5; //定义一个表示半径的变量double ymj=PI*R*R; //计算圆的面积
("圆的面积等于"+ymj);
}
}
Java 从入门到精通
第 2 章 Java 基本语言
• 17 •
• 32 •
图 2-1 常量和变量实例
运行该程序,运行结果如图 2-1 所示。
在求圆面积时需要两个值,分别是 PI 和半径。其中 PI 是一个固定的值,可以使用常量来表示,也就是该程序的第 3 行代码,从而知道定义常量需要
final 这个关键字。圆的半径是变化的,所以需要使用一个变量来表示。在上面代码中的常量和变量前都有一个关键字 double 和 int,它们就是这一节将要讲到的数据类型。
Java 从入门到精通
第 2 章 Java 基本语言
• 33 •
• 32 •
整数类型
什么是整数这个问题在小学中就学过了,在 Java 中用户存放整数的数据类型称为整数类型。整数类型根据占用的内存空间位数不同可以分为 4 种,分别是 byte(字节型)、short(短整型)、int(整型)和 long(长整型),定义数据时默认为 int 类型。内存空间位数决定了数据类型的取值范围,表 2-1 中给出了整数类型的位数和取值范围的关系。
表 2-1 整数类型
整数类型
位数
取值范围
字节型
8
-27~27-1
短整型
16
-215~215-1
整型
32
-231~231-1
长整型
64
-263~263-1
注意:在面试或者考试中并不会直接问某一类型的取值范围,而是问具体某一实际例子该使用什么类型,例如表示全球人口该使用什么数据类型。
在 Java 中可以通过 3 种方法来表示整数,分别是十进制、八进制和十六进制。其中十进制都已经非常熟悉了。八进制是使用 0~7 来进行表示的,在 Java 中,使用八进制表示整数必
Java 从入门到精通
第 2 章 Java 基本语言
• 33 •
• 32 •
public class JinZhi {
public static void main(String[ ] args) {
int a10=12; //定义一个十进制数值
int a8=012; //("十进制 12 等于"+a10);
("八进制 12 等于"+a8);
}
}
须在该数的前面放置一个“0”。看下面十进制和八进制数值进行比较的程序。
运行该程序,运行结果如图 2-2 所示。
在程序中定义了两个整型数据类型的变量,值分别是“12”和“012”,如果认为这两个数值相同,那就错了。当一个数值以“0”开头,则表示该数值是一个八进制数值,从运行结果中也可以看到该值为十进制的 10。
除了十进制和八进制外,整数的表示方法还有十六进制。表示十六进制数值除了 0~9 外, 还使用 a~f 分别表示从 10 到 15 的数值。表示十六进制时,字母是不区分大小写的,也就是
public class JinZhi16 {
public static void main(String[ ] args) {
int a1=0X12; //定义一个以数字表示的十六进制整数int a2=0xcafe; //定义一个以字母表示的十六进制整数
("第一个十六进制数值等于"+a1);
("第二个十六进制数值等于"+a2);
}
}
a 表示 10,A 也表示 10。十六进制同八进制一样,也有一个特殊的表示方式,那就是以“0X” 或者“0x”开头。看下面这个使用十六进制表示整数的程序。
运行该程序,运行结果如图 2-3 所示。
图 2-2 十进制和八进制对比 图 2-3 十六进制
该程序中的 0xcafe 是很容易让人迷惑的,在一些面试中经常使用这样的程序来考程序员的细心程度。读者一定要了解它就是一个使用十六进制表示的整数。
在使用 3 种方法表示整数时,都被定义为 int 类型。这里完全可以定义为其他几种整数类型。但这里需要注意的是如果定义为 long 长整型,则需要在数值后面加上 L 或者 l,例如定义长整型的 12 数值,则应该为 12L。
浮点类型
浮点类型和整数类型一样,也是用来表示数值。整数类型是表示整数,而浮点类型表示
Java 从入门到精通
第 2 章 Java 基本语言
• 33 •
• 20 •
类型
位数
取值范围
单精度浮点类型
32
-45~+38
双精度浮点类型
64
-324~+308
public class FuDian {
public static void main(String[ ] args) {
float f=; //定义一个单精度浮点类型
double d1=; //定义一个不带后缀的双精度浮点类型double d2=; //定义一个带后缀的双精度浮点类型
("单精度浮点类型数值等于"+f);
("双精度浮点类型数值等于"+d1);
("双精度浮点类型数值等于"+d2);
}
}
的是小数,在 Java 中不称作小数,而称之为浮点数。浮点类型就是表述 Java 中的浮点数。Java 中的浮点类型分为两种,分别是单精度浮点类型和双精度浮点类型。表 2-2 给出了两种浮点类型的取值范围。
表 2-2 浮点类型
在前面学习计算圆面积时,已经使用到了双精度浮点类型,Java 中默认的浮点类型也是双精度浮点类型。当使用单精度浮点类型时,必须在数值后面跟上 F 或者 f,这和 long 类型是一样的。在双精度浮点类型中,也可以使用D 或者d 为后缀,但是它不是必须的,因为双精度浮点类型是默认形式。看下面定义浮点类型的程序。
Java 从入门到精通
第 2 章 Java 基本语言
• 21 •
• 32 •
图 2-4 浮点类型
运行该程序,运行结果如图 2-4 所示。
在该程序中,如果将定义单精度浮点类型数值后的 f 去掉,该程序就会发生错误。从定义的是否带 D 后缀的两个双精度浮点类型数值结果可以看出,定义双精度浮点类型时,是否有后缀对结果是没有变化的。
Java 从入门到精通
第 2 章 Java 基本语言
• 33 •
• 32 •
字符类型
在开发中,经常要定义一些字符,例如“A”,这时候就要用到字符类型。在 Java 中, 字符类型就是用于存储字符的数据类型。在 Java 中,有时会使用 Unicode 码来表示字符。在
public class ZiFu {
public static void main(String[ ] args) { char a='A';
char b='\u003a';
("第一个字符类型的值等于"+a);
("第二个字符类型的值等于"+b);
Unicode 码中定义了至今人类语言的所有字符集,Unicode 码是通过“\uxxxx”来表示的,x 表示的十六进制数值。Unicode 编码字符是用 16 位无符号整数表示的,即有 216 个可能值, 也就是 0~65535。看下面定义字符类型的程序。
Java 从入门到精通
第 2 章 Java 基本语言
• 33 •
• 32 •
}
}
Java 从入门到精通
第 2 章 Java 基本语言
• 33 •
• 24 •
运行该程序,运行结果如图 2-5 所示。
从程序可以看到,定义字符类型数值时,可以直接定义一个字符,也可以使用 Unicode 码来进行定义。由于 Unicode 码表示的是全人类字符,所以大部分是看不懂的。还有一些是受操作系统的影响不能显示的,通常会显示为一个问号,所以当显示问号时,可能该 Unicode 表示问号,更有可能是因为该 Unicode 所表示的字符不能正确显示造成的。

图 2-5 字符类型
Java 从入门到精通
第 2 章 Java 基本语言
• 33 •
• 32 •
在运行结果的显示中,会有一些内容不能显示,例如回车、换行等效果。在 Java 中为了解决这个问题,定义了转义字符。转义字符通常使用“\”开头,在表 2-3 中列出了 Java 中的部分转义字符。
表 2-3 转义字符
转义
说明
转义
说明
\'
单引号
\n
换行
\"
双引号
\f
换页
\\
斜杠
\t
跳格
\r
回车
\b
退格
public class ZhuYiZiFu {
public static void main(String[ ] args) { ("Hello \n World"); ("Hello \\n World");
}
}
在 Java 中,单引号和双引号都表示特定的作用,所以如果想在结果中输入这两个符号, 就需要使用转义字符。由于转义字符使用的符号是斜杠,所以如果想输出斜杠时,就需要使用双斜杠。看下面使用转义字符的程序。
Java 从入门到精通
第 2 章 Java 基本语言
• 33 •
• 32 •
图 2-6 转义字符
运行该程序,运行结果如图 2-6 所示。
从运行结果中可以看到,当把“\n”放到一个字符中输出时,并不是作为字符串输出,而是起到换行的作用。但是如果想直接输出“\n”时,同样需要使用转义字符,先输出一个“\”,然后后面跟上“n”,这样就输出“\n”这个字符。
布尔类型
Java 从入门到精通
第 2 章 Java 基本语言
• 33 •
• 32 •
在 C 语言或者其他一些编程语言中,使用数字来表示 true 和 false。在 Java 中,true 和
Java 从入门到精通
第 2 章 Java 基本语言
• 33 •
• 32 •
false 的待遇明显提高了,为这两个值单独定义了一种数据类型,那就是布尔类型。布尔类型
是用于判断逻辑值真假的数据类型。
所有的关系运算的返回类型都是布尔类型。布尔类型也大量应用在控制语句中。运算符和控制语句将在后面的介绍中进行讲解。
数据类型转换
讲完基本数据类型后,在本节中讲解一个重要的知识点,那就是数据类型转换。在前面的学习中,已经知道 Java 是一门强数据类型语言,所以当遇到不同数据类型同时操作时,就需要进行数据类型转换。数据类型转换要满足一个最基础的要求,那就是数据类型要兼容。例如将一个布尔类型转换成整数类型是肯定不能成功的。在 Java 中,有两种数据类型转换方式,分别是自动类型转换和强制类型转换。
自动类型转换
在前面学习计算圆面积时已经看到,在程序中定义了半径为 int 类型,而计算的面积为
public class ZiDongZhuanHuan {
public static void main(String[ ] args) {
short s=3; //定义一个 short 类型变量
int i=s; //short 自动类型转换为 int
float f=; //定义一个 float 类型变量
double d1=f; //float 自动类型转换为 double
long l=234L; //定义一个 long 类型变量
double d2=l; //long 自动类型转换为 double
("short 自动类型转换为 int 后的值等于"+i);
("float 自动类型转换为 double 后的值等于"+d1);
("long 自动类型转换为 double 后的值等于"+d2);
}
}
double 类型,这里就用到了自动类型转换。自动类型转换除了前面讲过的数据类型要兼容外, 还需要转换前的数据类型的位数要低于转换后的数据类型。先来看下面的程序。
运行该程序,运行结果如图 2-7 所示。
从该程序中可以看出位数低的类型数据可以自动转换成位数高的类型数据。例如 short 数据类型的位数为 16,就可以自动转换为位数为 32 的 int 类型。同样 float 数据类型的位数为 32,则就可以自动转换为 64 位的 double 类型。
由于整数类型和浮点类型的数据都是数值,则它们之间也是可以互相转换的,从而有了
long 类型自动转换为double 类型,但是需要注意的是,转换后的值相同,但是表示上一定要在后面加上小数位,这样才能表示为 double 类型。
需要注意的是,整数类型转换成浮点类型值可能会发生变化,这是由浮点类型的本身定义决定的。计算机内部是没有浮点数的,浮点数是靠整数模拟计算出来的,比如说 其实
Java 从入门到精通
第 2 章 Java 基本语言
• 29 •
• 32 •
就是 1/2,所以这样的换算过程难免存在误差。看一个整数类型自动转换为浮点类型的程序。
运行程序,运行结果如图 2-8 所示。
public class ZiDongZhuanHuan2 {
public static void main(String[ ] args) {
int l=234234234; //定义一个 long 类型变量
float d=l; //int 自动类型转换为 double
("int 自动类型转换为 float 后的值等于"+d);
}
}
图 2-7 自动类型转换 图 2-8 整数转浮点数
从程序和运行结果中可以看到,程序定义的 int 类型为 234234234,而自动转换后的 float
类型为 。
public class ZiDongLeiZhuan3 {
public static void main(String[ ] args) {
char c1='a'; //定义一个 char 类型
int i1=c1; //char 自动类型转换为 int
("char 自动类型转换为 int 后的值等于"+i1); char c2='A'; //定义一个 char 类型
int i2=c2+1; //char 类型和 int 类型计算
("char 类型和 int 类型计算后的值等于"+i2);
}
}
在前面学习字符类型时,已经知道字符类型占 16 数据位,而且也可以使用 Unicode 码来表示,因此字符类型也可以自动转换为 int 类型的,从而还可以自动转换为更高位的 long 类型,以及浮点类型。看下面字符类型自动类型转换为 int 类型的程序。
Java 从入门到精通
第 2 章 Java 基本语言
• 33 •
• 30 •
运行该程序,运行结果如图 2-9 所示。
从程序可以看到,定义的字符类型数据显示出来后为 97 这个数值,这里就是进行了自动转换。而且字符类型还可以作为数值进行计算,学习下一小节的强制类型转换内容,对计算后的数值进行强制类型转换后,会发现输出的结果是B 这个字符。
强制类型转换

图 2-9 字符转换为int 类型
Java 从入门到精通
第 2 章 Java 基本语言
• 33 •
• 32 •
在上一小节中已经学习了自动类型转换,自动类型转换是从低位数转换为高位数。有些读者就会有疑问,高位数的数据是否能转换为低位数的数据,这是可以的,这里就要用到强制类型转换。强制数据类型转换的前提条件也是转换的数据类型必须兼容。强制类型转换是
Java 从入门到精通
第 2 章 Java 基本语言
• 33 •
• 32 •

(精品)第2章 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数21
  • 收藏数0 收藏
  • 顶次数0
  • 上传人286919636
  • 文件大小438 KB
  • 时间2025-02-12