java编程中的持有对方引用是什么意思?有什么作用?
持有對(duì)方引用比如 A類有: h、j、 k, 3種方法,B類有 h 1種方法,但我B類必須要用到 A 類的 k方法怎么辦呢?那么下面就要引入引用了!我在 B 類中創(chuàng)建個(gè)A類的引用,例如 如果在同一包下就不用導(dǎo)包了
import 包名.A
public class B {
A a=null; 此a就是B類中 對(duì)A的引用
a=new A(); 用此引用創(chuàng)建了A類的實(shí)例
}
持有對(duì)方引用的目的就是為了 更靈活的在對(duì)象與對(duì)象之間進(jìn)行 配合 更具有靈活性
在一個(gè)類中訪問另外一個(gè)類的成員變量,可以利用持有對(duì)方的引用來訪問
本程序?qū)崿F(xiàn)一個(gè)簡(jiǎn)單的加法運(yùn)算器帶圖形界面的。
程序如下:先是不持有對(duì)方引用
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));
}
}
再在源程序上修改為:持有對(duì)方引用
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));
}
}
總結(jié):很明顯程序一要傳每一個(gè)成員變量,比較不方便,而程序二相當(dāng)于在跟一個(gè)持有全部成員變量的大管家在打交道,自然可以也可以跟成員變量打交道,方面了程序。
?為了讓學(xué)習(xí)變得輕松、高效,今天給大家免費(fèi)分享一套Java教學(xué)資源。幫助大家在成為Java架構(gòu)師的道路上披荊斬棘。需要資料的歡迎加入學(xué)習(xí)交流群:9285,05736
總結(jié)
以上是生活随笔為你收集整理的java编程中的持有对方引用是什么意思?有什么作用?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java中String相关类型的区别
- 下一篇: JAVA基础知识需要注意的细节