在线用户    站点地图 技术论坛 文档中心 站点导航 资源下载 语言参考 教程专题 站点统计 业务项目 使用帮助
您的位置
MSDN参考新加了CSS2参考,全中文,制作精良。245k下载。           新加了sxf_sxf推荐的"动态网页专家指导" 下载!          新加了lsg2002lsg推荐的"ASP.NET高级编程(PDF)" 下载!          新加了DHTML代码预览!!,功能强大哦!欢迎试用          新加了网友lincong为大家提供的SQL Server 2000 程序员指南,有点大,但同时也就说明内容全咯!           新加了网友ibra为大家提供的北大的JAVA课件,很适合初学者入门           新加了一个java的连接缓冲池代码示例           新加了人月神话电子版下载!软件工程巨著哦~~           更新了评分标准,引入了“专家分”概念,相信可以更好的激励大家的学习!详情请看“使用帮助”           新加了由网友GGG提供的“IIS超级管理手册”,值得一看哦!(虽然我没看过 :P )           新加了“英雄榜”,欢迎测试!           “无组件上传·从原理剖析到实践”已经全部完成,源码全部开放,有兴趣的朋友请到文档中心一探究竟。  您的位置  首页>技术论坛>JAVA>F0141849 在同一窗口中打开页面中的链接 在新窗口中打开页面中的链接 将ASPCHINA设为首页 将ASPCHINA加入书签    
 LOGIN HERE
用户:
密码: 忘记密码
记住密码 用户注册 游客进入

论坛首页
|--web开发
   |--ASP
   |--JSP
   |--ASP.net
   |--DHTML
   |--RUBY
|--软件开发
   |--C++
      |--Code here
   |--JAVA
   |--VB
   |--Delphi
   |--XML
|--.net技术
   |--C#
   |--VB.net
|--Yup开发组
|--站务&投诉
   |--站长专区
|--硬件&网络
|--休息室
|--数据库技术
 进入精华区 我要发言



 请教对象的塑型!back to JAVA forum  
作者:芳菲四月,6级分数:20
日期:2007/4/29 15:02:00类别:JAVA, 技术问题
回复:3次浏览:2663次
状态:尚未结贴

最近在学java中,学到了对象的塑型这一节,反复看了n遍书中的讲解,还是不明白说的啥意思!
哪位仁兄根据自己的理解,为我讲解一下?
我能理解基本数据类型的塑型意义,即类型转换。
比如:double float----〉int,就是原来用8各子节存储的数据,现在改为用4各字节来存,那当然是存不

下的,那么存不下的结果是什么呢,就是多出来的4各字节被丢掉了。丢掉的部分就是小数部分。
所以double float---->int的数学表现就是取整数。书上的解释是:当高位向地位转化时,低为存储被去

掉。
那么int--->double float 的含义正好相反,原来用4各字节存储的数据改为用8各字节来存储,结果是什

么呢,当然是空间有剩余,即还剩着4个字节怎么办,好办!用0来填充,因为所剩余的4各字节正好是用

来存储小数部分的。所以这种转换的数学表现是:整数变为小数,数值大小不变。即3=3.000

我的理解是不是比书上讲的更生动?
可是对象的素型是什么意义呢?在什么情况下应用呢?

哪位仁兄可以为我举例讲解!
ok!知识供分享!让我们共同学习进步!

reply[F0141849]
 



 
 re [1] 请教对象的塑型!JAVA forum  
- miles07-05-04 13:03  

对象cast首先要求是对象的确是目标类型。比如
  兔子 obj=new 兔子();
  动物 obj2=(动物)obj;
如果改成:
  桃子 obj=new 桃子();
  动物 obj2=(动物)obj;
就会出现ClassCastException。也就是说cast一定出现在父类和子类之间。cast的意义主要在于接口编程,往往是为了适应接口要求。一般来说从父类型向子类型的cast都是不被推荐的,因为他会破坏接口的意义。比如:

public void doSomething(动物 obj) {
  兔子 obj2=(兔子)obj;
  ....
}

就是一个糟糕的practice。

reply[F0141864]
 



 
 re [2] 请教对象的塑型!JAVA forum  
- 芳菲四月07-05-07 10:44  

1。感谢miles仁兄的讲解!

2。抱歉!没有看明白!

看了miles仁兄的讲解我还是不知道对象的塑型意义是什么,子类对象塑型成父类,或父类塑型成父类解决了什么问题,为什么要塑型,塑型后对对象造成了什么损失!糟糕在什么地方!
milse仁兄能够讲解的详细点吗!

reply[F0141872]
 



 
 re [3] 请教对象的塑型!JAVA forum  
- miles07-05-07 11:37  

通过接口编程可以隐藏一些实现细节,灵活度比较大。比较常见的一个应用:

public List getUsers();

这种函数声明很常见,返回值是一个List对象,可以方便的进行检索。这里没有使用ArrayList、LinkedList而是使用了List接口就是因为使用List接口提供的方法可以达到检索数据的所有要求,同时也给getUsers函数提供了最大的灵活度,getUsers可以自由选择任何实现List接口的类作为返回值,以后如果有需求变化也可以调整。例如:

public List getUsers() {
  ArrayList list=new ArrayList();
  ....
  return list;
}

这里有一个隐式的cast,就是在return时候把ArrayList变成了List。以后如果想让返回值线程安全,可以返回Vector;如果想让插入速度变快,可以用LinkedList。而且这些修改都不会影响到使用getUsers的代码。另一方面,因为把子类变成父类(或接口)是永远不会出错的,所以这种造型是安全的,是一种好的编程实践。但是反过来的话情况就不一样了,一方面有运行期出错的危险(编译器无法预判),另一方面getUsers的使用者也需要预先知道getUsers的实现方法,getUsers的修改同时也会影响到他的调用者,也就失去了接口编程的意义。

reply[F0141873]
 



您的位置
  (c)2000-2019 Yup Studio, all rights reserved.  
66.40625