转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> JAVA开发 >> 正文
闲话Java中的类型转换         ★★★★

闲话Java中的类型转换

作者:闵涛 文章来源:闵涛的学习笔记 点击数:804 更新时间:2009/4/22 23:28:30
  要说类型转换,首先要说一说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方法。


没有相关教程
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台