javascjp标识符.docx

上传人:b****3 文档编号:6598016 上传时间:2023-05-10 格式:DOCX 页数:19 大小:124.72KB
下载 相关 举报
javascjp标识符.docx_第1页
第1页 / 共19页
javascjp标识符.docx_第2页
第2页 / 共19页
javascjp标识符.docx_第3页
第3页 / 共19页
javascjp标识符.docx_第4页
第4页 / 共19页
javascjp标识符.docx_第5页
第5页 / 共19页
javascjp标识符.docx_第6页
第6页 / 共19页
javascjp标识符.docx_第7页
第7页 / 共19页
javascjp标识符.docx_第8页
第8页 / 共19页
javascjp标识符.docx_第9页
第9页 / 共19页
javascjp标识符.docx_第10页
第10页 / 共19页
javascjp标识符.docx_第11页
第11页 / 共19页
javascjp标识符.docx_第12页
第12页 / 共19页
javascjp标识符.docx_第13页
第13页 / 共19页
javascjp标识符.docx_第14页
第14页 / 共19页
javascjp标识符.docx_第15页
第15页 / 共19页
javascjp标识符.docx_第16页
第16页 / 共19页
javascjp标识符.docx_第17页
第17页 / 共19页
javascjp标识符.docx_第18页
第18页 / 共19页
javascjp标识符.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

javascjp标识符.docx

《javascjp标识符.docx》由会员分享,可在线阅读,更多相关《javascjp标识符.docx(19页珍藏版)》请在冰点文库上搜索。

javascjp标识符.docx

javascjp标识符

 

第一节相关问题

讨论──下列问题与本模块阐述的论题相关。

-你是如何理解类的?

-你是如何理解一个对象的?

第二节目标

完成本模块的学习后,你应该能够:

-在一个源程序中使用声明

-区分有效和无效标识符

-确认Java技术关键字

-列出八个原始类型

-为数字类型和文本类型定义文字值

-定义术语class、object、membervariable和referencevariable

-为一个简单的包含原始成员变量的类创建一个类定义

-声明类类型变量

-使用new构造一个对象

-描述缺省初始化

-使用点符号访问一个对象的成员变量

-描述一个参考变量的意义

-规定分配类类型变量的结果

第三节注释

注释

三种允许的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.

第八节Java编码约定

Java编程语言的一些编码约定是:

classes──类名应该是名词,大小写可混用,但首字母应大写。

例如:

classAccountBook

classComplexVariable

interface──界面名大小写规则与类名相同。

interfaceAccount

method──方法名应该是动词,大小写可混用,但首字母应小写。

在每个方法名内,大写字母将词分隔并限制使用下划线。

例如:

balanceAccount()

addComplex()

Java编码约定

Variables──所有变量都可大小写混用,但首字符应小写。

词由大写字母分隔,限制用下划线,限制使用美元符号($),因为这个字符对内部类有特殊的含义。

currentCustomer

变量应该代表一定的含义,通过它可传达给读者使用它的意图。

尽量避免使用单个字符,除非是临时“即用即扔”的变量(例如,用i,j,k作为循环控制变量)

constant──原始常量应该全部大写并用下划线将词分隔;对象常量可大小写混用。

HEAD-COUNT

MAXIMUM-SIZE

controlstructures──当语句是控制结构的一部分时,即使是单个语句也应使用括号({})将语句封闭。

例如:

if(condition){

dosomething

}else{

dosomethingelse

spacing──每行只写一个语句并使用四个缩进的空格使你的代码更易读。

comments──用注释来说明那些不明显的代码段落;对一般注释使用//分隔符,而大段的代码可使用/*···*/分隔符。

使用/**···*/将注释形成文档,并输入给javadoc以生成HTML代码文档。

//Acommentthattakesuponlyoneline.

/*Commentsthatcontinuepastonelineandtakeupspaceonmultiplelines...*/

/**Acommentfordocumentationpurposes.

@seeAnotherclassformoreinformation

*/

注意──@see是一个有关类或方法的特殊的javadoc标记符(”seealso”)。

有关javadoc的详细资料,请参见“TheDesignofDistributedHyperlinkedProgrammingDocumentation”(Lisa著)的有关文档系统的完整定义。

该资料可从下列地址获得:

第九节理解对象

 

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重新正确地引用新的对象。

这两个操

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

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2