从父母那里召唤儿童的功能

时间:2013-03-19 15:04:43

标签: java function parent children

我是Java的新手,已经编写了一段时间的C ++和OOP,这对我来说是一次激动人心的新冒险。

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

Loop.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();
}
};

Cell.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的{​​{1}}功能和getCell()的{​​{1}}和Cell功能可供getState()使用?

1 个答案:

答案 0 :(得分:0)

您已创建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 here中阅读有关OOP的更多信息。