什么叫做持有对方引用? 这个不是很理解,麻烦同志们授予一下知识。还有这样做,好处是在哪里?感谢大家 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://bbs.csdn.net/topics/220073448不谢 就是设置一个属性而已,只不过是个对象,所以直接指向引用就可以了,不用再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:很明显程序一要传每一个成员变量,比较不方便,而程序二相当于在跟一个持有全部成员变量的大管家在打交道,自然可以也可以跟成员变量打交道,方面了程序。 class A{ B b;//这儿就叫做持有对方的引用,他持有对B的引用(好处就是当A需要用到对象B的时候可以直接实例化b,然后使用,不需要再传值) fangfaA(){ }}class B{fangfaB(){}} 就是Class A中有B对象的引用,,,Class B中也有A对象的引用。。 谁有<JAVA编程思想>最新版的电子书? 请问如何计算时间差 Swing中什么控件可以显示文字,并可以设置文字的颜色和大小。 刚入门者的上机题,在异常方面有些问题,请大家指教 关于多个线程数据共享的问题 一年又过去了,感觉自己一事无成,唉!忘掉过去!2004奋发向前! 至XKP,谢谢! (●●●●)在Applet程序中怎样能连到一个网址;比如:点击按纽,页面切换到该网址页面。(再线等待) 在JMenuItem中再加菜单用啥方法 寻求有关通讯的源代码,可以发到我油箱[email protected],小女子先谢谢了!100分 一个java菜鸟问题,求各路前辈指教 求教软考中级
在一个类中访问另外一个类的成员变量,可以利用持有对方的引用来访问本程序实现一个简单的加法运算器带图形界面的。程序如下:先是不持有对方引用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:很明显程序一要传每一个成员变量,比较不方便,而程序二相当于在跟一个持有全部成员变量的大管家在打交道,自然可以也可以跟成员变量打交道,方面了程序。
B b;//这儿就叫做持有对方的引用,他持有对B的引用(好处就是当A需要用到对象B的时候可以直接实例化b,然后使用,不需要再传值)
fangfaA(){
}
}class B{
fangfaB(){}
}