0

我是 Java 的新手,已经编写了一段时间的 C++ 和 OOP 以及对我来说令人兴奋的新冒险。

我试图搜索这个问题,但我无法将答案转移到我的个人问题中,所以这里是:

循环.java

public class Loop {
public int x;
public int y;
public int size;

public static void main(String [] args){
    new Loop(4, 4 ,2 );
}
private boolean game;

//---------------------------------------- constructor
public Loop(){
    }
public Loop(int height, int width, int cell_size){
    x = width;
    y = height;
    size = cell_size;
    System.out.println("Loop()");
    game = true;
    new Build_Cells(y,x);
    //run();
}
};

Build_Cells.java

import java.util.*;

public class Build_Cells extends Loop {
private List<List<Cell>> map = new ArrayList<List<Cell>>();
public int col;
public int rows;
public void printMap(){
    System.out.println("PrintMap()");
    for( int i = 0; i < map.size() /** col */; i++){
        for( int u = 0; u < map.get(i).size() /** rows */ ;u++){
            System.out.print(map.get(i).get(u).getState());
        }
        System.out.println();
    }
}
public Cell getCell(int a, int b){
    return map.get(a).get(b);
}
//---------------------------------------- constructor
public Build_Cells(){
}
public Build_Cells( int by, int bx){
    System.out.println("Build_Cells()");
    col = by;
    rows = bx;
    for( int i = 0; i < col ; i++){
        List<Cell> colObj = new ArrayList<Cell>(rows);
        map.add(y, colObj);
        for(int u = 0; u < rows; u++){
            colObj.add( new Cell() );
        }
    }
    printMap();
}
};

单元格.java

public class Cell extends Build_Cells {
private int state;
private int nemesis;
private int next;
private int getNem(int cs){
    int cata;
    if(cs == 1)
        cata = 0;
    else if(cs == (0 | 2 | 3) )
        cata = 1;
    else
        cata = 6;
    return cata;
}


//---------------------------------------- constructor
public Cell(){
    System.out.println("Cell()");
    set_state(5);
}
public void set_state(int input){
    state = input;
    nemesis = getNem(state);
}
public int getState(){
    return state;
}
};

如何使Build_Cells'sgetCell()功能和Cell'sgetState()setState()功能可供使用Loop

4

1 回答 1

0

您已经创建了 of 的实例,Build_Cell但没有存储对它的引用。如果你改变:

new Build_Cells(y,x);

Build_Cells buildCells = new Build_Cells(y,x);

您将可以buildCells.getCell()从拨打电话Loop。您可以通过调用获取单元格的状态,也可以通过调用buildCells.getCell().getState()设置其状态buildCells.getCell().setState()

此外,Cell可能不应该扩展,Build_Cells因为它不使用它的任何功能。您可以在此处阅读有关 Java 中 OOP 的更多信息。

于 2013-03-19T15:32:04.683 回答