持有对方引用比如 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编程中的持有对方引用是什么意思?有什么作用?相关推荐

  1. java编程里的values怎么使用,详解Java编程中super关键字的用法

    这篇文章主要介绍了Java编程中this与super关键字的用法,包括从内存结构方面分析super的作用域,需要的朋友可以参考下 通过用static来定义方法或成员,为我们编程提供了某种便利,从某种程 ...

  2. Java编程中“为了性能”需做的26件事

    下面是参考网络资源总结的一些在Java编程中尽可能要做到的一些地方. 1.尽量在合适的场合使用单例 使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说, ...

  3. JAVA 代码交互率低的原因分析,深入剖析Java编程中的中文问题及建议最优解决方法...

    说明:本文为作者原创,作者联系地址为: josserchai@yahoo.com .由于 Java 编程中的中文 问题是一个老生常谈的问题,在阅读了许多关于 Java 中文问题解决方法之后,结合作者的 ...

  4. Java编程中忽略这些细节,Bug肯定找上你

    摘要:在Java语言的日常编程中,也存在着容易被忽略的细节,这些细节可能会导致程序出现各种Bug. 本文分享自华为云社区<Java编程中容易忽略的细节总结丨[奔跑吧!JAVA]>,作者:j ...

  5. Java编程中“为了性能”尽量要做到的一些地方 [转]

    最近的机器内存又爆满了,除了新增机器内存外,还应该好好review一下我们的代码,有很多代码编写过于随意化,这些不好的习惯或对程序语言的不了解是应该好好打压打压了. 下面是参考网络资源总结的一些在Ja ...

  6. java程序设计专业介绍_简介Java编程中的Object类

    这篇文章主要介绍了简介Java编程中的Object类,是Java入门学习中的基础知识,需要的朋友可以参考下 Object 类位于 java.lang 包中,是所有 Java 类的祖先,Java 中的每 ...

  7. 正确的初始化,在 Java 编程中至关重要!

    有人说,你应该关注时事.财经,甚至流行的电影.电视剧,才有可能趁着热点写出爆文:有人说,你别再写"无聊"的技术文了,因为程序员的圈子真的很小,即便是像圈中鸿祥那样的招牌大牛,文章是 ...

  8. Java编程中“为了性能”尽量要做的26点

    最近的机器内存又爆满了,除了新增机器内存外,还应该好好review一下我们的代码,有很多代码编写过于随意化,这些不好的习惯或对程序语言的不了解是应该好好打压打压了. 下面是参考网络资源总结的一些在Ja ...

  9. 总结在java编程中的经验教训

    J2EE综合--总结在java编程中的经验教训 我实际工作中的经验教训,在这里与大家共享,空的字符串是"",不带空格outputStream在打印时,打印的内容后面不要加/n,否则 ...

最新文章

  1. java全局变量怎么定义_怎么在java中创建一个自定义的collector
  2. 算法导论——DFS深度优先搜索
  3. 工作总结10:解决vuex刷新数据消失
  4. 工具用途_小工具大用途:万能扳手、开瓶器、开箱器,DIY16种用法,玩过吗
  5. 2.4 shell 脚本基础
  6. 小小总结之渗透测试面试题以及答案
  7. 国外访问学者申请政策解析
  8. PostgreSQL JIT(Just-In-Time Compilation)With LLVM 的实现原理
  9. 马托石头问题-java(大马中马小马托石头)
  10. Resin 配置与使用
  11. 落地语音交互,出门问问从Google Glass开始
  12. Android开发之安全彻底的修改包名
  13. linux远程桌面x11,Ubuntu系统安装X11VNC实现远程可视化桌面操作
  14. Talib常用函数图像形态识别
  15. Transact SQL教程(一)
  16. 成为架构师真有那么难?给你套15年架构老兵独家心法
  17. el-table 根据屏幕大小动态设置max-height来自适应表格的最大高度出现滚动条
  18. YouTube网红营销:出海品牌如何借势2022圣诞节?
  19. python2.7使用教程_Python 2.7基础教程之:概要介绍
  20. 江南大学计算机有博士点吗,江南大学博士点具体是哪些啊?

热门文章

  1. python 绘图的背景颜色不要_matplotlib自定义添加 “哆啦A梦”背景图,这个操作真牛逼!...
  2. idea中event log_【JavaScript 教程】事件——Event 对象
  3. Windows下MySQL数据库更改数据存储位置
  4. 利用卷积神经网络实现人脸识别(python+TensorFlow)
  5. MFC图像点运算之灰度线性变化、灰度非线性变化、阈值化和均衡化处理
  6. Lambda 表达式详解~深入JVM实现原理
  7. Java并发编程实战~Balking模式
  8. struts2 防止重复提交 与 进入等待画面
  9. 怎么导出链接_如何导出CocosCreator项目供cocos2dx加载
  10. C++学习之路 | PTA乙级—— 1071 小赌怡情 (15 分)(精简)