Php 构造函数未定义。(此处使用数组)

Php 构造函数未定义。(此处使用数组),php,arrays,object,constructor,compiler-errors,Php,Arrays,Object,Constructor,Compiler Errors,所以我学校作业的目标是通过矮人类中的构造函数打印数组的元素 package prac11; public class Dwarves { Dwarves[] speler;{ speler = new Dwarves[8]; } public String name; Dwarves(String name) { this.name = name; } public void generate() { speler[0] = new Dwarves(

所以我学校作业的目标是通过矮人类中的构造函数打印数组的元素

package prac11;

public class Dwarves {
Dwarves[] speler;{
    speler = new Dwarves[8];    
}
public String name;

Dwarves(String name) {
    this.name = name;
}
public void generate() {
    
    speler[0] = new Dwarves("Muir");
    speler[1] = new Dwarves("Buith");
    speler[2] = new Dwarves("Gort");
    speler[3] = new Dwarves("Coll");
    speler[4] = new Dwarves("Duir");
    speler[5] = new Dwarves("Quert");
    speler[6] = new Dwarves("Nion");
    speler[7] = new Dwarves("Gus");
    
//  name[0] = "Muir";
//  name[1] = "Buith";
//  name[2] = "Gort";
//  name[3] = "Coll";
//  name[4] = "Duir";
//  name[5] = "Quert";
//  name[6] = "Nion";
//  name[7] = "Gus";

    
}
public void identify() {
    for (int i = 0; i < speler.length; i++) {
        System.out.println("I am " + speler[i]);
    }
}
public void killDwarf(String name) {
    
}

}
数组应该包含对象,每个对象都应该有自己的名称

但是,当我尝试在main中创建一个对象时,该对象希望我在该对象的默认构造函数中放入一个字符串值。。。那么,如何在主窗口中使用构造函数打印数组数据呢? 给我的侏儒班

package prac11;

public class Dwarves {
Dwarves[] speler;{
    speler = new Dwarves[8];    
}
public String name;

Dwarves(String name) {
    this.name = name;
}
public void generate() {
    
    speler[0] = new Dwarves("Muir");
    speler[1] = new Dwarves("Buith");
    speler[2] = new Dwarves("Gort");
    speler[3] = new Dwarves("Coll");
    speler[4] = new Dwarves("Duir");
    speler[5] = new Dwarves("Quert");
    speler[6] = new Dwarves("Nion");
    speler[7] = new Dwarves("Gus");
    
//  name[0] = "Muir";
//  name[1] = "Buith";
//  name[2] = "Gort";
//  name[3] = "Coll";
//  name[4] = "Duir";
//  name[5] = "Quert";
//  name[6] = "Nion";
//  name[7] = "Gus";

    
}
public void identify() {
    for (int i = 0; i < speler.length; i++) {
        System.out.println("I am " + speler[i]);
    }
}
public void killDwarf(String name) {
    
}

}
编辑:不知道如何嵌入代码。:)
代码是用Java编写的。

代码看起来更像Java

您有一个类试图容纳一个dwarf和一个dwarf集合。这是行不通的

类应该是
Dwarf()
,它表示一个Dwarf。为此,构造函数是正确的;它接受矮人的名字


generate()
函数应该在类之外。此函数将创建dwarf实例的集合。您可以为此创建一个新类,但是java已经有了几个可以使用的集合类。

代码看起来更像java

您有一个类试图容纳一个dwarf和一个dwarf集合。这是行不通的

类应该是
Dwarf()
,它表示一个Dwarf。为此,构造函数是正确的;它接受矮人的名字


generate()
函数应该在类之外。此函数将创建dwarf实例的集合。您可以为此创建一个新类,但java已经有几个集合类可供使用。

请包含代码,不要使用屏幕截图。为了帮助你,潜在的回答者不得不重新输入你的代码,这让人感到乏味。。。阅读我想知道哪种版本的PHP是。使用默认值初始化参数或将一个参数传递到构造函数中。请包含代码,不要使用屏幕截图。为了帮助你,潜在的回答者不得不重新输入你的代码,这让人感到乏味。。。阅读我想知道哪种版本的PHP是。使用默认值初始化参数,或将一个参数传递到Construkit中,以便立即为对象零件执行某种工作。但对于输出,我得到的是:我是prac11。Dwarves@7852e922我是prac11。Dwarves@4e25154f我是prac11。Dwarves@70dea4e我是prac11。Dwarves@5c647e05我是prac11。Dwarves@33909752我是prac11。Dwarves@55f96302我是prac11。Dwarves@3d4eac69我是prac11。Dwarves@42a57993You我们正在打印类名。您应该打印矮人名称:
System.out.println(“我是”+speler[I].name)非常感谢!!:)因此,对于对象部分,它现在是一种工作。但对于输出,我得到的是:我是prac11。Dwarves@7852e922我是prac11。Dwarves@4e25154f我是prac11。Dwarves@70dea4e我是prac11。Dwarves@5c647e05我是prac11。Dwarves@33909752我是prac11。Dwarves@55f96302我是prac11。Dwarves@3d4eac69我是prac11。Dwarves@42a57993You我们正在打印类名。您应该打印矮人名称:
System.out.println(“我是”+speler[I].name)非常感谢!!:)