求高手解答关于java类型强制转换是什么意思?

求高手解答关于java类型强制转换是什么意思?... 求高手解答关于java类型强制转换是什么意思? 展开
 我来答
10...6@qq.com
2013-07-30 · TA获得超过121个赞
知道答主
回答量:121
采纳率:0%
帮助的人:167万
展开全部
应该对你有帮助的!强制类型转换是基于可以转换过去,就是说圆和正方形可以转化为图形一样,前两者必须是个图形,只是不确定是什么图形故而强转,但是要将圆强转为人类..那不开开开开开开...玩笑么?呵呵java中基础类型有8中,如下byte,short,char,int,long,float,double,boolean虽然是这8个,但是我要这么写顺序,原因就是从后往前都需要强转,boolean除外!byte1一个字节,short占2个字节,char因为java是unicode编码,也是2个字节,int四个小要装大的,必须强行!比如shorta=(short)1;这里1默认是int类型,想变short当然要强制,要不人家地盘大,不会服从的!这里有个小特殊,就是long占8个字节,而float占4个,但是float是浮点型了,不和前面的整形相提并论。除了基本类型数据就是引用类型数据,即对象这种。你上面User就是引用类型,自定义的类而已,而String是JDK定义好的类,我上面说过圆和图形这两个概念,意思就是说必须得是父类强制转换子类,这里的User和String丝毫没任何父子关系,所以不可以转过去。java中Object是一切类的父类,一次任何一个引用类型都可以通过Object强转,比如Objecto=newObject();Useru=(User)o;所以你上面的问题强转是不可能的,默认一个引用类型的toString()方法是继承Object类得来的,因此默认打印就是它所在的内存分配的地址而已,就是个唯一标识!如果你调用自定义类的toString()方法得到一些有关该类的信息,而非看不懂的地址,那么就重写该方法,在该类中定义一个,比如下面这样publicStringtoString(){rerunthis.id+this.name;}那么以后调用该类的toString()方法将返回该类实例的id+name,前提这个类确实有这两个属性!
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式