【问题标题】:attempting to create 100 objects in an array using loops in java尝试使用 java 中的循环在数组中创建 100 个对象
【发布时间】:2017-07-21 01:13:34
【问题描述】:

我正在尝试为 java 中的 jrpg 创建地图,我正在作为一个学习项目进行工作。我在地形对象上创建了一个名为 map 的 10x10 数组,并创建了一个独立于数组的地形对象作为测试。接下来我尝试为地图二维数组的每次迭代创建一个地形对象。在这里我得到了错误 “地形无法解析为变量” 我玩过移动几行,并完成了 30 分钟或更长时间的谷歌搜索以寻找解决方案。任何帮助或提示将不胜感激。

terrain[ ][ ] map = new terrain[10][10];

terrain T1   =  new terrain();


public void mapp(){

    int a = RPGmain.test.game.map.length;
    int c=0;
    int d=0;
    while (c <= a){
        int b = RPGmain.test.game.map[c].length;
        while(d <= b){
            terrain map[c][d]= new terrain();  // <------ the first terrain in this line is where i get the error

            d++;
        }
        d=0;
        c++;
    }
}

【问题讨论】:

  • terrain map[c][d] --> map[c][d].
  • terrainmap 之间有一个空格。我不确定你甚至想在那里做什么。你的意思是只输入map[c][d]= new terrain();
  • 类名应以大写字母开头。最好调用类Terrain 而不是terrain

标签: java


【解决方案1】:

当你声明一个字段或变量时,你需要指定它的类型:

int d=0;

当您分配给已定义的变量时,您只需要该变量的名称和新值:

d=0;

数组也是如此。您已经将地图声明为:

terrain[ ][ ] map = new terrain[10][10];

赋值时不需要指定类型:

map[c][d]= new terrain();  

【讨论】:

  • 非常感谢!这正是我所需要的!
【解决方案2】:

你只需要:

map[c][d]= new terrain();  

【讨论】:

    【解决方案3】:

    当您知道需要多少次迭代时,最好使用for 循环:

    for (int i = 0; i < 10; i++) {
      for (int j = 0; j < 10; j++) {
        map[i][j] = new Terrain(); 
      }
    }
    

    还要注意,按照惯例,类的名称以大写字母开头。如果您忽略这一点,编译器不会抱怨,但是当您将来调试代码时,您会为此感谢自己。

    【讨论】:

    • 感谢您的信息,我会这样做的!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多