gpt4 book ai didi

java - "No enclosing instance of type Hra is accessible."

转载 作者:行者123 更新时间:2023-11-30 03:58:48 24 4
gpt4 key购买 nike

我的代码有这个问题,我不知道如何解决它,请帮助我。无法访问 Hra 类型的封闭实例。必须使用 Hra 类型的封闭实例来限定分配(例如 x.new A(),其中 xHra 的实例)。”

public class Hra {

public static void main(String[] args) {
Hrac h = new Cerveny(1); // there is that error
int result = h.zautoc(55, 30);
System.out.print(0);
}

public Hrac[] pole;
private int counter;

public Hra() {
this.pole = new Hrac[100];
this.counter = 0;
}

public void pridajHraca(Hrac h) {
this.pole[counter] = h;
}

public abstract class Hrac{

protected double zivot;
public int tim;

public int zautoc(int velkost, int mojaPozicia){
if (tim == 1){
if (mojaPozicia >= 7)
return (mojaPozicia -7);
else
return (velkost - 7 - mojaPozicia);
}
if (tim == 2){
if (mojaPozicia +3 <= velkost)
return (mojaPozicia +3);
else
return (mojaPozicia -velkost +3 );
}
return 0;
}

}

public class Cerveny extends Hrac{
public Cerveny(double _zivot) {
super.zivot = _zivot;
super.tim = 1;
}
}

public class Cierny extends Hrac{
public Cierny(double _zivot) {
super.zivot = _zivot;
super.tim = 2;
}
}
}

最佳答案

您正在使用非静态 nested classes ,也称为内部类。这些类的实例需要构造其包含类的实例,如消息所示:

Must qualify the allocation with an enclosing instance of type Hra (e.g. x.new A() where x is an instance of Hra

查看您的代码,这些内部类可能是静态嵌套类,因为它们不访问其封闭类的任何成员。或者甚至更好,因为您似乎还不知道嵌套类是什么,并且因为我没有看到嵌套这些类的任何充分理由,所以它们应该是顶级类,在自己的 中定义.java 文件。在了解嵌套类的用途和工作原理之前,请勿使用它们。

关于java - "No enclosing instance of type Hra is accessible.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22426277/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com