public class InnerClassTest1 {
private int inner_index = 100; private void printoutIndex() {
System.out.println(inner_index);
} public static void main(String[] args) {
InnerClassTest1 test1 = new InnerClassTest1();
InnerClassTest1.IamInnerClass iam = new InnerClassTest1().new IamInnerClass();
iam.output();
iam.testSelf(99);
test1.printoutIndex();
} private class IamInnerClass {
private int iamIndex = inner_index; private void output() {
printoutIndex();
System.out.println("in inner class: " + iamIndex);
} private void testSelf(final int index) {
new IamInnerClass() {
private int iamIndex = 1000000; private void checkout() {
System.out.println(iamIndex + index);
System.out.println("method inner: "
+ super.iamIndex);
}
}.checkout();
}
}
}在method testSelf() 里的System.out.println("method inner: "+ super.iamIndex); 这里的iamIndex为什么是100? 有点不太明白,super是调用父类的methods or fields,但是这里并不存在继承关系吧,为什么能用super??
解决方案 »
- java swing 黑体显示“口”
- 在预编译中 select top ? ....里的? 如何赋值?
- java 散列码问题
- 在LINUX/WINDOWS下JAVA通过JDBC连接MYSQL的问题
- 正则表达式的问题:Look-behind group does not have an obvious maximum length near index ...
- 这是什么错误?
- 有没有把sqlj翻译成用jdbc和sql的java程序的工具呢?
- +++请问去上海做软件开发工作一般月薪是多少啊?+++
- 多线程问题请教
- 欲开发基于CORBA的分布式系统,高手请进...
- 环境变量......
- CLOB与Clob之间的转换
new IamInnerClass() {
private int iamIndex = 1000000; private void checkout() {
System.out.println(iamIndex + index);
System.out.println("method inner: "
+ super.iamIndex);
}
}
这是一个匿名类的对象,该匿名类是IamInnerClass的子类。所以 super.iamIndex 即是指 IamInnerClass 中的 iamIndex,其值为 inner_index 的值,自然是 100 啦。呵呵。