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编程中的持有对方引用是什么意思?有什么作用?相关推荐
- java编程里的values怎么使用,详解Java编程中super关键字的用法
这篇文章主要介绍了Java编程中this与super关键字的用法,包括从内存结构方面分析super的作用域,需要的朋友可以参考下 通过用static来定义方法或成员,为我们编程提供了某种便利,从某种程 ...
- Java编程中“为了性能”需做的26件事
下面是参考网络资源总结的一些在Java编程中尽可能要做到的一些地方. 1.尽量在合适的场合使用单例 使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说, ...
- JAVA 代码交互率低的原因分析,深入剖析Java编程中的中文问题及建议最优解决方法...
说明:本文为作者原创,作者联系地址为: josserchai@yahoo.com .由于 Java 编程中的中文 问题是一个老生常谈的问题,在阅读了许多关于 Java 中文问题解决方法之后,结合作者的 ...
- Java编程中忽略这些细节,Bug肯定找上你
摘要:在Java语言的日常编程中,也存在着容易被忽略的细节,这些细节可能会导致程序出现各种Bug. 本文分享自华为云社区<Java编程中容易忽略的细节总结丨[奔跑吧!JAVA]>,作者:j ...
- Java编程中“为了性能”尽量要做到的一些地方 [转]
最近的机器内存又爆满了,除了新增机器内存外,还应该好好review一下我们的代码,有很多代码编写过于随意化,这些不好的习惯或对程序语言的不了解是应该好好打压打压了. 下面是参考网络资源总结的一些在Ja ...
- java程序设计专业介绍_简介Java编程中的Object类
这篇文章主要介绍了简介Java编程中的Object类,是Java入门学习中的基础知识,需要的朋友可以参考下 Object 类位于 java.lang 包中,是所有 Java 类的祖先,Java 中的每 ...
- 正确的初始化,在 Java 编程中至关重要!
有人说,你应该关注时事.财经,甚至流行的电影.电视剧,才有可能趁着热点写出爆文:有人说,你别再写"无聊"的技术文了,因为程序员的圈子真的很小,即便是像圈中鸿祥那样的招牌大牛,文章是 ...
- Java编程中“为了性能”尽量要做的26点
最近的机器内存又爆满了,除了新增机器内存外,还应该好好review一下我们的代码,有很多代码编写过于随意化,这些不好的习惯或对程序语言的不了解是应该好好打压打压了. 下面是参考网络资源总结的一些在Ja ...
- 总结在java编程中的经验教训
J2EE综合--总结在java编程中的经验教训 我实际工作中的经验教训,在这里与大家共享,空的字符串是"",不带空格outputStream在打印时,打印的内容后面不要加/n,否则 ...
最新文章
- java全局变量怎么定义_怎么在java中创建一个自定义的collector
- 算法导论——DFS深度优先搜索
- 工作总结10:解决vuex刷新数据消失
- 工具用途_小工具大用途:万能扳手、开瓶器、开箱器,DIY16种用法,玩过吗
- 2.4 shell 脚本基础
- 小小总结之渗透测试面试题以及答案
- 国外访问学者申请政策解析
- PostgreSQL JIT(Just-In-Time Compilation)With LLVM 的实现原理
- 马托石头问题-java(大马中马小马托石头)
- Resin 配置与使用
- 落地语音交互,出门问问从Google Glass开始
- Android开发之安全彻底的修改包名
- linux远程桌面x11,Ubuntu系统安装X11VNC实现远程可视化桌面操作
- Talib常用函数图像形态识别
- Transact SQL教程(一)
- 成为架构师真有那么难?给你套15年架构老兵独家心法
- el-table 根据屏幕大小动态设置max-height来自适应表格的最大高度出现滚动条
- YouTube网红营销:出海品牌如何借势2022圣诞节?
- python2.7使用教程_Python 2.7基础教程之:概要介绍
- 江南大学计算机有博士点吗,江南大学博士点具体是哪些啊?
热门文章
- python 绘图的背景颜色不要_matplotlib自定义添加 “哆啦A梦”背景图,这个操作真牛逼!...
- idea中event log_【JavaScript 教程】事件——Event 对象
- Windows下MySQL数据库更改数据存储位置
- 利用卷积神经网络实现人脸识别(python+TensorFlow)
- MFC图像点运算之灰度线性变化、灰度非线性变化、阈值化和均衡化处理
- Lambda 表达式详解~深入JVM实现原理
- Java并发编程实战~Balking模式
- struts2 防止重复提交 与 进入等待画面
- 怎么导出链接_如何导出CocosCreator项目供cocos2dx加载
- C++学习之路 | PTA乙级—— 1071 小赌怡情 (15 分)(精简)