java简单语法概述.docx

上传人:b****7 文档编号:9969365 上传时间:2023-02-07 格式:DOCX 页数:35 大小:201.48KB
下载 相关 举报
java简单语法概述.docx_第1页
第1页 / 共35页
java简单语法概述.docx_第2页
第2页 / 共35页
java简单语法概述.docx_第3页
第3页 / 共35页
java简单语法概述.docx_第4页
第4页 / 共35页
java简单语法概述.docx_第5页
第5页 / 共35页
点击查看更多>>
下载资源
资源描述

java简单语法概述.docx

《java简单语法概述.docx》由会员分享,可在线阅读,更多相关《java简单语法概述.docx(35页珍藏版)》请在冰豆网上搜索。

java简单语法概述.docx

java简单语法概述

第二章标识符、关键字和类型

本模块阐述了在Java技术程序中使用的基本元素,包括变量、关键字、原始类型和类类型。

第三节注释

注释

三种允许的Java技术程序注释风格

//commentononeline

/*commentonone

ormoreline*/

/**documentingcomment*/

2.3.1概述

有三种插入注释的允许风格:

//commentononeline

/*commentononeormoreline*/

/**documentingcomment*/

紧放在声明(变量、方法或类的声明)之前的文档注释表明,注释应该被放在自动生成的文档中(由javadoc命令生成的HTML文件)以当作对声明项的描述。

 

注意------有关这些注释的格式和javadoc工具的使用,请见JDK1.2API文件的docs/tooldocs/win32目录

2.3.2分号、块和空白

分号、块和空白

-一个语句是一行用分号(;)终止的代码

totals=a+b+c+d+e+f;

-一个块是以上括号和下括号为边界的语句集合

x=y+1

y=x+1

在Java编程语言中,语句是一行由分号(;)终止的代码。

例如

totals=a+b+c+d+e+f;

与下式相同

total=a+b+c+

d+e+f;

一个块(block)或一个复合语句是以上括号和下括号()为边界的语句集合;块语句也被用来组合属于某个类的语句。

分号、块和空白(续)

分号、块和空白

-一个块可被用在一个类的定义中

publicclassDate

intday;

intmonth;

intyear;

-块语句可被嵌套

-Java程序中允许任意多的空白

语句块可被嵌套。

HelloWorldApp类由main方法构成,这个方法就是一个语句块,它是一个独立单元,单元本身可作为在类HelloWorldApp块中的一组事务之一。

其它一些块语句或组的例子如下:

//ablockstatement

{

x=y+1;

y=x+1;

}

Semicolons,Blocks,andWhitespace

//ablockusedinaclassdefinition

publicclassMyDate{

intday;

intmonth;

intyear;

}

//anexampleofablockstatementnestedwithin

//anotherblockstatement

while(i

a=a+i;

if(a==max){

b=b+a;//nestedblockishere

a=0;

}

}

在源代码元素之间允许空白,空白的数量不限。

空白(包括空格、tabs和新行)可以改善你的对源代码的视觉感受。

{

intx;

x=23*54;

}

intx

x=23+54;

}

第四节标识符

标识符

-是赋予变量、类和方法的名称

-可从一个字母、下划线(_)或美元符号($)开始

-是大小写区别对待的,且无最大长度

在Java编程语言中,标识符是赋予变量、类或方法的名称。

标识符可从一个字母、下划线(_)或美元符号($)开始,随后也可跟数字。

标识符是大小写区别对待的并且未规定最大长度。

有效标识符如下:

-identifier

-userName

-User_name

-_sys_varl

-$change

Java技术源程序采用有效的16-bit双字节字符编码标准(Unicode),而不是8-bitASCII文本。

因而,一个字母有着更广泛的定义,而不仅仅是a到z和A到Z。

谨慎对待非ASCII字符,因为Unicode可支持看似相同而实际不同的字符。

标识符不能是关键字,但是它可包含一个关键字作为它的名字的一部分。

例如,thisone是一个有效标识符,但this却不是,因为this是一个Java关键字。

Java关键字将在后面讨论。

注意──包含美元符号($)的关键字通常用的较少,尽管它在BASIC和VAX/VMS系统语言中有着广泛的应用。

由于它们不被熟知,因而最好避免在标识符中使用它们,除非有本地使用上的习惯或其他不得已的原因。

第五节Java关键字

表2-1列出了使用在Java编程语言中的关键字。

abstractdoimplementsprivatethrow

