「java持有引用」java 直接引用
今天给各位分享java持有引用的知识,其中也会对java 直接引用进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、java里什么是持有对方引用?
- 2、java 请问非静态类为什么持有外部类的引用
- 3、关于Java中持有引用java.lang.ref.ReferenceQueue类
- 4、java 持有对方引用!
- 5、java中,怎么让两个对象互相持有对方的引用
java里什么是持有对方引用?
就是设置一个属性而已,只不过是个对象,所以直接指向引用就可以了,不用再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:很明显程序一要传每一个成员变量,比较不方便,而程序二相当于在跟一个持有全部成员变量的大管家在打交道,自然可以也可以跟成员变量打交道,方面了程序。
java 请问非静态类为什么持有外部类的引用
非静态内部类依赖于外部类,没有外部类就不能创建内部类,内部类可以直接访问外部类的属性,包括私有属性
关于Java中持有引用java.lang.ref.ReferenceQueue类
写这段代码的需求是什么,功能逻辑又是什么。
建议多看看API文档的说明
public class ReferenceQueueT extends Object
Reference queues, to which registered reference objects are appended by the
garbage collector after the appropriate reachability changes are detected.
Reference? extends T
poll()
Polls this queue to see if a reference object is available.
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类的实例
}
持有对方引用的目的就是为了 更灵活的在对象与对象之间进行 配合 更具有灵活性
java中,怎么让两个对象互相持有对方的引用
class Producer
{
private Consumer c = null;
Producer(Consumer c)
{
this.c = c;
c.firstMethod(); //持有对方引用
}
public void secondMethod()
{
System.out.println("Producer.");
}
}
class Consumer
{
private Producer p = null;
Consumer(Producer p)
{
this.p = p;
p.secondMethod(); //持有对方引用
}
public void firstMethod()
{
System.out.println("Consumer.");
}
}
关于java持有引用和java 直接引用的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。