首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

java内部类 访问final变量----局部内部类访问局部变量

局部内部类与其他类相比,还有一个优点就是: 它不仅能够访问包含它们的外部类的数据和方法,还可以访问定义它的块的局部变量, 但是有个前提条件:这些局部变量必须被声明为final 知识回忆...: final关键字可以应用于局部变量、实例变量、和静态变量。...下面就让我们先看看代码是怎么访问局部变量的: package org.innerclass.operate; public class LocalInnerClassTest { public...,我对外部世界是完全隐藏的,只有start()方法有权限操作我"); System.out.println("我可以访问我的作用域中的局部变量,这个局部变量的类型必须有final关键词修饰"+localvariable...A,如果想要访问,我必须先经过start(),我必须拥有调用start()的方法的权限"); } } 来看看我们如果把final去掉会报什么错误: ?

1.1K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    内部类只能访问final的局部变量_java内部类引用外部变量

    因为在JDK8之前,如果我们在匿名内部类中需要访问局部变量,那么这个局部变量必须用final修饰符修饰。这里所说的匿名内部类指的是在外部类的成员方法中定义的内部类。...既然是在方法中创建的内部类,必然会在某些业务逻辑中出现访问这个方法的局部变量的需求。那么我们下面就会研究这种情况。 为什么java语法要求我们需要用final修饰呢?...str = paramString; } public void run() { System.out.println(this.val$str); } } 也就是说匿名内部类之所以可以访问局部变量...---- 介绍到这里,关于为什么匿名内部类访问局部变量需要加final修饰符的原理基本讲完了。那现在我们来谈一谈JDK8对这一问题的新的知识点。...在JDK8中如果我们在匿名内部类中需要访问局部变量,那么这个局部变量不需要用final修饰符修饰。看似是一种编译机制的改变,实际上就是一个语法糖(底层还是帮你加了final)。

    93520

    Python3通过字符串访问与修改局部变量

    读取和修改局部变量 首先来看一下局部变量的读取,一般有locals()、vars()和sys._getframe(0).f_code.co_varnames这几种方法,另外有一种sys....并且需要注意的是,全局变量x自始至终都没有在局部变量中出现。那么既然我们可以通过这种方式分离出局部变量,或者是局部变量的名称,那我们如何去调整或者修改这些局部变量呢?...那到底有没有办法可以通过字符串去修改局部变量呢(不同步到全局变量)?...z是被成功修改了的,但是在前面提到的,即使我们通过这种方法修改了局部变量的值,但是依然不能通过这个方案去创建一个新的局部变量,此时去执行print (n)的话,依然会有报错提示。...读取和修改全局变量 相比于修改局部变量,其实查看修改全局变量要显的更加容易。

    55920

    Python局部变量详解

    局部变量: 1. 局部变量是在函数内部定义的变量,只能在函数内部使用 2. 函数执行完成后,函数内部的局部变量,会被系统回收 3....不同的函数,可以定义相同的名字的局部变量,但是彼此之间不会产生影响 局部变量的作用 在函数内部使用,临时保存函数内部需要使用的数据 一、局部变量只能在函数内部使用 通过代码来演示一下,在函数内部定义的变量不能在函数外部被使用...二、局部变量的生命周期 定义:所谓生命周期就是变量从创建到被系统回收的过程。...(把创建比作出生,把系统回收比较死亡,生命周期好比一个人从出生到死亡的这一段过程) 局部变量在函数执行时才会被创建,函数执行结束后局部变量被系统回收。...三、不同函数内的同名局部变量 不同的函数,可以定义相同的名字的局部变量,但是彼此之间不会产生影响 def demo1(): # 定义一个局部变量 num = 100 print(

    2.1K30
    领券