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

<b>由构建器保证初始化</b>[Java编程]

赞助商链接



  本文“<b>由构建器保证初始化</b>[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

关于办法的成立,可将其想象成为自己写的每个类都调用一次initialize().这个名字提醒我们在利用对象之前,应首先举行这样的调用.但不幸的是,这也意味着用户必须记着调用办法.在Java中,由于供应了名为“构建器”的一种特别办法,所以类的计划者可担保每个对象城市得到精确的初始化.若某个类有一个构建器,那么在成立对象时,Java会自动调用那个构建器——乃至在用户毫不知觉的情形下.所以说这是可以担保的!
接着的一个问题是若何命名这个办法.存在两方面的问题.第一个是我们利用的任何名字都大概与打算为某个类成员利用的名字冲突.第二是由于编译器的责任是调用构建器,所以它必须知道要调用是哪个办法.C++采纳的筹划看来是最简单的,且更有逻辑性,所以也在Java里得到了利用:构建器的名字与类名相同.这样一来,可保证象这样的一个办法会在初始化期间自动调用.
下面是带有构建器的一个简单的类(若履行这个程序有问题,请参考第3章的“赋值”小节).

//: SimpleConstructor.java
// Demonstration of a simple constructor
package c04;

class Rock {
  Rock() { // This is the constructor
    System.out.println("Creating Rock");
  }
}

public class SimpleConstructor {
  public static void main(String[] args) {
    for(int i = 0; i < 10; i++)
      new Rock();
  }
} ///:~

目前,一旦成立一个对象:
new Rock();
就会分配呼应的存储空间,并调用构建器.这样可保证在我们经手之前,对象得到精确的初始化.
请注意全部办法首字母小写的编码法则并不实用于构建器.这是由于构建器的名字必须与类名完好相同!
和其他任何办法一样,构建器也能利用自变量,以便我们指定对象的具体成立方法.可非常便利地窜改上述例子,以便构建器利用自己的自变量.以下所示:

class Rock {
  Rock(int i) {
    System.out.println(
      "Creating Rock number " + i);
  }
}

public class SimpleConstructor {
  public static void main(String[] args) {
    for(int i = 0; i < 10; i++)
      new Rock(i);
  }
}
操纵构建器的自变量,我们可为一个对象的初始化设定呼应的参数.举个例子来说,假定类Tree有一个构建器,它用一个整数自变量标志树的高度,那么便可以象下面这样成立一个Tree对象:

tree t = new Tree(12); // 12英尺高的树

若Tree(int)是我们唯一的构建器,那么编译器不会答应我们以其他任何方法成立一个Tree对象.
构建器有助于消除大量触及类的问题,并使代码更易阅读.比方在前述的代码段中,我们并未看到对initialize()办法的明确调用——那些办法在概念上独立于定义内容.在Java中,定义和初始化属于统一的概念——二者缺一不可.
构建器属于一种较特别的办法范例,因为它没有返回值.这与void返回值存在着明显的辨别.关于void返回值,固然办法本身不会自动返回什么,但仍旧可以让它返回另一些东西.构建器则差别,它不但什么也不会自动返回,并且根本不能有任何挑选.若存在一个返回值,并且假定我们可以自行挑选返回内容,那么编译器多少要知道若何对那个返回值作什么样的处理.
  以上是“<b>由构建器保证初始化</b>[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • <b>hosts是什么 hosts文件在什么位置 若何改正hosts</b>
  • <b>在 Windows 8 中手动安装语言包</b>
  • <b>五个常见 PHP数据库问题</b>
  • Windows中Alt键的12个高效快速的利用本领介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • <b>详解MySQL存储历程参数有三种范例(in、out、inout)</b>
  • <b>Win8系统恢复出来经典的开始菜单的办法</b>
  • <b>Win8系统花屏怎么办 Win8系统花屏的办理办法</b>
  • <b>Windows 7系统下无线网卡安装</b>
  • <b>为什么 Linux不需求碎片整理</b>
  • <b>Windows 8中删除账户的几种办法(图)</b>
  • <b>教你如安在win7下配置路由器</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

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

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