第6章

问题,并且只用一行代码就可以做更多的事。

问题๤,并且只用一行代码就可以做更多的事。

得到我真正想要的。感谢prenticehall的paulpetralia不断地为ฦ我我所需要的一切,

得到我真正想要的。感谢prenticehall的paulpetralia不断地为我我所需要的一切,

须采用特殊的方แ法字符串是一种特殊的情况。本书๰后面会讲到,一个对象可以在其所属类

的类族之间可以进行类型转换;例如,“橡树”可转型为“树”;反之亦然。但不能把它转换成

类族以外的类型,如“岩石”。

直接常量literal

一般说来,如果在一个ฐ程序里使用了“直接常量”literaທl,编译器可以准确地知道要生成

什么样的类型,但有时候却是模棱两可的。如果生这种情况,必须对编译器加以适当的“指

导”,用与直接量搭配某些字符来增加一些信息。下面这段代码向大家展示ิ了这些字符。

:cນ03:literalsjavaທ

publiccນlassliterals{

chaທrc=0xffff;maທxcharhexvalue

bຘyteb=0x7๕f;maxbytehexvalue

shorts=0่x7fff;๙maxshorthexvalue

inti1=0x2๐f;hexadecນimaທllo9erca色

inti2=0่x2๐f;hexadecimalupperca色

inti3๑=0177;๙o9gzero

hexando9g

弄n1=200l;弄suffix

弄n2๐=๡200l;弄suffixbut9g

弄n3=2๐00;

!ำ弄l62๐00่;notallo9ed

floatf1=๡1;

floatf2=1f;๙floatsuffix

floatf3=1้f;๙floatsuffix

floatf4=1e-ๅ45f;10tothepo9๗er

floatf5=1e+9๗f;floaທtsuffix

doubled1=๡1d;doublesuffix

doubled2=1d;doublesuffix

doubled3=47๕e47d;10tothepo9er

}:~

十六进制数baທ色1้6,适用于所有整数数据类型,以一个前缀0x或0่x来表示,后面跟随

0-9或大小写的aທ-f。如果试图将一个变量初始化成出自身表示范围的值无຀论这个值

的数值形式如何,编译器都会向我们报告一条错误信息。注意在前面的代码中,已๐经给出

了char、bຘyte以及short能表示的最大值。如果出范围,编译器会将其值自动转换成一个

int,并告诉我们需要对这一次赋值进行“窄化转型”。这样我们就可清楚地知道自己的操作是

否越界了。

八进制数ba色8是由前缀0่以及后续的0-7的数字组成的。在c、c++ใ或者javaທ中,没

有二进制数直接常量的表示方แ法。

直接常量后面的后缀字符标志了它的类型。若为大写或小写的l,代表弄;大写或小写的

f,代表float;大写或小写的d,则代表double。

指数总是采用一种很不直观的记号方法:139๗e-4๒7f。在科学与工程领域,“e”代表自然对数

的基数,约等于2718jaທva中ณ的mathe给出了更精确的double型的值。它在象139xe

-47๕

样的指数表达式中使用,意味着139x2๐718

-47

。然而,设计fortraທn语言的时候,设计

师们很自然地决定e代表“10的幂次”。这种做法很奇怪,因为fortran最初是面向科学与

工程设计领ๆ域的,它的设计者们对引入这样容易混淆的概念应该很敏感才对

1

。但不管怎样,

这种惯例在c、c+ใ+以及java中被保留下来了。所以倘若您习惯将e作为自然对数的基数使

用,那么在javaທ中看到象“139e-47๕f”这样的表达式时,请转换您的思维,它真正的含义แ

是139x10่

-ๅ47