java内部类名字的作用域?
迷茫
迷茫 2017-04-17 13:17:44
0
1
761

在《thinking in java》内部类有关链接到外部类的章节,有这么一段话:

要想直接创建内部类的对象,你不能按照你想要的方式,去引用外部类的名字DotNew,而是必须使用外部类的对象来创建该内部类的对象。即:
DotNew dn = new DotNew();
DotNew.Inner inner = dn.new Inner();
这也解决了内部类名字作用域的问题,因此你不能声明(实际上你不能声明)dn.new DotNew.Innter();

这其中提到的内部类名字的作用域的问题是什么意思?

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回覆(1)
小葫芦

這裡主要指的是:

由於內部類作用域必須依托明確的外部類,要在語法上明確內部類和外部類的關係吧。

dn.new Inner();這種語法可以很明確的表示,是dn(這個外部類別)去new了一個Inner()(內部類別)對象,這個物件必須依託於dn這個物件。

dn.new DotNew.Inner();如果用這種語法,那麼前面不管是不是dn都好,甚至可以換成xxx.new DotNew.Inner(); 甚至都可以換成new DotNew.Inner( );這樣感覺這個Inner跟誰去new的沒有太大關係了。

當然這只是我看到這麼一句話然後去揣摩作者想表達的意思,不一定對。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!