原文:局部内部类访问所在方法的变量或参数

欢迎加入Java交流群 ,欢迎关注微信公众号 以文在线 。 局部内部类是在方法中定义的类。它的可见范围是当前方法,和局部变量一样,局部内部类不能用访问控制修饰符 public private以及protected 和静态修饰符static来修饰。局部内部类中除了可以访问外部类的所有成员,还可以访问所在方法的最终变量或参数 被final修饰的变量或参数 ,从JDK . 开始,还可以访问所在方法的实 ...

2018-11-06 17:14 0 1229 推荐指数:

查看详情

为什么匿名内部类只能访问所在方法中的final类型的局部变量

  大部分时候,类被定义成一个独立的程序单元。在某些情况下,也会把一个类放在另一个类的内部定义,这个定义在其他类内部的类就被称为内部类,包含内部类的类也被称为外部类。   对于上面的成员内部类,一般做法是在Outer中写一个返回Inner类对象的方法 ...

Fri Mar 04 05:12:00 CST 2016 3 10034
局部内部类访问所在方法局部变量时,要求该局部变量必须声明为final的原因

  这是java的一条规则。那么为什么会有这条规则呢?要想弄懂这个问题,就需要弄懂局部内部类对象和局部变量的生命周期谁更长的问题。 首先,看一段代码,以没有将变量声明为final的代码作为例子,代码如下:   如上面的第7行代码所示,变量x没有被声明为final,如果是这样的话 ...

Sat May 12 06:12:00 CST 2018 1 2522
局部内部类访问局部变量

局部内部类是指位于方法内的类,局部内部类若要访问所在方法内的变量,则该变量必须是final修饰的。 Inner是位于方法main()内的局部内部类,若要访问方法内的局部变量a,则a应当使用final修饰。 被内部类访问局部变量会被拷贝一份到内部类中,即Inner中 ...

Tue Aug 06 23:43:00 CST 2019 1 984
为什么Java匿名内部类访问方法参数方法局部变量需要被final修饰

分析 1、内部类(不论是否是匿名内部类)可访问部类变量(包括外部类的类变量、实例变量、外部类方法局部变量等)、方法:可修改变量值、调用方法等。内部类定义时的位置有两种: 在外部类方法内:此时该内部类只能是匿名内部类(语法上不支持在方法内定义非匿名类)。此时内部类访问上述所有变量 ...

Wed Jun 21 19:57:00 CST 2017 0 3698
Java基础-内部类-为什么局部和匿名内部类只能访问局部final变量

先看下面这段代码:   这段代码会被编译成两个class文件:Test.class和Test1.class。默认情况下,编译器会为匿名内部类局部内部类起名为Outterx.class(x为正整数)。   根据上图可知,test方法中的匿名内部类的名字被起为 Test ...

Mon May 11 00:33:00 CST 2015 1 2265
内部类访问局部变量的时候,为什么变量必须加上final修饰

这里的局部变量就是在类方法中的变量,能访问方法变量的类当然也是局部内部类了。我们都知道,局部变量在所处的函数执行完之后就释放了,但是内部类对象如果还有引用指向的话它是还存在的。例如下面的代码: class Outer{ public static void main(String[] args ...

Tue Aug 02 23:12:00 CST 2016 0 8054
内部类访问局部变量必须加final

(1)内部类是外部类的一个成员,就像外部类的成员方法一样,所以内部类有权限访问部类的所有成员,包括private的。 (2)内部类不能访问部类方法中的局部变量,除非变量是final的(一般发生在方法中定义的内部类)。这是因为局部变量的生命周期原因 ...

Wed Sep 09 17:36:00 CST 2015 0 2040
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM