方法中的内部类能不能访问方法中的局部变量,为什么?

原创 2011年01月12日 20:39:00

个人总结:

      一个类中的内部类,其实这个内部类相对这个类就和以他方法和属性一样的。只是内部类的生命周期和这个类的属性生命周期是不同的。
 在内存中,类的属性会被分配到栈中的。当调用结束的时候就会退栈,也就是说在内存中这个属性就消失了。内部类也是类,只用在内存
 中对他的引用消失了才会死亡的内部类,这个时候内部类调用类中已经结束调用的属性是不可能的。也就是说局部类的生命周期超过了类的
 局部变量。解决的办法就是在局部变量前加上final,这样类中属性就会被分配在堆内存中,生命周期是和工程的生命周期一样了,其内部类
 就可以调用了。

       

Java中局部内部类可以访问它所在方法中定义的final修饰的局部变量的合理解释

转自:http://lpqsun-126-com.iteye.com/blog/1175733 标题有点长,可能有点语病,先别管那么多! 首先看下面的这段代码: Java代码  ...

为什么局部内部类只能访问方法中final类型的局部变量?

public class OuterClass2 { static int i =1; int ii=1; public OuterClass2() { // ...

局部内部类访问方法中的局部变量为什么加final

1)从程序设计语言的理论上:局部内部类(即:定义在方法中的内部类),由于本身就是在方法内部(可出现在形式参数定义处或者方法体处),因而访问方法中的局部变量(形式参数或局部变量)是天经地义的.是很自然的...

关于局部内部类访问所在方法的参数或局部变量为什么必须是final的

内部类的种类一共分为四种,我看其他几种内部类的时候思路都是很清晰的,然后我就碰到了这一条:“方法中的内部类可以访问外部类成员。对于方法的参数和局部变量,必须有final修饰才可以访问”。于是我就有点疑...

Java匿名内部类访问外部类局部变量,为何需被标志为final?

原文地址 http://www.jianshu.com/p/609ca1c584ac 对于Java语言中的final使用,大家应该很熟悉,可以修饰类,表示不可继承;可以修饰方法,表...

为什么从内部类访问局部变量,需要被声明为最终类型?

参考:http://www.cnblogs.com/ffxxbb/archive/2014/03/11/3594938.html 首先要明白: 一个完整的Java程序运行过程会涉及以下内存区域...

局部内部类只能访问非final变量

(1).内部类是外部类的一个成员,就像外部类的成员方法一样,所以内部类有权限访问外部类的所有成员,包括private的。 (2).内部类不能访问外部类方法中的局部变量,除非变量是final的(一般发...

局部内部类+外部类访问final变量+final 回顾

【0】README0.1) 本文描述+源代码均 转自 core java volume 1, 旨在理解 局部内部类 的基础知识;【1】局部内部类相关1.1)仔细查看 TalkingClock的代码就会...

匿名内部类访问方法成员变量需要加final的原因及证明

在java编程中,没用的类定义太多对系统来说也是一个负担,这时候我们可以通过定义匿名内部类来简化编程,但匿名内部类访问外部方法的成员变量时都要求外部成员变量添加final修饰符,final修饰变量代表...

JAVA 方法内部类为何只能访问外部final类型变量

所谓“局部内部类”就是在对象的方法成员内部定义的类。而方法中的类,访问同一个方法中的局部变量,却必须要加上一个final。原因是编译程序实现上的困难:内部类对象的生命周期会超过局部变量的生命期。局部变...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:方法中的内部类能不能访问方法中的局部变量,为什么?
举报原因:
原因补充:

(最多只允许输入30个字)