Java语言主要由以下五种元素组成:标识符、关键字、文字、运算符和分隔符。这五种元素有着不同的语法含义和组成规则,它们互相配合,共同完成Java语言的语意表达。
1 标识符
变量,以及我们后面将要讲到的类和方法都需要一定的名称,我们将这种名称叫做标识符。佬是一个有效的标识符呢?在Java中,所有的标识符都必须以一个字母、下划线_或美元符¥作开头。后面的字符包括数字(0--9),所有从A--Z的大写字母和a--z的小写字母,以及所有在十六进制0xc0前的ASCII码。
以上只是标识符命名的基本规则,以下是一个正误对照表,通过它会对标识符的命名规则有一个具体的了解:
以上只是标识符命名的基本规则,以下是一个正误对照表,通过它会对标识符的命名规则有一个具体的了解:
合法标识符 非法标识符
try try#
group_7 7group
opendoor open-door
boolean_1 boolean
表4-11
注:boolean 为关键字
2 关键字
关键字是Java语言本身使用的标识符,它有其特定的语法含义。所有的Java关键字将不能被用作标识符,如:for、while、boolean等都是Java语言的关键字。本书后附有Java语言关键字列表。
3 文字
文字,其实就是我们通常所说的数据。文字的不同表现形式,也就是不同的数据类型,Java的数据类型有:整型、浮点型、布尔型、字符型、字符串型。
整型数据是最普通的数据类型,它的表现方式有:十进制、十六进制和八进制。基数为10
整型数据是最普通的数据类型,它的表现方式有:十进制、十六进制和八进制。基数为10
的十进制是我们最熟悉的。基娄为16的十六进制表示法,也是程序设计中常常用到的,在十六进制中,每一位数字相当于4个二进制0和1的组合。十六进制整数用0--9的10个数字和字母A--F代表10--15这些整数,十六进制整数必须以0X作为开头。
每一个整型数据占有32位的存储空间,即四个字节。这意味着整型数据所表示,的范围在-2,147,483,648和2,147,483,648之间,假如由于某些原因,你必须表示一个更大的数,64位的长整型应该是足够的。如果你想把一个整数强制存为一个长型(long),你可以在数字后面加字母l。
浮点数据用来代表一个带小数的十进制数。例如1.5或43.7。它父或者是标准形式,或者是用科学计数法的形式,下面是一些例子:
3.1415 0.1 .6 .02243 2.997E8
标准的浮点数叫做单精度浮点数,它的存储空间为32位,也就是四个字节。也有64位的双精度浮点数。你可以用D后缀确定你想使用这种双精度浮点数。
布尔类型是最简单的一种数据类型,布尔数据只有两种状态:真和假,通常用关键字true和false来表示这两种状态。
字符型数据是由一对单引号括起来的单个字符。它可以是字符集中的任意一个字符,如:'a
每一个整型数据占有32位的存储空间,即四个字节。这意味着整型数据所表示,的范围在-2,147,483,648和2,147,483,648之间,假如由于某些原因,你必须表示一个更大的数,64位的长整型应该是足够的。如果你想把一个整数强制存为一个长型(long),你可以在数字后面加字母l。
浮点数据用来代表一个带小数的十进制数。例如1.5或43.7。它父或者是标准形式,或者是用科学计数法的形式,下面是一些例子:
3.1415 0.1 .6 .02243 2.997E8
标准的浮点数叫做单精度浮点数,它的存储空间为32位,也就是四个字节。也有64位的双精度浮点数。你可以用D后缀确定你想使用这种双精度浮点数。
布尔类型是最简单的一种数据类型,布尔数据只有两种状态:真和假,通常用关键字true和false来表示这两种状态。
字符型数据是由一对单引号括起来的单个字符。它可以是字符集中的任意一个字符,如:'a
','b'。
字符串数据类型是用一对双引号括起来的字符序列,字符串数据实际上是由String类所实现(类这个概念我们将在后续章节中详细讲解),而不是C语言中所用的字符数组。每一个字符串数据将产生一个String类的新的实例,读者不必对字符串与类这个概念发生关系而感到担心,由于类的特性,你不必担心如何去实现它们,它们会自己照顾好自己,需要说明的是字符串在Java里作为类只是出于安全的考虑。
表4-2给出了几个字符串的例子。
字符串数据类型是用一对双引号括起来的字符序列,字符串数据实际上是由String类所实现(类这个概念我们将在后续章节中详细讲解),而不是C语言中所用的字符数组。每一个字符串数据将产生一个String类的新的实例,读者不必对字符串与类这个概念发生关系而感到担心,由于类的特性,你不必担心如何去实现它们,它们会自己照顾好自己,需要说明的是字符串在Java里作为类只是出于安全的考虑。
表4-2给出了几个字符串的例子。
字符串描述 对应值
""
"Let's go" Let's go
"Two" Two
Lines
表 4-2 几个例子
注:''在这里表示回车换行。
4 运算符
任何语言都有自己的运算符,Java语言也不例外,如+、-、*、/等都是运算符,运算符的作用是与一定的运算数据组成表达式来完成相应的运算。对不同的数据类型,有着不同的运算符,我们将在下一节中对不同类型的运算符分别讨论。
5 分隔符
分隔符用来使编译器确认代码在何处分隔。‘’‘’‘;’‘:’都是Java语言的分隔符。
为了在Java中存储一个数据,必须将它容纳在一个变量之中。定义一个变量的两个基
本要素是:类型和标识符,通常你可以用如下语法去说明变量:
java变量的数据类型分为两种 type identifer[,identifer]; 该语句告诉编译器用“type”的类型和以“identifer”为名字建立一个变量,这里的分号将告诉编译器这是一个说明语句的结束;方格中的逗号和标识符表示你可以把几个类型相同的变量放在同一语句进行说明,变量名中间用逗号分隔。
在你创建了一个变量以后,你可以给它赋值,或者用运算符对它进行一些运算。如同上一节内容中所提到的一样,类型将决定变量所代表的不同种类的数据,在Java语言中有两种变量。最基本的是简单类型变量,他们不建立在任何其他类型上,整数、浮点、布尔和字符类型都是这类型;另外Java可以定义构造另一种变量类型:类,这些类型建立在简单类型之上,它包括数值、变量和方法,是一种数据与代码相结合的复合结构。
java变量的数据类型分为两种 type identifer[,identifer]; 该语句告诉编译器用“type”的类型和以“identifer”为名字建立一个变量,这里的分号将告诉编译器这是一个说明语句的结束;方格中的逗号和标识符表示你可以把几个类型相同的变量放在同一语句进行说明,变量名中间用逗号分隔。
在你创建了一个变量以后,你可以给它赋值,或者用运算符对它进行一些运算。如同上一节内容中所提到的一样,类型将决定变量所代表的不同种类的数据,在Java语言中有两种变量。最基本的是简单类型变量,他们不建立在任何其他类型上,整数、浮点、布尔和字符类型都是这类型;另外Java可以定义构造另一种变量类型:类,这些类型建立在简单类型之上,它包括数值、变量和方法,是一种数据与代码相结合的复合结构。
1 整型变量的说明
整型变量按所占内存大小的不同可分为四种不同的类型,最短的整型是byte,它只有八位长,然后是短整型short,它有16位,int类型有32位,长整型long是64位,下面是这些整型变量的说明示例。
byte a;
short row;
int numberOfSportor;
long treeCount;
int x,y,z;
short row;
int numberOfSportor;
long treeCount;
int x,y,z;
2 浮点变量的说明
浮点类型可用关键字float或double来说明,float型的浮点变量用来表示一个32位的单精度浮点数,而double型的浮点变量用来表示一个64位的双精度浮点数。double型所表示的浮点数比float型更精确。
float alpha;
double speed;
float alpha;
double speed;
3 字符变量说明
Java使用16位的Unicode字符集。因此Java字符是一个16位的无符号整数,字符变量用来
存放单个字符,它不是完整的字符串。示例如下:
char a;
a='c';
char a;
a='c';
4 布尔变量说明
布尔型有真和假两个逻辑值,另外,逻辑运算符也将返回布尔类型的值,示例如下:
boolean mouseOn;
mouseOn=true;
布尔型是一个独立的类型,它不像C语言中的布尔型代表0和1两个整数,由于这个原因,Java中的布尔类型不能转换成数字。
boolean mouseOn;
mouseOn=true;
布尔型是一个独立的类型,它不像C语言中的布尔型代表0和1两个整数,由于这个原因,Java中的布尔类型不能转换成数字。
5 变量的使用范围
当你说明了一个变量后,它将被引入到一个范围当中,也就是说,该名字只能在程序的特定范围内使用。变量的使用范围是从它被说明的地方到它所在那个块的结束处,块是由两个大括号所定义的,例如:
class Example
public static void main(String args[])
int i;
......
public void function()
char c;
......
整型变量i在方法main中说明,因为main的块不包括function块,所以任何在function块中对i的引用都是错误的。对字符型变量c也同样如此。
在某一个特定情形中,变量能被别的变量所隐藏,如:在一个块中说明一个变量,而在这个块中建立一个新块并且在其中定义相同名字的变量,这样在第二个块中,程序对该变量的使用均是指第二次定义的那个变量。这样我们说,第一个变量被隐藏了。变量隐藏的示例如下:
在某一个特定情形中,变量能被别的变量所隐藏,如:在一个块中说明一个变量,而在这个块中建立一个新块并且在其中定义相同名字的变量,这样在第二个块中,程序对该变量的使用均是指第二次定义的那个变量。这样我们说,第一个变量被隐藏了。变量隐藏的示例如下:
class Example
public static void main(String args[])
int i; // * * *
boolean try=true;
while(try)
int i; //以下对变量i的引用均指这里定义的i
......
//以下对变量i的引用均指* * *处定义的i
......
当你定义一个变量时,首先必须明确它的活动范围,并根据它的实际功能来命名,此外还应尽量使用详细的注释,这些办法可以使你能够清晰地区分变量,变量被隐藏的问题也会大大减少。
6 类型转换
系统方法ad返回一个整型数值,但你却常常想要把它当作一个字符来使用。现
在的问题是,当有一个整数而你需要把变成一个字符时应当去做些什么呢?你需要去做一个类型转换为一个字符。从一种类型转换到另一种类型可以使用下面的语句:
int a;
char b;
a=(int)b;
加括号的int告诉编译器你想把字符变成整型并把它放在a里,另一方面,如果你想做相反的转换,你可以使用:
b=(char)a;
记住整型和字符型变量位长不同是非常重要的,整型是32位长,字符型是16长,所以当你从整型转换到字符型可能会丢失信息。同样,当你把64位的长整型数转换为整型时,由于长整型可能有比32位更多的信息,你也很可能会丢失信息。即使两个量具有相同的位数,比如整和浮点型(都是32位),你在转换小数时也会丢失信息,Java不象c/c++那样允许自动类型转换,当你进行类型转换要注意使目标类型能够容纳原类型的所有信息,不会丢失信息的类型转换有:
int a;
char b;
a=(int)b;
加括号的int告诉编译器你想把字符变成整型并把它放在a里,另一方面,如果你想做相反的转换,你可以使用:
b=(char)a;
记住整型和字符型变量位长不同是非常重要的,整型是32位长,字符型是16长,所以当你从整型转换到字符型可能会丢失信息。同样,当你把64位的长整型数转换为整型时,由于长整型可能有比32位更多的信息,你也很可能会丢失信息。即使两个量具有相同的位数,比如整和浮点型(都是32位),你在转换小数时也会丢失信息,Java不象c/c++那样允许自动类型转换,当你进行类型转换要注意使目标类型能够容纳原类型的所有信息,不会丢失信息的类型转换有:
原始类型 目标类型
byte short,char,int,long,float,double
short int,long,float,double
char int,long,float,double
int long,float,double
long float,double
float double
表3-3 不会丢失信息的类型转换列表
需要说明的是,当你执行一个这里并未列出的类型转换时可能并不总会丢失信息,不过进行这样一个理论上并不安全的转换总是很危险的。
1 类的基本概念
Java程序的基本单位是类。类的定义可以看作是建立对象的原形。你建立类之后,就可用它来建立许多你需要的对象。Java把每一个可执行的成分都变成类,使面向对象发展到极点。
类的基本定义成员函数如下:
类的基本定义成员函数如下:
class name
//Class information
在类定义的开始与结束处必须使用花括号。你也许想建立一个矩形类,那么可以用如下代码:
public class Rectangle
....
2 类的基本组成
一个类中通常都包含数据与函数两种类型的元素,我们一般把它叫作属性和成员函数,在很多时候我们也把成员函数称为方法(method)。将数据与代码通过类紧密结合在一起,就形成了现在非常流行的封装的概念。自然,类的定义也要包括以上两个部分。
class <classname>
<member data declarations>
发表评论