【发布时间】:2012-08-28 14:03:48
【问题描述】:
我是 Java 新手。让我困惑的一件事是为什么有些类需要new 来实例化,而为什么有些类不需要new 来实例化。
比如我在看log4j,它不需要new。
// get a logger instance named "com.foo"
Logger logger = Logger.getLogger("com.foo");
logger.setLevel(Level.INFO);
为什么其他一些类需要新的?例如,一个 Employee 类:
Employee X = new Employee (John);
X.getwork();
等等等等
为什么我们没有说,Logger logger = new Logger(...);?以及为什么即使没有new 也能使用它,比如logger.setLevel() 等。
【问题讨论】:
-
Logger.getLogger在内部调用new Logger。总有一个构造函数调用在某处——只是并不总是在你的代码中。 -
哇这在短时间内有很多答案......
-
@PicklishDoorknob 流行语言的简单问题 = 简单代表竞赛 :)
-
@Blorgbeard 这就是我回答这个问题时的想法! XD