4. 初始化和清除

Version:1.0 StartHTML:0000000163 EndHTML:0000089416 StartFragment:0000041457 EndFragment:0000089376 SourceURL:file:///Z:/thinking_in_java/java_reveiwv2.docx

4.1 用构造器自动初始化

下面是带有构建器的一个简单的类(若执行这个程序有问题,请参考第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) {

96

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 英尺高的树

4.2 方法重载/过载(overloading)

由于构建器的名字由类名决定,所以只能有一个

构建器名称。但假若我们想用多种方式创建一个对象呢?例如,假设我们想创建一个类,令其用标准方式进行初始化,另外从文件里读取信息来初始化。此时,我们需要两个构建器,一个没有自变量(默认构建

器),另一个将字串作为自变量——用于初始化对象的那个文件的名字。由于都是构建器,所以它们必须有

相同的名字,亦即类名。所以为了让相同的方法名伴随不同的自变量类型使用,“方法过载”是非常关键的

一项措施。同时,尽管方法过载是构建器必需的,但它亦可应用于其他任何方法,且用法非常方便。

在下面这个例子里,我们向大家同时展示了过载构建器和过载的原始方法:

//: Overloading.java

// Demonstration of both constructor

// and ordinary method overloading.

import java.util.*;

class Tree {

int height;

Tree() {

prt("Planting a seedling");

height = 0;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值