我最近遇到了一些代码,虽然我知道它可以工作,但我真的不明白为什么一个类本身需要创建自己的实例呢?
我找不到任何解释为什么你会这样做,只有你如何做。
例如:
public class Simple1 {
/** Main entry point. */
public static void main(String args[]) throws ParseException {
Simple1 parser = new Simple1(System.in);
parser.Input();
}
}
答案 0 :(得分:2)
Java程序中的执行在public static void main
中启动。由于此方法为static
,因此在程序启动时没有主类的实际实例,因此如果由于某种原因需要该对象的实例(例如,如果您继承了{{要使主类成为窗口,JPanel
方法需要手动构造它并开始在其上调用方法。 没有理由这样做,但是它提供了一种方便的方法来使main
方法可选地创建自己类型的对象(如果它想要)或实例化批次其他类型的对象,并在它认为合适时将它们链接起来。
希望这有帮助!
答案 1 :(得分:0)
在您的示例中,对象并未真正创建类似的对象。您的调用是在静态上下文中,因此主方法的执行中不涉及实际对象。当然,除非我们讨论静态"类对象"或任何可能被称为的东西。但它与该对象的实例不同。请参阅OO编程的基础知识,了解对象对此有何意义。
至于其余部分,有时它才有意义。 Person对象可能包含子项,父项,工作者,经理等字段。您可以将它们表示为更多Person对象。然后在它下面有更多不同类型的孩子。有点像OO递归。你会在对象本身创建它们吗?如果你愿意,为什么不呢。
或者想到一个树,其中一个节点的叶子是一个Node对象,并且其他Node对象是子叶子。或者是map-reduce类型算法,它会因计算而产生相同类型的新任务。 Etc.etc。