|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
C#是盗用了Java的源代码,仿照开发的,原因是Java是开源的啊,盗了也白盗,还有一点,开发C#语言的团队是就是开发Java语言的团队,是微软重金挖过去的啊
“外型”(Cast)的感化是“与一个模子婚配”。在得当的时分,Java会将一种数据范例主动转换成另外一种。比方,假定我们为浮点变量分派一个整数值,盘算时机将int主动转换成float。经由过程外型,我们可明白设置这类范例的转换,大概在一样平常没有大概举行的时分强制它举行。
为举行一次外型,要将括号中但愿的数据范例(包含一切修正符)置于其他任何值的左边。上面是一个例子:
voidcasts(){
inti=200;
longl=(long)i;
longl2=(long)200;
}
正如您看到的那样,既可对一个数值举行外型处置,亦可对一个变量举行外型处置。但在这儿展现的两种情形下,外型均是过剩的,由于编译器在需要的时分会主动举行int值到long值的转换。固然,仍旧能够设置一个外型,提示本人寄望,也使程序更分明。在其他情形下,外型只要在代码编译时才显出主要性。
在C和C++中,外型偶然会让人头痛。在Java里,外型则是一种对照平安的操纵。可是,若举行一种名为“减少转换”(NarrowingConversion)的操纵(也就是说,剧本是能包容更多信息的数据范例,将其转换成容量较小的范例),此时便可能面对信息丧失的伤害。此时,编译器会强制我们举行外型,就好象说:“这多是一件伤害的事变——假如您想让我不顾地做,那末对不起,请明白外型。”而关于“缩小转换”(Wideningconversion),则不用举行明白外型,由于新范例一定能包容本来范例的信息,不会形成任何信息的丧失。
Java同意我们将任何主范例“外型”为其他任何一种主范例,但布尔值(bollean)要除外,后者基本不同意举行任何外型处置。“类”不同意举行外型。为了将一品种转换成另外一种,必需接纳特别的办法(字串是一种特别的情形,本书前面会讲到将对象外型到一个范例“家属”里;比方,“橡树”可外型为“树”;反之亦然。但关于其他外来范例,如“岩石”,则不克不及外型为“树”)。
1.字面值
最入手下手的时分,若在一个程序里拔出“字面值”(Literal),编译器一般能正确晓得要天生甚么样的范例。但在有些时分,关于范例倒是暗昧不清的。若产生这类情形,必需对编译器加以得当的“引导”。办法是用与字面值联系关系的字符情势到场一些分外的信息。上面这段代码向人人展现了这些字符。
- //:Literals.java
- classLiterals{
- charc=0xffff;//maxcharhexvalue
- byteb=0x7f;//maxbytehexvalue
- shorts=0x7fff;//maxshorthexvalue
- inti1=0x2f;//Hexadecimal(lowercase)
- inti2=0X2F;//Hexadecimal(uppercase)
- inti3=0177;//Octal(leadingzero)
- //HexandOctalsoworkwithlong.
- longn1=200L;//longsuffix
- longn2=200l;//longsuffix
- longn3=200;
- //!longl6(200);//notallowed
- floatf1=1;
- floatf2=1F;//floatsuffix
- floatf3=1f;//floatsuffix
- floatf4=1e-45f;//10tothepower
- floatf5=1e+9f;//floatsuffix
- doubled1=1d;//doublesuffix
- doubled2=1D;//doublesuffix
- doubled3=47e47d;//10tothepower
- }///:~
复制代码
十六进制(Base16)——它合用于一切整数数据范例——用一个前置的0x或0X唆使。并在前面跟从接纳年夜写或小写情势的0-9和a-f。若试图将一个变量初始化成超越本身才能的一个值(不管这个值的数值情势怎样),编译器就会向我们呈报一条堕落动静。注重在上述代码中,最年夜的十六进制值只会在char,byte和short身上呈现。若超越这一限定,编译器会将值主动酿成一个int,并告知我们必要对这一次赋值举行“减少外型”。如许一来,我们便可分明获知本人已超载了界限。
八进制(Base8)是用数字中的一个前置0和0-7的数位唆使的。在C,C++大概Java中,对二进制数字没有响应的“字面”暗示办法。
字面值后的跟随字符标记着它的范例。若为年夜写或小写的L,代表long;年夜写或小写的F,代表float;年夜写或小写的D,则代表double。
指数老是接纳一种我们以为很不直不雅的暗号办法:1.39e-47f。在迷信与工程学范畴,“e”代表天然对数的基数,约即是2.718(Java一种更准确的double值接纳Math.E的情势)。它在象“1.39 |
|