- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 SimpleBoard 类,它由 Land 扩展,然后由 Units 扩展。每当我尝试编译 Units 时,都会收到此错误:
cannot find symbol
symbol : constructor Land()
location: class Land
public Units(int x, int y){
想想哪里出了问题?
编辑:抱歉,我很着急!完整代码如下:
public class Units extends Land{
private int attack;
public Units(int x, int y) {
if(x==1){
attack = 1;
}
else if(x==2)
attack = 2;
else if(x==3)
attack = 4;
ar[y].AddUnit(this);
}
public int getAttack(){
return attack;
}
}
和土地
public class Land extends SimpleBoard {
private boolean barrel = false;
private boolean crown = false;
private boolean castle = false;
private boolean stronghold = false;
private int num;
private int array = 0;
public int[] adjacent;
private Units [] Occupy = new Units [4];
public Land(int z, int x, int c, int v, int b, int[] array){
if(z == 1)
barrel = true;
if(x == 1)
crown = true;
if(c == 1)
castle = true;
if (v==1)
stronghold = true;
num = b;
adjacent = array;
}
public void addUnit(Units x){
Occupy[array] = x;
array++;
}
public boolean checkB(){
return barrel;
}
public int getAdj(int i){
return adjacent[i];
}
}
还有主板
public class SimpleBoard {
public static Land[] ar = new Land[3];
public static void main(String[] args){
Land One = new Land(1,0,0,0,1, new int[]{2, 3});
Land Two = new Land(0,1,0,0,2, new int[]{1, 3});
Land Three = new Land(0,0,1,0,3, new int[]{1, 2});
ar[0] = One;
ar[1] = Two;
ar[2] = Three;
Units Footman = new Units(1, 1);
Units Knight = new Units(2, 3);
Units Siege = new Units(3, 2);
}
}
最佳答案
您可以将您的 Units
和 Land
类别更改为以下类别:
public class Units extends Land {
private int attack;
public Units(int z, int x, int c, int v, int b, int[] array) {
super(z, x, c, v, b, array);
}
public Units(int x, int y) {
if (x == 1) {
attack = 1;
} else if (x == 2) {
attack = 2;
} else if (x == 3) {
attack = 4;
}
ar[y].addUnit(this);
}
public int getAttack() {
return attack;
}
}
public class Land extends SimpleBoard {
// Declared variable
public Land(int x, int y) {
}
// Rest of the code...
}
由于继承,您将在 Units
类中声明的构造函数也必须存在于 Land
类中。
在 Land
类中添加一个名为 Land(int x, int y)
的构造函数,内部不包含任何代码(只是一个空白构造函数),以便消除错误在您的 Units
类中。这不是最好的做法,因为我不知道你想做什么。如果您赶时间,可以尝试一下这个,但如果您有时间,请简要说明您的申请目的。
SimpleBoardGame.java
public class SimpleBoardGame {
private static Land[] ar = new Land[3];
public static Land[] getAr() {
return ar;
}
public static void main(String[] args) {
Land One = new Land(1, 0, 0, 0, 1, new int[]{2, 3});
Land Two = new Land(0, 1, 0, 0, 2, new int[]{1, 3});
Land Three = new Land(0, 0, 1, 0, 3, new int[]{1, 2});
ar[0] = One;
ar[1] = Two;
ar[2] = Three;
// When you pass the parameter for 'y' please make sure it already minus by one.
// If not, will occur the 'java.lang.ArrayIndexOutOfBoundsException'
Unit Footman = new Unit(1, 0);
Unit Knight = new Unit(2, 2);
Unit Siege = new Unit(3, 1);
}
}
<小时/>
Land.java
public class Land {
// For boolean variable, no need to set the value as "false" since it default is "false".
private boolean barrel;
private boolean crown;
private boolean castle;
private boolean stronghold;
private int num;
private int array = 0;
public int[] adjacent;
private Unit[] Occupy = new Unit[4];
public Land(int x, int y) {
// Empty constructor...
}
public Land(int z, int x, int c, int v, int b, int[] array) {
if (z == 1) {
barrel = true;
}
if (x == 1) {
crown = true;
}
if (c == 1) {
castle = true;
}
if (v == 1) {
stronghold = true;
}
num = b;
adjacent = array;
}
public void addUnit(Unit x) {
Occupy[array] = x;
array++;
}
public boolean checkB() {
return barrel;
}
public int getAdj(int i) {
return adjacent[i];
}
}
<小时/>
Unit.java (从 Units.java
更改为 Unit.java
)
public class Unit extends Land {
private int attack;
public Unit(int z, int x, int c, int v, int b, int[] array) {
super(z, x, c, v, b, array);
}
public Unit(int x, int y) {
super(x, y);
if (x == 1) {
attack = 1;
} else if (x == 2) {
attack = 2;
} else if (x == 3) {
attack = 4;
}
addUnit(y);
}
/**
* Overload method of the addUnit() of Land class.
* Better not use "this" inside the constructor.
*
* @param y
*/
public final void addUnit(int y) {
SimpleBoardGame.getAr()[y].addUnit(this);
}
public int getAttack() {
return attack;
}
}
注意:如果您想访问 main 中的变量,请确保您没有继承 SimpleBoardGame
作为 Land
类中的主类类只是为此创建 setter 和 getter。您可以像这样访问 SimpleBoardGame.getAr()[y].addUnit(this);
(请参阅 Unit< 中的方法
类。addUnit(int y)
内部
关于java在第二类中找不到构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11731617/
例如,我有一个父类Author: class Author { String name static hasMany = [ fiction: Book,
代码如下: dojo.query(subNav.navClass).forEach(function(node, index, arr){ if(dojo.style(node, 'd
我有一个带有 Id 和姓名的学生表和一个带有 Id 和 friend Id 的 Friends 表。我想加入这两个表并找到学生的 friend 。 例如,Ashley 的 friend 是 Saman
我通过互联网浏览,但仍未找到问题的答案。应该很容易: class Parent { String name Child child } 当我有一个 child 对象时,如何获得它的 paren
我正在尝试创建一个以 Firebase 作为我的后端的社交应用。现在我正面临如何(在哪里?)找到 friend 功能的问题。 我有每个用户的邮件地址。 我可以访问用户的电话也预订。 在传统的后端中,我
我主要想澄清以下几点: 1。有人告诉我,在 iOS 5 及以下版本中,如果您使用 Game Center 设置多人游戏,则“查找 Facebook 好友”(如与好友争夺战)的功能不是内置的,因此您需要
关于redis docker镜像ENTRYPOINT脚本 docker-entrypoint.sh : #!/bin/sh set -e # first arg is `-f` or `--some-
我是一名优秀的程序员,十分优秀!