zoukankan      html  css  js  c++  java
  • 内部类(2)

    内部类(2)

    局部内部类

    如果一个类是定义在一个方法内部的,那么就是一个局部内部类

    “局部”,只有所属方法才能调用。

    定义格式: 修饰符 class 外部类名称{

             修饰符 返回值类型 外部方法名 (参数列表){

                     class 局部内部类名称 {

                               //....

                    }

           }

    }

     

    public class juOter {
            public void otermethod(){
                final int num2=12;
                class Inner{//局部内部类(格式)
                    int num = 10;
                    public void intermethod(){
                    System.out.println(num);
    
                    System.out.println(num2);
                    /*
                    局部内部类子想要访问成员方法的局部变量,则该变量必须是有效final的(即只赋值一次,不在变化)
                    在jdk8以上版本不必一定写final关键字只需要赋值一次即可
    
                    原因:
                    局部变量和局部变量创建对象后所在的内存区不同,前者在栈内存中,后者在堆内存中
                    前者随方法的结束而凋亡,后者有垃圾回收机制自动回收(存在时间更长),所以只有
                    当前者为常变量时,后者可以进行复制保存而存储更长时间。
                     */
                }
    
            }
            Inner inner = new Inner();
            inner.intermethod();
            //只能在方法中使用局部内部类
        }
    }
    
    /*
    权限修饰符:
    1.外部类:public/(留空)
    2.成员内部类:public/protected/(留空)/private
    3.局部内部类:(留空)
     */
  • 相关阅读:
    LeetCode换酒问题Swift
    LeetCode种花问题Swift
    LeetCode排序数组Swift
    retain, release, dealloc与retainCount的源码分析
    KVO后[obj class]与object_getClass(id obj)的结果竟会不一致?
    react的一些总结(与vue的比较学习)
    函数式编程---小记
    typescript学习--------进阶(2)
    学习typescript--------进阶
    学习typescript-----基础
  • 原文地址:https://www.cnblogs.com/susexuexi011/p/13811598.html
Copyright © 2011-2022 走看看