繁体   English   中英

Java静态构造函数不起作用

[英]Java Static constructor not working

这是我的代码

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,所以我可能不会理解复杂的东西。

简而言之,没有“静态构造函数”。

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

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

阅读构造函数Java 教程

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM