我需要一些帮助,从我的子类向我的超类发送值。
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);
}
}
}
我希望能够使用在B类,A类中更改的GameSize。如何解决此问题?为了澄清起见,我在类A中有一个受保护的变量(GameSize),并且在类B中更改了此变量,并且我想“重用”在类A的forloop中更改的GameSize。
谢谢。
最佳答案
据我了解,您想在B类更改后更改A类的值。
在创建对象A之后,即可:
A Class_a = new A();
Class_a.GameSize= /value from B/
您还可以在A类中构建构造函数,在GameSize中设置值,并通过使用super()在B类中调用
A班
A(int a){
GameSize=a;
}
在B级
super(/* here new value */)