Java之.this与.new的使用

42 篇文章 0 订阅
4 篇文章 0 订阅

使用.this和.new

.this

在Java当中,如果你需要生成对外部类对象的引用,那么一种简便的方法是可以使用外部类的名字后面紧跟原点和this
也就是说有两种方式:
(1) return new DotThis();
(2)return DotThis.this;

public class DotThis {
	void f() {
		System.out.println("DotThis.f()");
	}
	public class Inner{
		public DotThis outer() {
			return DotThis.this;
			 //return new DotThis();两种不同的方式而已
		}
	}
	public Inner inner() {
		return new Inner();
	}
	public static void main(String[] args) {
		DotThis  dt= new DotThis();
		DotThis.Inner dti=dt.inner();
		dti.outer().f();
	}
}

.new

有时我们想要告知某些其他对象,去创建其某个内部类的对象。我们必须在new表达式中提供对其他外部类对象的引用

public class DotNew {
	public class Inner{}
	public static void main(String[] args) {
		DotNew dn = new DotNew();
		DotNew.Inner dni = dn.new Inner();
	}
}

这告诉我们,

要想直接创建内部类的对象,我们必须使用外部类的对象来创建该内部类对象,这就解决了内部类名字作用域的问题,不用去dn.new DotNew.Inner().。这是为了防止内部类对象暗自连接到创建它的外部类对象上。当然创建的是嵌套类的话,就是例外了。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值