为什么要让一个类创建自己的实例?

时间:2014-03-08 01:25:21

标签: java language-agnostic

我最近遇到了一些代码,虽然我知道它可以工作,但我真的不明白为什么一个类本身需要创建自己的实例呢?

我找不到任何解释为什么你会这样做,只有你如何做。

例如:

public class Simple1 {

  /** Main entry point. */
  public static void main(String args[]) throws ParseException {
    Simple1 parser = new Simple1(System.in);
    parser.Input();
  }

}

2 个答案:

答案 0 :(得分:2)

Java程序中的执行在public static void main中启动。由于此方法为static,因此在程序启动时没有主类的实际实例,因此如果由于某种原因需要该对象的实例(例如,如果您继承了{{要使主类成为窗口,JPanel方法需要手动构造它并开始在其上调用方法。 没有理由这样做,但是它提供了一种方便的方法来使main方法可选地创建自己类型的对象(如果它想要)或实例化批次其他类型的对象,并在它认为合适时将它们链接起来。

希望这有帮助!

答案 1 :(得分:0)

在您的示例中,对象并未真正创建类似的对象。您的调用是在静态上下文中,因此主方法的执行中不涉及实际对象。当然,除非我们讨论静态"类对象"或任何可能被称为的东西。但它与该对象的实例不同。请参阅OO编程的基础知识,了解对象对此有何意义。

至于其余部分,有时它才有意义。 Person对象可能包含子项,父项,工作者,经理等字段。您可以将它们表示为更多Person对象。然后在它下面有更多不同类型的孩子。有点像OO递归。你会在对象本身创建它们吗?如果你愿意,为什么不呢。

或者想到一个树,其中一个节点的叶子是一个Node对象,并且其他Node对象是子叶子。或者是map-reduce类型算法,它会因计算而产生相同类型的新任务。 Etc.etc。

相关问题