Java静态实例

时间:2017-09-10 10:35:00

标签: java static

所以我刚刚用Java开始了我的第一个大项目,我正在学习一些教程但是有一些我根本不理解的代码。

package com.Legolando.Runa;

import net.minecraftforge.fml.common.Mod;

@Mod(modid = Reference.MODID, name = Reference.MODNAME, version = Reference.VERSION)
public class Runa {

@Mod.Instance
public static Runa instance = new Runa();
//  I dont get why instance of my class has to be static 

}

如你所见,我在这个类中创建了这个类的实例(对我来说已经是cosmos),这个实例是静态的。有人可以解释什么是静态实例吗?它与静态变量或方法相同吗?

2 个答案:

答案 0 :(得分:0)

这段代码让我想起了java中的Singleton类。

public class Runa {

   private static Runa singleton = new Runa( );

   /* A private Constructor prevents any other
    * class from instantiating.
    */
   private Runa() { }

   /* Static 'instance' method */
   public static Runa getInstance( ) {
      return singleton;
   }

   /* Other methods protected by singleton-ness */
   protected static void demoMethod( ) {
      System.out.println("demoMethod for singleton");
   }
}

仅供参考,Singleton确保在应用程序内只为Runa类创建一个对象。尝试谷歌一点,以便更好地理解java中的Singleton usage

链接: https://www.tutorialspoint.com/java/java_using_singleton.htm

最好的运气

答案 1 :(得分:-1)

这很可能是指软件开发中的一种设计模式,称为单例。

即。该类被设计为仅具有单个实例,可通过静态方式访问。然而,这并不是单身人士的一个很好的例子,因为每个字段都应通过方法进行访问。此外,可能需要私有构造函数来阻止其他类实例化单例。