booleandoubleimportprotectedthrows

breakelseinstanceofpublictransient

byteextendsintreturntrue

casefalseinterfaceshorttry

catchfinallongstaticvoid

charfinallynativesupervolatile

classfloatnewswitchwhile

continuefornullsynchronized

defaultifpackagethis

关键字对Java技术编译器有特殊的含义,它们可标识数据类型名或程序构造(construct)名。

以下是有关关键字的重要注意事项:

-true、false和null为小写,而不是象在C++语言中那样为大写。

严格地讲,它们不是关键字,而是文字。

然而,这种区别是理论上的。

-无sizeof运算符;所有类型的长度和表示是固定的,不依赖执行。

-goto和const不是Java编程语言中使用的关键字。

第六节基本Java类型

Java编程语言定义了八个原始类型

-逻辑类boolean

-文本类char

-整数类byte,short,int,long

-浮点类double,float

2.6.1原始类型

Java编程语言为八个原始数据类型和一个特殊类型定义了文字值。

原始类型可分为四种:

-逻辑类boolean

-文本类char

-整数类byte,short,int,long

-浮点类double,float

2.6.2基本Java类型

1.逻辑类──boolean

逻辑值有两种状态,即人们经常使用的“on”和“off”或“true”和“false”或“yes”和“no”,这样的值是用boolean类型来表示的。

boolean有两个文字值,即true和false。

以下是一个有关boolean类型变量的声明和初始化:

booleantruth=true;//declaresthevariabletruth

//asbooleantypeandassignsit

//thevaluetrue

注意──在整数类型和boolean类型之间无转换计算。

有些语言(特别值得强调的是C和C++)允许将数字值转换成逻辑值,这在Java编程语言中是不允许的;boolean类型只允许使用boolean值。

2.文本类──char和String

文本类──char和String

char

-代表一个16-bitUnicode字符

-必须包含用单引号(’’)引用的文字

-使用下列符号:

‘a’

‘\t’一个制表符

‘\u?

?

?

?

’一个特殊的Unicode字符,?

?

?

?

应严格使用四个16进制数进行替换

使用char类型可表示单个字符。

一个char代表一个16-bit无符号的(不分正负的)Unicode字符。

一个char文字必须包含在单引号内(‘’)。

‘a’

‘\t’一个制表符

‘\u?

?

?

?

’一个特殊的Unicode字符。

?

?

?

?

应严格按照四个16进制数字进行替换

String不是原始类型,而是一个类(class),它被用来表示字符序列。

字符本身符合Unicode标准,且上述char类型的反斜线符号适用于String。

与C和C++不同,String不能用\0作为结束。

文本类──char和String

String

-不是一个原始数据类型,它是一个类

-具有用双引号引用的文字

“The quickbrownfoxjumpedoverthelazydog.”

-可按如下情形使用:

Stringgreeting=“GoodMorning!

!

\n”;

Stringerr_meg=“recordnotfound!

”;

文本类──char和String(续)

String的文字应用双引号封闭,如下所示:

“The quickbrownfoxjumpedoverthelazydog.”

Char和String类型变量的声明和初始化如下所示:

