Java静态构造函数不起作用

时间:2015-06-27 02:37:05

标签: java eclipse windows

这是我的代码

class Bomb {
    static String description = "bomb description";
    static int id = 1;

    private String name;
    private int size;

    public static void Bomb() {
    id++;
    System.out.println(" " + description + " " + id);

    }

    public void setName(String name) {
        this.name = name;
    }

    public void setSize(int size) {
        this.size = size;
   }

    public void printout() {
        System.out.println(" " + name + size);
    }
}

public class array {
    public static void main(String args[]) {
        Bomb.Bomb();
        Bomb detenator = new Bomb();
        Bomb destroyer = new Bomb();
        destroyer.setName("hr4");
        destroyer.setSize(43);
        detenator.setName("m1s");
        detenator.setSize(34);

        detenator.printout();
        destroyer.printout();

    }

}

我想用每个炸弹对象打印描述。但描述单独打印。 任何人都知道如何解决这个问题? 还请建议我可以编写此代码的任何其他方法,但不要让它变得复杂。我刚开始学习java所以我可能不会理解复杂的东西。

2 个答案:

答案 0 :(得分:3)

我说,没有“静态构造函数”。

您可能需要引用静态成员的内容,如下所示:

public Bomb() {
    id++;
    System.out.println(" " + Bomb.description + " " + id);
}

请查看Java tutorial of constructors

  

构造函数声明看起来像方法声明 - 除了它们使用类的名称并且没有返回类型。

答案 1 :(得分:0)

你对构造函数的定义完全搞砸了。

  1. 正如@Reut Sharabani所说,没有像静态构造函数那样的东西。您正在使用构造函数来启动类的对象。而静态让你只需调用ClassName.staticMethod()就可以使用方法,而无需创建类的对象(排除另一个对象)。如果存在静态构造函数,您将能够编写类似于ClassName.ClassName()的内容,这些内容毫无意义。

  2. 构造函数不返回任何值,因此将它们声明为void是一个错误。构造函数再次用于使用一些值初始化您的对象(但不必要)