继承属性访问

时间:2014-05-07 23:38:57

标签: java inheritance constructor

如何在构造函数外部访问java中的继承属性?

public PainelPrincipal(Jogo jogo,GridPanel gridPanelPrincipal) {
    super(jogo,gridPanelPrincipal);
    listaBlocos = new LinkedList<>();

    carregarFicheiroNivel();
    gridPanelPrincipal.setEventHandler(this);
}

private void carregarFicheiroNivel() {
    FileHandler handler = new FileHandler("/niveis/EstadoInicial.txt");
    String conteudo = handler.readFile();
    String[] colunas = null;

    int y=0;
    for(String linha: conteudo.split("\n")){
        colunas = linha.split(" ");
        for(int x = 0; x < colunas.length; x++) {
            if(colunas[x].substring(1, 2).equals(PAREDE)){
                grelha[x][y] = new Parede();
                gridPanelPrincipal.put(0, 0, grelha[0][0].getCellRepresentation());
            }else{
                switch(colunas[x].substring(0, 1)){
                    case "0":break;
                }
            }
        }
        y++;
    }
}

这一行 gridPanelPrincipal.put(0,0,grelha [0] [0] .getCellRepresentation()); 似乎不起作用,他不认识在类的构造函数之外的 gridPanelPrincipal 变量。

是否可以在构造函数外部访问它,或者我该怎么做?

1 个答案:

答案 0 :(得分:1)

你无法在构造函数之外访问它,因为它可能是private。您只能在构造函数中访问它,因为它是构造函数的参数。

你可以:

  1. 在超类中创建适当的变量protected,使其对子类可见,或者
  2. (kludgy的种类)在你的子类中创建你自己的变量来存储它自己对GridPanel的引用,所以你可以用其他方法访问它。