【发布时间】:2015-05-30 14:26:17
【问题描述】:
package simpleclass;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.FileNotFoundException;
import java.io.IOException;
import javax.swing.JButton;
import javax.swing.JFrame;
public class SimpleClass extends BaseClass {
JButton b1 = new JButton("Category");
JButton b2 = new JButton("Select");
JFrame f = new JFrame();
SimpleClass() {
f.add(b1);
f.add(b2);
f.setLayout(new GridLayout(1, 2));
f.setSize(200, 200);
f.setLocationRelativeTo(null);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
b1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
try {
new SubClass();
} catch (IOException ex) {
}
}
});
b2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println(astring);
}
});
}
public static void main(String[] args) {
new SimpleClass();
}
}
class BaseClass {
String astring;
public void setString(String astring) {
this.astring = astring;
}
}
class SubClass extends BaseClass {
SubClass() throws FileNotFoundException {
super.setString("WHYnull");
}
}
在这段代码中有一个基类BaseClass 和两个子类SimpleClass 和SubClass。有两个按钮。当按钮 "Category" 被按下时,字符串 "astring" 被设置为 "WHYnull"。现在我的问题是,当我按下 "Select" 按钮之后,为什么会打印 "null" ?变量 "astring" 不是排他的吗?
【问题讨论】:
标签: java class user-interface hierarchy