这可能是一个愚蠢的问题,但我不能让我的程序运行。
我必须:使用参数创建一个构造函数
添加一个构造函数来英雄只需要一个世界作为一个参数。除了设置在通过了世界的实例变量的参数在构造函数中,不要做任何事情。
到目前为止,我
public Hero(World world){
this.world = world;
}
这是正确的?以后一直试图在我的程序中调用世界,但它不起作用。
这可能是一个愚蠢的问题,但我不能让我的程序运行。
我必须:使用参数创建一个构造函数
添加一个构造函数来英雄只需要一个世界作为一个参数。除了设置在通过了世界的实例变量的参数在构造函数中,不要做任何事情。
到目前为止,我
public Hero(World world){
this.world = world;
}
这是正确的?以后一直试图在我的程序中调用世界,但它不起作用。
这确实是定义一个构造函数的方式,它将输入参数作为输入。
您可能忽略的一个问题是,当调用构造函数时,您必须为其提供一个值。如果您例如已定义的类Hero
:
public class Hero {
private World world;
public Hero (World world) {
this.world = world;
}
}
您不能再构建一个Hero
:
Hero hero = new Hero();
事实上,new Hero();
期望一个World
。例如你可以先构造一个World
和饲料它英雄:
World world = new World();
Hero hero = new Hero(world);
你还必须定义(在一个名为World.java
文件)一类World
。例如存根:
public class World {
}
(如果你不自己提供一个构造函数,Java将定义一个default constructor itself)。
取决于你如何编译项目(使用IDE,使用命令行,......),你有时需要这个文件将自己添加到您的项目,或编译:
javac Hero.java World.java
(也许还有其他的.java
文件)
当你没有在你的代码中定义任何构造函数时,java提供了一个默认的无参数构造函数,但是当你显式地定义了一个接受某些参数的构造函数时,java不会提供默认的构造函数。因此,您需要在这里定义默认的无参数构造函数。
public Hero(){
}
你得到了什么错误,请提供一个* reproducible *例子以及编译器/运行时输出。 –
你在调用构造函数吗?'Hero heroVar = new Hero(world)'? – JCollerton
我的编译器说它'找不到符号' –