在方法中定义的内部类称为局部内部类。与局部变量类似,局部内部类不能有访问说明符,因为它不是外围类的一部分,但是它可以访问当前代码块内的常量,和此外围类所有的成员。
publicclass Outer {
privateints = 100.
privateintout_i = 1.
publicvoid f(finalint k) {
finalint s = 200.
int i = 1.
finalint j = 10.
//定义在方法内部
class Inner {
ints = 300.// 可以定义与外部类同名的变量
// static int m = 20.//不可以定义静态变量
Inner(int k) {
inner_f(k).
}
intinner_i = 100.
voidinner_f(int k) {
//如果内部类没有与外部类同名的变量,在内部类中可以直接访问外部类的实例变量
System.out.println(out_i).
//可以访问外部类的局部变量(即方法内的变量),但是变量必须是final的
System.out.println(j).
//System.out.println(i).
//如果内部类中有与外部类同名的变量,直接用变量名访问的是内部类的变量
System.out.println(s).
//用this.变量名访问的也是内部类变量
System.out.println(this.s).
//用外部类名.this.内部类变量名访问的是外部类变量
System.out.println(Outer.this.s).
}
}
new Inner(k).
}
publicstaticvoid main(String[] args) {
// 访问局部内部类必须先有外部类对象
Outer out = new Outer().
out.f(3).
}
}
相关文章
java调用ipmsg的源代码
JAVA匿名内部类(fromthinkinginjava3th)
java静态内部类(嵌套类)
基础知识--JAVA成员内部类
基础知识--java局部内部类
Java不允许goto跳转
synchronized解决多线程共享数据同步问题
Struts框架基础学习
java分布式多播技术开发
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