a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 59|回复: 0

[其他] JAVA技巧:Java中如何用构建器自动初始化

[复制链接]
发表于 2012-8-4 12:28:23 | 显示全部楼层 |阅读模式
对于体例的建树,可将其想象成为自己写的每个类都挪用一次initialize {" e& Y2 P. t; @9 m1 A
  System.out.println(# |- g7 `0 O! i: Z" J
  "Creating Rock number " + i);5 ~5 c" ]- `* }  \5 x. i6 a9 w" E2 ?
  }
: k; W+ w; m5 O$ q. m/ ?, R3 G  }public class SimpleConstructor {5 c) |: a. O4 n
  public static void main(String[] args) {5 G. }) l7 ?' [
  for(int i = 0; i < 10; i++)3 w1 {. f' z$ W3 D+ X* L( X' B* r
  new Rock(i);. {% F- ^  X/ k% ]0 P" i
  }
' a. ^, N8 E; B( \+ {  k* R  }操作构建器的自变量,我们可为一个对象的初始化设定响应的参数。举个例子来说,假设类Tree有一个构建器,它用一个整数自变量标识表记标帜树的高度,那么就可以象下面这样建树一个Tree对象:tree t = new Tree(12); // 12英尺高的树若Tree(int)是我们独一的构建器,那么编译器不会许可我们以其他任何体例建树一个Tree对象。
. g0 l5 \. ~2 {: y6 {, |  构建器有助于消弭年夜量涉及类的问题,并使代码更易阅读。例如在前述的代码段中,我们并未看到对initialize()体例的明晰挪用——那些体例在概念上自力于界说内容。在Java中,界说和初始化属于统一的概念——两者缺一不成。; s* w* R/ R( B) ?4 B0 K, i  Y# [
  构建器属于一种较非凡的体例类型,因为它没有返回值。这与void返回值存在着显明的区别。对于void返回值,尽管体例自己不会自动返回什么,但仍然可以让它返回另一些工具。构建器则分歧,它不仅什么也不会自动返回,而且根柢不能有任何选择。若存在一个返回值,而且假设我们可以自行选择返回内容,那么编译器若干好多要知道若何对阿谁返回值作什么样的措置。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-22 06:29 , Processed in 0.194005 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表