• Android(java)学习笔记53:局部内部类


    1. 局部内部类

     1 /*
     2     局部内部类
     3         A:可以直接访问外部类的成员
     4         B:在局部位置,可以创建内部类对象,通过对象调用内部类方法,来使用局部内部类功能
     5     
     6     面试题:
     7         局部内部类访问局部变量的注意事项?
     8         A:局部内部类访问局部变量必须用final修饰
     9         B:为什么呢?
    10             局部变量是随着方法的调用而调用,随着调用完毕而消失。
    11             而堆内存的内容并不会立即消失。所以,我们加final修饰。
    12             加入final修饰后,这个变量就成了常量。既然是常量。你消失了。
    13             我在内存中存储的是数据20,所以,我还是有数据在使用。
    14 */
    15 class Outer {
    16     private int num  = 10;
    17     
    18     public void method() {
    19         //int num2 = 20;
    20         //final int num2 = 20;
    21         class Inner {//如果num2不加final,到方法method()调用运行完毕之后,局部变量就会消失,但是堆内存中的new Inner不会立马消失
    22             public void show() {//而且对象new Inner()内部还在使用num2但是前面说过了num2已经提前消失了,所以会出错,要加final
    23                 System.out.println(num);
    24                 //从内部类中访问本地变量num2; 需要被声明为最终类型
    25                 System.out.println(num2);//20---反编译之后你会看到final效果就是System.out.println(20),直接把num2替换成20
    26             }
    27         }
    28         
    29         //System.out.println(num2);
    30         
    31         Inner i = new Inner();
    32         i.show();
    33     }
    34 }
    35 
    36 class InnerClassDemo5 {
    37     public static void main(String[] args) {
    38         Outer o = new Outer();
    39         o.method();
    40     }
    41 }
  • 相关阅读:
    unbuntu系统下在文件中按上下左右出现错误码
    构建之法阅读笔记
    cloudera卸载
    第二阶段团队站立会议04
    第二阶段团队站立会议03
    第二阶段团队站立会议02
    第二阶段团队站立会议01
    团队测试
    cnblogs.com的用户体验
    对于每个小组的意见
  • 原文地址:https://www.cnblogs.com/hebao0514/p/4585058.html
Copyright © 2020-2023  润新知