|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
还是要自己一点一点写代码,然后编译,改错再编译好那。还有最重要的是.net网页编程的编译环境非常好,你甚是不需要了解太多工具,对于简单的系统,你可以之了解一些语法就哦了。
要说范例转换,起首要说一说java的数据范例。java中的数据范例分为两种:基础范例、援用范例。基础数据范例没有甚么好说的bytecharshortintlongfloatdoubleboolean,这些范例除boolean以外,其他的与C言语中的范例没有太年夜的区分。由于这篇文章的论题是范例转换,以是在此不会商boolean值的用法。
上面要说的是援用范例。援用在有的书里也叫做句柄,它很相似C/C++中的指针,但要注重援用和指针并非统一个观点。指针是一个寄存地点的变量,他使C/C++程序员可以天真地会见内存,但这也给程序的平安性带来了很年夜的隐患,因为程序员能够对指针随便的运算操纵,以是一不留心就会损坏其他的存储单元,招致程序中呈现意想不到的了局。援用承继了指针节俭内存的长处,又限定了对地点的操纵,以是他是平安的。援用范例包含一切类天生的实例和数组(不论是对象数组仍是基础范例数组都完成Cloneable接口,以是他也是一个对象实例),一切援用范例都承继自Object这个类。要申明一点的是java中的一切变量都是一个援用,不论是援用范例仍是基础范例。
如今要正式会商范例的转换了。用过C/C++的人对基础范例的转换城市很分明,基础范例转换分为范例提拔和强迫转换。
比方:
inta=100;
longb=a+100;//这个中央就用到了范例提拔,a+100从int提拔到了long
a=(int)b;//这个中央用到了强迫转换
强迫范例转换在某种情形下会丧失精度,如:
byteb;
inta=200;
b=(byte)a;//固然这里用到了强迫转换,但由于byte的局限是-127到127
//以是强迫转换后宽度会被截短
在java中除这些转换以外基础数据范例还能够被隐式的转换成String,比方:
System.out.print("转换"+100);//假如在数据后面有字符串用+毗连
//就会隐式的转换成String
援用范例的转换完成起来要比C++复杂的多,假如一个对象与另外一个对象没有任何的承继干系,那末他们就不克不及举行范例转换。假如要把一个派生类对象赋值给基类对象这个称为上溯外型。假如要把基类对象赋值给派生类对象就必要强迫范例转换,这称为下溯外型,下溯外型有一些伤害,要平安的举行下溯外型有一个前题,基类对象必需是从派生类对象中上溯过去的。
比方:
classBase{}
classChildextendsBase{
publicstaticvoidmain(String[]args){
Basebase=newChild();//上溯外型
Childchild=(Child)base;//下溯外型
Childchild1=(Child)new
Base();//抛出ClassCastException非常
}
}
最初,谈一谈String与援用范例的转换。后面已说过,一切的对象都是从Object承继过去的,Object中有一个toString办法。这个办法是一切的对象都能够转换成String,假如想把自界说的类转换成String,最平安的做法是重写toString办法。和基础范例一样假如对象前有String对象用+毗连,对象就会隐式转换成String,这类情形实践上是隐式挪用了toString办法。
对于一个大型项目,如果用java来作,可能需要9个月,并且可能需要翻阅10本以上的书,但如果用ruby来作,3个月,3本书就足够了,而.net网页编程也不过3,4本书足以,这就是区别。 |
|