当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:14:00  来源:本站整理

浅谈Java中的典范转换[Java编程]

赞助商链接



  本文“浅谈Java中的典范转换[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

要说范例转换,首先要说一说java的数据范例.java中的数据范例分为两种:基本范例、引用范例.基本数据范例没有什么好说的byte char short int long float double boolean,这些范例除了boolean之外,其他的与C语言中的范例没有太大的辨别.因为这篇文章的论题是范例转换,所以在此不谈论boolean值的用法.

下面要说的是引用范例.引用在有的书里也叫做句柄,它很近似C/C++中的指针,但要注意引用和指针并非同一个概念.指针是一个存放地址的变量,他使C/C++程序员可以机动地拜候内存,但这也给程序的安全性带来了很大的隐患,由于程序员可以对指针随便的运算操作,所以一不留神就会破坏其他的存储单位,招致程序中呈现意想不到的后果.引用担当了指针节俭内存的长处,又限制了对地址的操作,所以他是安全的.引用范例包含全部类生成的实例和数组(不管是对象数组还是基本范例数组都实现Cloneable接口,所以他也是一个对象实例),全部引用范例都担当自Object这个类.要阐明一点的是java中的全部变量都是一个引用,不管是引用范例还是基本范例.

目前要正式谈论范例的转换了.用过C/C++的人对基本范例的转换城市很清楚,基本范例转换分为范例晋升和强迫转换.

比方:

int a=100;
long b=a+100;//这个地方就用到了范例晋升,a+100从int晋升到了long
a=(int)b;//这个地方用到了强迫转换

强迫范例转换在某种情形下会丧失精度,如:

byte b;
int a=200;
b=(byte)a;//固然这里用到了强迫转换,但因为byte的范围是-127到127
//所以强迫转换后宽度会被截短

在java中除了这些转换之外基本数据范例还可以被隐式的转换成String,比方:

System.out.print("转换"+100);//假如在数据前面有字符串用+衔接
//就会隐式的转换成String

引用范例的转换实现起来要比C++简单的多,假如一个对象与另一个对象没有任何的担当关系,那么他们就不能举行范例转换.假如要把一个派生类对象赋值给基类对象这个称为上溯造型.假如要把基类对象赋值给派生类对象就需求强迫范例转换,这称为下溯造型,下溯造型有一些危险,要安全的举行下溯造型有一个前题,基类对象必须是从派生类对象中上溯过来的.

比方:

class Base{}
class Child extends Base{
 public static void main(String[] args){
  Base base=new Child();//上溯造型
  Child child=(Child)base;//下溯造型
  Child child1=(Child)new
  Base();//抛出ClassCastException非常
 }
}

最后,谈一谈String与引用范例的转换.前面已经说过,全部的对象都是从Object担当过来的,Object中有一个toString办法.这个办法是全部的对象都可以转换成String,假如想把自定义的类转换成String,最安全的做法是重写toString办法.和基本范例一样假如对象前有String对象用+衔接,对象就会隐式转换成String,这种情形实际上是隐式调用了toString办法.


  以上是“浅谈Java中的典范转换[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • <b>浅谈Java读取Csv实践</b>
  • 浅谈Java开辟人员对JCP感受绝望的缘由
  • <b>浅谈Java多线程</b>
  • <b>浅谈Java的输入输出流</b>
  • 浅谈Java中的典范转换
  • 浅谈Java开源XML工具包dom4j
  • 浅谈java事件
  • 浅谈Java的尺度数据流
  • 浅谈Java和JavaFX之间的互操作性
  • <b>浅谈Java中正则表达式的优化办法</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .