3

我需要一些帮助将值从我的子类发送到我的超类。

Public class A {

protected int GameSize;

public void setButtons(){   
        for(int row = 0; row < GameSize; row++) {
            for(int col = 0; col < GameSize; col++) {       
                buttons[row][col] = new PlayerButton();
                buttons[row][col].button.addActionListener((ActionListener) this);
                buttons[row][col].player = row+""+col;
                buttons[row][col].button.setIcon(new ImageIcon("src/img/empty.png"));
                box.add(buttons[row][col].button);
            }
        }   

        box.setVisible(true);   

    }

}



public class B extends A {

    public void actionPerformed(ActionEvent a) {
      Object source = a.getSource();
      JButton pressedButton = (JButton)source;  
      if(pressedButton.getText() == "Start Game") {

       GameSize = Integer.parseInt(GameSizeBox.getSelectedItem().toString().replaceAll("x.*","")); 
       if((setplayername1.getText().length() > 0) && (setplayername2.getText().length() > 0)){
        StartNewGame(setplayername1.getText(), setplayername2.getText(), GameSize);
       }
      }
      if(pressedButton.getText() == "Exit") {
       System.exit(0);
      }

     } 
  }

我希望能够在 A 类中使用我在 B 类中更改的 GameSize。如何解决这个问题?为了澄清,我在 A 类中有一个受保护的变量( GameSize ),我在 B 类中更改了这个变量,我想在 A 类的 forloops 中“重用”更改后的 GameSize。

谢谢。

4

1 回答 1

0

如果我理解,您想在 B 类更改后更改 A 类中的值。只需在创建对象 A 之后:

A Class_a = new A();
Class_a.GameSize= /value from B/

您还可以在 A 类中构建构造函数,在 GameSize 中设置值,并在 A 类中使用 super() 在 B 类中调用

A(int a){
GameSize=a;
}

并且在 B 级

super(/* here new value */)
于 2013-05-06T12:28:09.790 回答