什么叫做持有对方引用?
这个不是很理解,麻烦同志们授予一下知识。还有这样做,好处是在哪里?
感谢大家 --------------------编程问答-------------------- http://bbs.csdn.net/topics/220073448不谢 --------------------编程问答-------------------- 就是设置一个属性而已,只不过是个对象,所以直接指向引用就可以了,不用再new一个。
在一个类中访问另外一个类的成员变量,可以利用持有对方的引用来访问
本程序实现一个简单的加法运算器带图形界面的。
程序如下:先是不持有对方引用
import java.awt.*;
import java.awt.event.*;
public class TestMath {
public static void main(String[] args) {
MyFrame9 f = new MyFrame9();
f.MyMath();
}
}
class MyFrame9 extends Frame {
TextField tf1,tf2,tf3;
public void MyMath() {
tf1 = new TextField("10");
tf2 = new TextField("10");
tf3 = new TextField("20");
Label label1 = new Label("+");
Button b1 = new Button("=");
b1.addActionListener(new MyMonitor(tf1,tf2,tf3));
setLayout(new FlowLayout());
add(tf1);
add(label1);
add(tf2);
add(b1);
add(tf3);
pack();
setVisible(true);
}
}
class MyMonitor implements ActionListener {
TextField tf1,tf2,tf3;
MyMonitor(TextField tf1,TextField tf2,TextField tf3) {
this.tf1 = tf1;
this.tf2 = tf2;
this.tf3 = tf3;
}
public void actionPerformed(ActionEvent e) {
int n1 = Integer.parseInt(tf1.getText());
int n2 = Integer.parseInt(tf1.getText());
tf3.setText(""+(n1+n2));
}
}
再在源程序上修改为:持有对方引用
import java.awt.*;
import java.awt.event.*;
public class TestMath {
public static void main(String[] args) {
MyFrame9 f = new MyFrame9();
f.MyMath();
}
}
class MyFrame9 extends Frame {
TextField tf1,tf2,tf3;
public void MyMath() {
tf1 = new TextField("10");
tf2 = new TextField("10");
tf3 = new TextField("20");
Label label1 = new Label("+");
Button b1 = new Button("=");
b1.addActionListener(new MyMonitor(this));
setLayout(new FlowLayout());
add(tf1);
add(label1);
add(tf2);
add(b1);
add(tf3);
pack();
setVisible(true);
}
}
class MyMonitor implements ActionListener {
MyFrame9 mf = null;
MyMonitor(MyFrame9 mf) {
this.mf = mf;
}
public void actionPerformed(ActionEvent e) {
int n1 = Integer.parseInt(mf.tf1.getText());
int n2 = Integer.parseInt(mf.tf2.getText());
mf.tf3.setText(""+(n1+n2));
}
}
PS:很明显程序一要传每一个成员变量,比较不方便,而程序二相当于在跟一个持有全部成员变量的大管家在打交道,自然可以也可以跟成员变量打交道,方面了程序。 --------------------编程问答-------------------- ++ --------------------编程问答-------------------- class A{
B b;//这儿就叫做持有对方的引用,他持有对B的引用(好处就是当A需要用到对象B的时候可以直接实例化b,然后使用,不需要再传值)
fangfaA(){
}
}
class B{
fangfaB(){}
}
--------------------编程问答-------------------- 就是Class A中有B对象的引用,,,Class B中也有A对象的引用。。 --------------------编程问答-------------------- 你可以这样理解,把对方引用想成一个总裁,通常员工在处理重大决策中必须得到总裁的许可,通常总裁不会和员工这种小角色打交道吧,如果你时刻有办法把总裁绑在你身边,你要处理一些重大决策的时候是不是可以直接向总裁汇报了。就是有了总裁(对方引用),员工(持有对方引用的类)的处理效率会大大提高。这也就是持有对方引用的好处。 --------------------编程问答-------------------- 看了2,4,6楼的我想你应该明白了,持有对方引用方便自己使用
补充:Java , Java SE