Java awt复选框构造函数

Java awt复选框构造函数,java,awt,Java,Awt,当我读到第840页的时候,我发现了一些有趣的东西。Checkbox类支持以下两个构造函数: 复选框(字符串str,booleanon,CheckboxGroupcbGroup)抛出HeadlessException复选框(字符串str,CheckboxGroupcbGroup,booleanon)抛出HeadlessException 这些to后面的代码如下所示: public Checkbox(String label, boolean state, CheckboxGroup group)

当我读到第840页的时候,我发现了一些有趣的东西。Checkbox类支持以下两个构造函数:

复选框(字符串str,booleanon,CheckboxGroupcbGroup)抛出HeadlessException复选框(字符串str,CheckboxGroupcbGroup,booleanon)抛出HeadlessException

这些to后面的代码如下所示:

public Checkbox(String label, boolean state, CheckboxGroup group)
throws HeadlessException {
    ...code...
}

public Checkbox(String label, CheckboxGroup group, boolean state)
throws HeadlessException {
    this(label, state, group);
}

正如你所看到的,第一个被第二个调用。。两者似乎做了完全相同的事情,至少这是我所看到的。为什么需要第二个呢?

JDK 1.0引入了三个构造函数:

public Checkbox()
public Checkbox(String label)
public Checkbox(String label, CheckboxGroup group, boolean state)
JDK 1.1希望添加一个不同的构造函数,该构造函数允许设置标签和状态:

public Checkbox(String label, boolean state)

现在,在多态函数中使用相同顺序的参数是一种很好的做法。与其使用构造函数
复选框(字符串标签、复选框组、布尔状态)
不如使用
复选框(字符串标签、布尔状态、复选框组)
。由于第一个变量无法删除(已经在JDK 1.0中发布),第二个更连贯的变量被简单地添加了。

两者都在做同样的事情,并且它们不是都需要的,这只是为了防止一些开发人员喜欢以另一种顺序提供他们的参数。但在AWT上死记硬背并没有多大用处,这几年已经相当过时了。