这可能是一个愚蠢的问题,但我不能让我的程序运行 我必须:
向Hero添加构造函数,仅将World作为参数。除了将World实例变量设置为传入的参数外,不要在构造函数中执行任何操作。
到目前为止我已经
了public Hero(World world){
this.world = world;
}
这是对的吗?我一直试图在我的程序中打电话给世界,但它没有工作。
答案 0 :(得分:2)
这确实是定义一个构造函数的方法,该构造函数将参数作为输入。
您可能忽略的一个问题是,当调用构造函数时,您必须为其提供一个值。例如,如果你定义了一个类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
(在名为World.java
的文件中)。例如这个存根:
public class World {
}
(如果您自己不提供构造函数,Java将定义default constructor itself)。
根据您编译项目的方式(使用IDE,使用命令行,...),您有时需要自己将此文件添加到项目中,或者使用以下命令编译:
javac Hero.java World.java
(可能还有其他.java
个文件)
答案 1 :(得分:0)
当你在代码中定义任何构造函数时,java提供了一个默认的无参数构造函数,但是当你明确定义一个接受一些参数的构造函数时,java并没有提供默认值构造函数。因此,您需要在此处定义默认的无参数构造函数。
public Hero(){
}