作者snowlike (snowlike)
看板java
标题Re: [问题] inner class和shadow的几个问题
时间Sat Apr 3 16:45:20 2010
※ 引述《fireballboy (火球男儿)》之铭言:
: public class EnclosingClass {
: private String someMember = "Some Member";
: //制造一个innerclass
: private class InnerClass {
: private String someMember = "Inner Member";
: public void doIt( ) {
: System.out.println(someMember);
: System.out.println(EnclosingClass.this.someMember);
: }
: }
: //主程式
: public static void main(String[] args) {
: //new出inner class
: EnclosingClass outerObj = new EnclosingClass();
: EnclosingClass.InnerClass inner = outerObj.new InnerClass();
: }
: }
首先 new 不是谁的方法,可能因为看法分段错误的关系
从宣告的方式来看 EC.IC inner = outerObj.new IC();
//or = new EC().new IC();
 ̄ ̄ ̄ ̄  ̄ ̄ ̄ ̄ 应该要这样看才对
那麽可以知道java里面必须存在外面的 class 後才宣告里面的 inner class
也就说他们是一对多的关系
除非 inner class 宣告为 static 能够写成 = new EC.IC();
再来是 this 标示为当前的参考,采用EC.this存取EC的当前参考
搭配宣告方式应该不难理解
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.33.184.50
※ 编辑: snowlike 来自: 114.33.184.50 (04/03 16:45)
1F:推 fireballboy:那写上EC.x和写上EC.this.x不是都一样吗?为什麽this不 04/03 17:16
2F:→ fireballboy:用static呢? 04/03 17:17
3F:→ snowlike:请询问老师或课本ClassName.member和this.member的差别 04/03 20:51