【问题标题】:Java awt Checkbox constructorsJava awt Checkbox 构造函数
【发布时间】:2015-08-17 15:27:29
【问题描述】:

当我读到第 840 页时,我正在阅读“Java 完整参考第 9 版”,我注意到一些有趣的事情。 Checkbox 类支持以下两个构造函数:

Checkbox(String str, boolean on, CheckboxGroup cbGroup) throws HeadlessException Checkbox(String str, CheckboxGroup cbGroup, boolean on) 抛出 HeadlessException

这些背后的代码如下所示:

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);
}

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

【问题讨论】:

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

标签: java awt


【解决方案1】:

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)

现在有一个很好的做法是在多态函数中使用相同顺序的参数。而不是构造函数Checkbox(String label, CheckboxGroup group, boolean state),最好使用Checkbox(String label, boolean state, CheckboxGroup group)。由于无法删除第一个变体(已在 JDK 1.0 中发布),因此简单地添加了第二个更连贯的变体。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-24
    • 2013-03-21
    • 2011-09-09
    • 2010-12-11
    • 2015-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多