如何利用this实现两个对象相互关联互发消息呢?

什么叫做两个对象之间互发消息呢?

发消息这个过程指的就是通过对象的引用调用对象的属性或是方法,就像是 对象的引用 给 对象发消息,然后再使用对象的成员

由发消息的含义我们可知,要给一个对象发消息,我们首先需要有该对象的引用(发消息的工具)

因此,要使两个对象之间可以互发消息,就需要在两个对象内部属性中都有对方的引用,从而实现两个对象之间相互关联

如何实现两个对象互发消息呢?

理论理解上很简单,只要两个对象内部属性都有对方的引用即可,那么实际代码该如何实现呢?

  • 先实例化对象一
  • 再用对象一去实例化对象二,使对象二与对象一相关联
  • 在对象二的内部通过(调用对象一的方法 + this 指代本对象) 来使对象一与对象二相关联
  • 两者相互关联后,即可在类内部调用对方的方法或域变量啦

例如下面所示的代码:

class A{
	private B b;
	int x;
	
	A(int x){
		this.x = x;
	}
	
	void set_B(B _b){
		if(_b != null){
			b = _b;
		}
	}
	
	void smile(){
		b.smile(); //通过给bbb对象发消息调用它的方法
	}
}

class B{
	private A a;
	
	B(A _a){
		this.a = _a; //本类的a对象实际就是aaa对象
		a.set_B(this); //利用this指代本对象,实现A对象的初始化,使B与A相联系
	}
	
	void write(){
		System.out.println(a.x); //通过aaa对象发消息调用它的域变量
	}
	
	void smile(){
	
	}
}

class Run{
	public void static main(String[] args){
		A aaa = new A(3); //创建一个对象aaa
		B bbb = new B(aaa); //创建以个对象bbb,并以aaa初始化
		b.write();
	}
}
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一只可爱的小猴子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值