charch=`A';//declaresandinitializesacharvariable

charch1,ch2;//declarestwocharvariables

//declaretwoStringvariablesandinitializethem

Stringgreeting="GoodMorning!

!

\n";

Stringerr_msg="RecordNotFound!

";

Stringstr1,str2;//declaretwoStringvariables

2.6.3整数类──byte,short,int,long

在Java编程语言中有四种整数类型,每种类型可使用关键字byte,short,int和long中的任意一个进行声明。

整数类型的文字可使用十进制、八进制和16进制表示,如下所示:

2十进制值是2

077首位的0表示这是一个八进制的数值

0xBAAC首位的0x表示这是一个16进制的数值

注意──所有Java编程语言中的整数类型都是带符号的数字。

整数类──byte,short,int,long(续)

整数类文字属int类型,除非在其后直接跟着一个字母“L”。

L表示一个long值。

请注意,在Java编程语言中使用大写或小写L同样都是有效的,但由于小写l与数字1容易混淆,因而,使用小写不是一个明智的选择。

上述文字的long的形式如下:

2L十进制值是2,是一个long

077L首位的0表示这是一个八进制的数值

0xBAACL前缀0x表示这是一个16进制的数值

整数类──byte,short,int,long

每个整数数据类型具有下列范围:

IntegerLengthNameorTypeRange

8bitsbyte-27...27-1

16bitsshort-215...215-1

32bitint-231...231-1

64bitslong-263...263-1

整数类──byte,short,int,long(续)

四个整数类型的长度和范围如表2-2所示。

范围的表示是按Java编程语言规范定义的且不依赖于平台。

表2-2整数数据类型—范围

IntegerLengthNameorTypeRange

8bitsbyte-27...27-1

16bitsshort-215...215-1

32bitint-231...231-1

64bitslong-263...263-1

2.6.4浮点──float和double

浮点──float和double

-缺省为double

-浮点文字包括小数点或下列各项之一

-E或e(增加指数值)

-F或f(float)

-D或d(double)

3.14一个简单的浮点值(adouble)

4.02E23一个大浮点值

2.718F一个简单的float长度值

123.4E+306D一个大的带冗余D的double值

浮点变量可用关键字float或double来声明,下面是浮点数的示例。

如果一个数字文字包括小数点或指数部分,或者在数字后带有字母F或f(float)、D或d(double),则该数字文字为浮点。

3.14一个简单的浮点值(adouble)

4.02E23一个大浮点值

2.718F一个简单的float长度值

123.4E+306D一个大的带冗余D的double值

浮点──float和double

浮点数据类型具有下列范围:

浮点长度名称或类型

32bitsfloat

64bitsdouble

浮点──float和double(续)

表2—3浮点数据类型──范围

浮点长度名称或类型

32bitsfloat

64bitsdouble

注意──浮点文字除非明确声明为float,否则为double

第七节变量、声明和赋值

Java技术规范的浮点数的格式是由电力电子工程师学会(IEEE)754定义的,它使用表2—3的长度,并且是独立于平台的。

下列程序显示了如何为整数、浮点、boolean、字符和string类型变量声明和赋值。

1.publicclassAssign{

2.publicstaticvoidmain(Stringargs[]){

3.intx,y;//declareint

//variables

4.floatz=3.414f;//declareandassign

//float

5.doublew=3.1415;//declareandassign

//double

6.booleantruth=true;//declareandassign

//boolean

7.charc;//declarecharacter

//variable

8.Stringstr;//declareString

9.Stringstr1="bye";//declareandassign

//Stringvariable

10.c='A';//assignvaluetochar

//variable

11.str="Hioutthere!

";//assignvalueto

//Stringvariable

12.x=6;

13.y=1000;//assignvaluestointvariables

14....

15.}

16.}

非法赋值举例

y=3.1415926;//3.1415926isnotanint.

//Requirescastinganddecimalwill

//betruncated.

w=175,000;//thecommasymbol(,)cannotappear

truth=1;//acommonmistakemadebyex-C/C++

//programmers.

z=3.14156;//can'tfitdoubleintoa

//Float.Requirescasting.

第九节理解对象

 

2.9.1回顾对象的历史

早些时候的编程语言和初级程序员将每个变量看作相互无关的实体。

例如,如果一个程序需处理某个日期,则要声明三个单独的整数:

intday,month,year;

上述语句作了两件事,一是当程序需要日、月或年的有关信息时,它将操作一个整数;二是为那些整数分配存储器。

尽管这种作法很容易理解,但它存在两个重大缺陷。

首先,如果程序需同时记录几个日期,则需要三个不同的声明。

例如,要记录两个生日,你可能使用:

intmyBirthDay,myBirthMonth,myBirthYear;

intyourBirthDay,yourBirthMonth,yourBirthYear;

这种方法很快就会引起混乱,因为需要的名称很多。

第二个缺陷是这种方法忽视了日、月和年之间的联系并把每个变量都作为一个独立的值,每个变量都是一个独立单元(在本例中为date)的一部分并被相应地处理。

2.9.2创建一个新类型

为克服上述两种缺陷,Java编程语言使用类来创建新类型。

请看下列原始类型声明:

intday;

Java编程语言被用来分配一定量的存储器并解释该存储器的内容。

于是,要定义一个新的类型,你必须指出需要多大存储器和如何解释存储器内容。

这不是根据字节数或位的顺序和含义来做,而是根据已经定义的其它类型来做。

例如,要定义一个表示日期的类型,你需要足够的存储器存储三个整数变量;进而,日、月和年的意义即由这些整数变量给出。

如下所示:

classMyDate

intday;

intmonth;

intyear;

词class是Java编程语言的一个关键字,必须全部小写。

名称MyDate按照大小写的有关约定处理,而不是由语意要求来定。

注意-----class不仅仅是一个集合数据类型,这个问题以后还将进一步讨论。

一个变量可被声明为归属于类型MyDate,从而日、月和年部分将被隐含声明。

例如:

MyDatemyBirth,yourBirth;

使用这个声明,Java编程语言允许变量的部分(day,month和year)通过调用成员和使用点(·)运算符而被访问。

例如:

myBirth.day=26;

myBirth.month=11;

yourBirth.year=1960;

2.9.3创建一个对象

当任何原始类型(如boolean,byte,short,char,int,long,float或double类型)的变量被声明时,作为上述操作的一部分,存储器空间也同时被分配。

使用非原始类型(如String或class)的变量的声明不为对象分配存储器空间。

事实上,使用class类型声明的变量不是数据本身,而是数据的引用(reference)。

注意----你也可以认为引用是一个指针(pointer),这可能会有助于你的理解。

实际上,在大多数实现中,也确实可以这样认为。

值得注意的是,Java编程语言实际上不支持指针数据类型。

在你可以使用变量之前,实际存储器必须被分配。

这个工作是通过使用关键字new来实现的。

如下所示:

MyDatemyBirth;

myBirth=newMyDate();

第一个语句(声明)仅为引用分配了足够的空间,而第二个语句则通过调用对象为构成MyDate的三个整数分配了空间。

对象的赋值使变量myBirth重新正确地引用新的对象。

这两个操作被完成后,MyDate对象的内容则可通过myBirth进行访问。

假使定义任意一个classXXXX,你可以调用newXXXX()来创建任意多的对象,对象之间是分隔的。

一个对象的引用可被存储在一个变量里,因而一个”变量点成员”(如myBirth.day)可用来访问每个对象的单个成员。

请注意在没有对象引用的情况下,仍有可能使用对象,这样的对象称作”匿名”对象。

2.9.4创建一个对象----存储器分配和布局

在一个方法体中,声明

MyDatetoday

today=newMyDate();

仅为一个引用分配存储器

today

 

关键字new意味着存储器的分配和初始化

MyDatetoday;

today=newMyDate();

赋值则建立了引用变量,从而它可适当地引用新的创建对象

MyDatetoday;

today=newMyDate();

使用一个语句同时为引用today和由引用today所指的对象分配空间也是可能的。

MyDatetoday=newMyDate();

2.9.5引用类型的赋值

在Java编程语言中,用类的一个类型声明的变量被指定为引用类型,这是因为它正在引用一个非原始类型,这对赋值具有重要的意义。

请看下列代码片段:

intx=7;

inty=x;

Strings=“Hello”;

Stringt=s;

四个变量被创建:

两个原始类型int和两个引用类型String。

x的值是7,而这个值被复制到y;x和y是两个独立的变量且其中任何一个的进一步的变化都不对另外一个构成影响。

至于变量s和t,只有一个String对象存在,它包含了文本”Hello”,s和t均引用这个单一的对象。

将变量t重新定义,则新的对象World被创建,而t引用这个对象。

上述过程被描述如下:

2.9.6术语回顾

本模块中介绍了几个术语,简单回顾如下:

-类------在Java编程语言中定义新类型的一种途径。

类声明可定义新类型并描述这些类型是如何实现的。

有许多关于类的其它特性还未讨论。

-对象------一个类的实例。

类可被认为是一个模板------你正在描述一个对象模型。

一个对象就是你每次使用new创建一个类的实例的结果。

-引用类型------一个用户定义类型,它可引用类、界面和数组。

-成员------构成一个对象的元素之一。

这个词也被用作定义类的元素(elements)。

成员变量(membervariabl)、实例变量(instancevariable)和域(field)也经常被互换使用。

第三章表达式和流程控制

本模块讨论变量、运算符和算术表达式并列出不同的管理运行程序路径的控制结构。

第三节表达式

3.3.1变量和作用域

你已经看到了两种变量的描述方法:

原始类型变量和引用类型变量。

你也看到了变量被声明的位置:

在方法内(方法是面向对象的术语,它可引用函数或子程序,例如:

main())或在方法外但在类定义之内。

变量也可被定义为方法参数或构造函数参数。

在方法内定义的参数被称为局部(local)变量,有时也被用为自动(automatic)、临时(temporary)或栈(stack)变量。

在方法外定义的变量是在使用newXxxx()调用构造一个对象时被创建。

在构造一个对象时,可创建两种变量。

一是类变

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1