【问题标题】:Cant see my created array object's properties from main class无法从主类中看到我创建的数组对象的属性
【发布时间】:2012-05-25 21:03:38
【问题描述】:

类块

public class block {    
public enum size {SMALL,MEDIUM,LARGE,XLARGE}
    public String color;public size sz;

public block(String color, size sz) {
    super();
    this.color = color;
    this.sz = sz;
}
     public block() {
    this.color="White";
    this.sz=sz.SMALL;

}

public String toString() {
    String result="My color is " + color + " and size=" + sz;
    return result;}

类 rowOfBlock

public class rowofBlocks extends block{

        private block[] blocks;
private int numofBlocks;

public rowofBlocks(int numofBlocks){
    //super();
    this.numofBlocks=numofBlocks;
    generateBlocks() ;
}

private void generateBlocks() {

    this.blocks=new block[numofBlocks];

}

public String toString() {
    for(int a=0;a<blocks.length;a++)
    {

    System.out.print( blocks[a]);
    }
    String a="d";
    return a;
}
}

游戏主类

public class gameMain {

    public static void main(String[] args) {



block b=new block();
b.setSz(block.size.LARGE);
b.setColor("WHITE");

    rowofBlocks myrows=new rowofBlocks(3);
    System.out.println(b);
    System.out.println(myrows);
    }}

我的意思是当我尝试创建块数组时,我只看到 nullnullnulld 而不是我的颜色是白色。

【问题讨论】:

  • 尽量减少您发布的代码量,专注于相关部分,以便您有更好的机会获得帮助和建议。
  • 在不相关的注释中,类名应以大写字母开头

标签: java arrays


【解决方案1】:

您获得null 值是因为您没有在RowOfBlocks 的数组中创建任何Block 类的对象。

创建数组后:

this.blocks = new block[numofBlocks];

在generateBlocks()的方法体中

您必须对其进行迭代并插入实际块:

for(int i=0 ; i < this.blocks.length ; i++) {
     this.blocks[i] = new Block();
}

【讨论】:

  • @user1418230 不客气。下次尝试更清楚地发布您的问题。您的代码需要大量格式化,其中一些我做了(但在缩进方面仍然不正确)。此外,您没有为您使用的编程语言添加标签(在发布问题后对其进行了编辑)。多加注意这些事情,你的问题就不会被低估了。您也将更容易获得正确的答案。祝你有美好的一天。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-09
  • 2018-12-19
相关资源
最近更新 更多