是调用静态Java方法(工厂类方法)创建该类的对象吗?
我的意思是静态方法返回一个值,比如一个数组的大小(数组是类的变量)
我已经检查了代码但是在调用静态方法之前看不到该类的Object从未实例化过。 ?
public static boolean isFiveInstance() {
return _instances.size() == 5;
}
和_instances是类变量
private static ArrayList<LocalMediaPlayer> _instances;
正在创建并填充构造函数。
答案 0 :(得分:4)
不,不。这是创建静态方法的重点。静态方法不使用它们中定义的类的任何对象的实例变量,因此在静态方法中引用的所有内容也必须是静态的。
这就是为什么你调用像Class.StaticMethod()
这样的静态方法而不是:
new Class().StaticMethod();
new
将实例化该类,从而创建该对象的新实例。
答案 1 :(得分:3)
不,static
调用没有实例化对象(因为它们不需要一个)。
第一次引用类(包括静态方法调用)时,将加载该类。由类加载器。
这就是静态初始化程序发挥作用的地方:
static {
// do something
}
只要初始化类(每个类加载器一次),就会调用此块
答案 2 :(得分:2)
不,调用静态方法不会创建类的实例。这就是静态方法与实例方法不同的地方。他们不需要实例化它们所属的类的实例来运行。