作者losesong (shen)
看板java
标题[问题]inner class存取其外部成员的问题
时间Wed Jul 4 02:17:47 2007
大家好
小弟在练习使用匿名的inner class的时候遇到了点问题
请大家指点迷津一下
当我在inner class中去存取其外部class的某个field时
若这个field在外部class的建构式中才去宣告,那编译时就会出现错误讯息
讯息内容是cannot find symbol,而该symbol就是指那个field
程式码的大略示意图如下:
public class OuterClass {
public OuterClass() {
ClassA refA = new ClassA(); //ClassA有一个我想用到的methodA
}
InnerClass inner = new InnerClass() {
public void innerMethod() {
refA.methodA(); //此处发生编译错误:cannot find symbol,symbol:varible refA
}
};
}
===========================换个方法===================================
但是,假如我在建构式之外先宣告refA,进了建构式再进一步将它指派给ClassA,
此时就可通过编译
程式码的大略示意图如下:
public class OuterClass {
ClassA refA;
public OuterClass() {
refA = new ClassA(); //ClassA有一个我想用到的methodA
}
InnerClass inner = new InnerClass() {
public void innerMethod() {
refA.methodA(); //这一次通过编绎了,why??
}
};
}
想请教各位,为什麽我在建构式之外先宣告过,就不会编译错误了呢??
或是请大家指点我一下,该去查什麽相关的资料,可以解释这个现象呢??
谢谢各位~
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.129.62.37
※ 编辑: losesong 来自: 140.129.62.37 (07/04 02:18)
※ 编辑: losesong 来自: 140.129.62.37 (07/04 02:26)
※ 编辑: losesong 来自: 140.129.62.37 (07/04 02:38)
※ 编辑: losesong 来自: 140.129.62.37 (07/04 02:43)
※ 编辑: losesong 来自: 140.129.62.37 (07/04 02:43)
※ 编辑: losesong 来自: 140.129.62.37 (07/04 02:45)
※ 编辑: losesong 来自: 140.129.62.37 (07/04 02:46)