Java静态方法调用

时间:2011-07-21 05:38:10

标签: java object static-methods

是调用静态Java方法(工厂类方法)创建该类的对象吗?

我的意思是静态方法返回一个值,比如一个数组的大小(数组是类的变量)

我已经检查了代码但是在调用静态方法之前看不到该类的Object从未实例化过。 ?

public static boolean isFiveInstance() {
    return _instances.size() == 5;
}

和_instances是类变量

private static ArrayList<LocalMediaPlayer> _instances;

正在创建并填充构造函数。

3 个答案:

答案 0 :(得分:4)

不,不。这是创建静态方法的重点。静态方法不使用它们中定义的类的任何对象的实例变量,因此在静态方法中引用的所有内容也必须是静态的。

这就是为什么你调用像Class.StaticMethod()这样的静态方法而不是:

new Class().StaticMethod();

new将实例化该类,从而创建该对象的新实例。

答案 1 :(得分:3)

不,static调用没有实例化对象(因为它们不需要一个)。

第一次引用类(包括静态方法调用)时,将加载该类。由类加载器。

这就是静态初始化程序发挥作用的地方:

static {
     // do something
}
只要初始化类(每个类加载器一次)

,就会调用此块

答案 2 :(得分:2)

不,调用静态方法不会创建类的实例。这就是静态方法与实例方法不同的地方。他们不需要实例化它们所属的类的实例来运行。