2013-03-19 109 views
0

我在Java方面非常新穎,曾經爲C++編寫過一段時間,而且面向對象和一個令人興奮的新冒險。父母致電兒童功能

我試圖在這個問題上進行搜索,但我一直沒能解答轉移到我個人的問題,所以這裏有雲:

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_CellsgetCell()功能和Cell「可供Loop使用S getState()setState()功能?

+0

您可能需要重新考慮您的班級heirarchy – Cruncher 2013-03-19 15:18:58

+0

您究竟在哪裏打電話給這些?因爲你實例化BuildCells。實例化後,您可以調用其方法。 – Cruncher 2013-03-19 15:20:51

回答

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的內容。