Must know something of everything and everything of something!

JAVA构造函数重载

上一篇 / 下一篇  2007-04-04 10:49:59 / 个人分类:Java

JAVA构造函数重载

M:E@io*H Y I:W0

Vx,j%O\B ]"xS0
c2T||(zX0除了重载正常的方法外,构造函数也能够重载。实际上,对于大多数你创建的现实的类,重载构造函数是很常见的,并不是什么例外。下面是一个Box类的例子:51Testing软件测试网p;gtL\*f+x

#J!w KE7A&s hK0

t:dl_yi/U6j+@W051Testing软件测试网JIJ{v?C qp$rx

在本例中,Box() 构造函数需要三个自变量,这意味着定义的所有Box对象必须给Box() 构造函数传递三个参数。例如,下面的语句在当前情况下是无效的:

~_C/GLq,s051Testing软件测试网L%m2y!mb+{ D

Box ōb = new Box();51Testing软件测试网(m!v$HA v(sR7Xm

"]"Uyg3cX1L ~+b0因为Box( )要求有三个参数,因此如果不带参数的调用它则是一个错误。这会引起一些重要的问题。如果你只想要一个盒子而不在乎 (或知道)它的原始的尺寸该怎么办?或,如果你想用仅仅一个值来初始化一个立方体,而该值可以被用作它的所有的三个尺寸又该怎么办?如果Box 类是像现在这样写的,与此类似的其他问题你都没有办法解决,因为你只能带三个参数而没有别的选择权。

~]9y!T-n0

6JA~S,V,n0幸好,解决这些问题的方案是相当容易的:重载Box 构造函数,使它能处理刚才描述的情况。下面程序是Box 的一个改进版本,它就是运用对Box构造函数的重载来解决这些问题的:

5C1v_n5k0

pFA)f @ H~0
-Xu"B7g,m1O0该程序产生的输出如下所示:

t i)MG]0

%?Uw3v%E0Volume of mybox1 is 3000.0
rI9Qfhq}0Volume of mybox2 is -1.0
}$x/o5]R!@.f MY[0Volume of mycube is 343.0

;xg2}3E}s@&A.{ Y"o.}E0

yC&E;oJtm051Testing软件测试网Yw3ku`l*AV
在本例中,当new执行时,根据指定的自变量调用适当的构造函数。
n&S.W%cg:R)]0 

S\+Zj!w h!b1cq D0

TAG: java 重载 Overload Java

引用 删除 maomaomaoabcd   /   2014-12-04 15:44:54
-5
 

评分:0

我来说两句

日历

« 2024-04-12  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 76687
  • 日志数: 93
  • 建立时间: 2007-03-22
  • 更新时间: 2007-12-31

RSS订阅

Open Toolbar