class MyMonitor implements ActionListener {
TFFrame tf = null;//TFFrame是一个继承了Frame的类
public MyMonitor(TFFrame tf) {
this.tf = tf;
}
public void actionPerformed(ActionEvent e) {
int n1 = Integer.parseInt(tf.num1.getText());
int n2 = Integer.parseInt(tf.num2.getText());
tf.num3.setText("" + (n1+n2));
}
}TFFrame不是已经在MyMonitor中声明可一个引用tf了么?也就是说actionPerformed方法不是已经可以直接用了么?为什么还要在MyMonitor的构造方法中写那么一下!谢谢回答!!
this.tf = tf;
}构造这个MyMonitor 从外部传递一个TFFrame 赋给tf引用,lz好好看一下基础啊
永远是null 那你 怎么用啊??当然 你可以 用无 参 构造函数 然后再全局变量 里 赋值也是一样
class MyMonitor implements ActionListener {
TFFrame tf = new TFFrame() ;//TFFrame是一个继承了Frame的类
public MyMonitor() {
}
public void actionPerformed(ActionEvent e) {
int n1 = Integer.parseInt(tf.num1.getText());
int n2 = Integer.parseInt(tf.num2.getText());
tf.num3.setText("" + (n1+n2));
}
}
TFFrame tf = new TFFrame();
但有的时候需要在new的时候传递参数来指定,比如你给的代码:
this.tf = tf;//等号右边的tf是参数,在new的时候指定的参数你的代码就属于后者。
在实际应用中,你的某个窗体要操作它的父窗体上的控件,一般就用你的这种方式。
在new子窗体的时候,传递一个父窗体的引用进去。这样在子窗体里就可以对父窗体进行操作了。
this.tf = tf;
}
正是一个初始化的过程!
声明了TFFrame类型的变量tf,但是并没有构造一个TFFrame对象,此处是一个空引用。
楼主要弄清楚引用和对象的区别。构造对象用new TFFrame();
this.tf = tf;
}
赋的值的