美文网首页
java编程中的持有对方引用是什么意思?有什么作用?

java编程中的持有对方引用是什么意思?有什么作用?

作者: 墨雨轩夏 | 来源:发表于2019-01-23 16:22 被阅读25次

    持有对方引用比如 A类有: h、j、 k, 3种方法,B类有 h 1种方法,但我B类必须要用到 A 类的 k方法怎么办呢?那么下面就要引入引用了!我在 B 类中创建个A类的引用,例如 如果在同一包下就不用导包了

    import 包名.A

    public class B {

    A a=null; 此a就是B类中 对A的引用

    a=new A(); 用此引用创建了A类的实例

    }

    持有对方引用的目的就是为了 更灵活的在对象与对象之间进行 配合 更具有灵活性

    在一个类中访问另外一个类的成员变量,可以利用持有对方的引用来访问

    本程序实现一个简单的加法运算器带图形界面的。

    程序如下:先是不持有对方引用

    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));

    }

    }

    总结:很明显程序一要传每一个成员变量,比较不方便,而程序二相当于在跟一个持有全部成员变量的大管家在打交道,自然可以也可以跟成员变量打交道,方面了程序。

     为了让学习变得轻松、高效,今天给大家免费分享一套Java教学资源。帮助大家在成为Java架构师的道路上披荆斩棘。需要资料的欢迎加入学习交流群:9285,05736

    相关文章

      网友评论

          本文标题:java编程中的持有对方引用是什么意思?有什么作用?

          本文链接:https://www.haomeiwen.com/subject/kpqsjqtx.html