使用参数创建构造函数

时间:2016-03-01 19:58:55

标签: java parameters constructor

这可能是一个愚蠢的问题,但我不能让我的程序运行 我必须:

  

向Hero添加构造函数,仅将World作为参数。除了将World实例变量设置为传入的参数外,不要在构造函数中执行任何操作。

到目前为止我已经

public Hero(World world){
    this.world = world;
}

这是对的吗?我一直试图在我的程序中打电话给世界,但它没有工作。

2 个答案:

答案 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(){

}