这个不是很理解,麻烦同志们授予一下知识。
还有这样做,好处是在哪里?
感谢大家

解决方案 »

  1.   

    http://bbs.csdn.net/topics/220073448不谢
      

  2.   

    就是设置一个属性而已,只不过是个对象,所以直接指向引用就可以了,不用再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:很明显程序一要传每一个成员变量,比较不方便,而程序二相当于在跟一个持有全部成员变量的大管家在打交道,自然可以也可以跟成员变量打交道,方面了程序。
      

  3.   

    class A{
        B b;//这儿就叫做持有对方的引用,他持有对B的引用(好处就是当A需要用到对象B的时候可以直接实例化b,然后使用,不需要再传值)
        fangfaA(){
             
        }
    }class B{
    fangfaB(){}
    }
      

  4.   

    就是Class A中有B对象的引用,,,Class B中也有A对象的引用。。