如何使用变量名在派生的 class 构造函数中初始化数组?

How to initialize array in a derived class constructor, with variable name?

所以这里是 class:

public class Palya {
    Mezo[][] m;

    public Palya(Mezo[][] m){
        this.m = m;
}

它是派生的:

public class PalyaTeszt extends Palya{

    public PalyaTeszt(Mezo[][] m) {
        super(new Mezo[][]  {
                {new Szikla(),    new Szikla(),     new Viz(),        new Szikla(),     new Szikla(),     new Preri(true)},
                {new Szikla(),    new Szikla(),     new Preri(false), new Preri(false), new Preri(false), new Szikla()},
                {new Szikla(),    new Szikla(),     new Preri(false), new Preri(false), new Szikla(),     new Szikla()},
                {new Szikla(),    new Szikla(),     new Preri(false), new Szikla(),     new Viz(),        new Preri(false)},
                {new Szikla(),    new Szikla(),     new Preri(false), new Szikla(),     new Viz(),        new Szikla()},
                {new Preri(true), new Preri(false), new Preri(false), new Preri(false), new Preri(false), new Preri(false)}
        });
    }
}

在派生的构造函数中,数组是用另一个名为 Mezo 的 class 初始化的,这个 Mezo[][] m class 有我想访问的方法,但是没有为其命名,例如 m.getSomething()。 如何以我可以使用 Mezo 方法的方式对其进行初始化? 如果百丽雅只是一个界面会不会更好? Palya 的意思是像棋盘一样的 6x6 区域,只是用于不同的目的。 我想要6个不同的Palya

问题是您没有为 class Palya 中的 m 字段添加访问级别修饰符,它应该如下所示:

public class Palya {
    protected Mezo[][] m; // Note protected keyword

    public Palya(Mezo[][] m){
        this.m = m;
}

如果没有修饰符被证明,默认情况下只允许在 class 和同一包的成员内部访问。

更多关于 Java 中的访问修饰符 - official docs