这是我的代码
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所以我可能不会理解复杂的东西。
答案 0 :(得分:3)
我说,没有“静态构造函数”。
您可能需要引用静态成员的内容,如下所示:
public Bomb() {
id++;
System.out.println(" " + Bomb.description + " " + id);
}
请查看Java tutorial of constructors:
构造函数声明看起来像方法声明 - 除了它们使用类的名称并且没有返回类型。
答案 1 :(得分:0)
你对构造函数的定义完全搞砸了。
正如@Reut Sharabani所说,没有像静态构造函数那样的东西。您正在使用构造函数来启动类的对象。而静态让你只需调用ClassName.staticMethod()
就可以使用方法,而无需创建类的对象(排除另一个对象)。如果存在静态构造函数,您将能够编写类似于ClassName.ClassName()
的内容,这些内容毫无意义。
构造函数不返回任何值,因此将它们声明为void是一个错误。构造函数再次用于使用一些值初始化您的对象(但不必要)