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

持有对方引用比如 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开发手册(v1.1.1) - 异常日志 前言 阿里Java开发手册谈不上圣经,但确实是大量...
    kelgon阅读 9,818评论 4 50
  • 设计模式分类 总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原...
    lifeline丿毅阅读 4,963评论 0 2
  • 2018年1月11日 星期五 晴 今晨,看到艳阳高照,内心就像迎来一束光,把内在的快乐因子激活了。迎着如此晴朗的天...
    旅行心情记阅读 2,688评论 1 3
  • 海外三十六城 有一目国 从东北往西北去 有一目民 烛阴之东 食黍之人 言是少昊之子 威姓 这样的种族可以激起 大大...
    抱璞子阅读 1,521评论 0 1
  • 里烈3018-03-02 目标:女儿能学会学习,喜欢学习 1、怀着感恩高兴的心态给爸爸打款。 2、我还是慈悲的心态...
    里喻棋阅读 1,274评论 0 0