zoukankan      html  css  js  c++  java
  • Java中的局部内部类

    package Smoke;
    
    public class Inner {
        private int num = 3;
        
        class Limian{
            public void show(){
                //内部类可以访问外部类的私有变量
                System.out.println(num);
            }
        }
        //局部内部类
    public void method(){
            
           int num2 = 44;
            class JuIn{
                public void zhanshi(){
                    /*
                     * 按理说局部内部类访问局部变量,局部变量应该用final修饰,但是不用final修饰也是可以访问的,
                     * 这是因为在JDK8以下必须用final修饰,不然会报错,
                     * Cannot refer to a non-final variable a inside an inner class defined in a different method,
                     * 但是在JDK8之后就不会出现这种状况
                     * */
                    
                    System.out.print(num2);
                }
            }
            System.out.println("访问局部变量"+num2);
            //在局部创建内部类对象
            JuIn ji = new JuIn();
            ji.zhanshi();
        }
    }
    
    class StaticTest{
        private static int num1 = 4;
        //内部类用静态变量修饰
        public static class Test{
            public static void show(){
                //静态内部类访问外部变量必须用static修饰
                System.out.println(num1);
            }
        }
    }
    
    class InnerDemo{
        public static void main (String[] args){
            //非静态内部类创建方法
            Inner.Limian l = new Inner().new Limian();
            l.show();
            
            //静态内部类创建方式
            StaticTest.Test t = new StaticTest.Test();
            //调用方法一
            t.show();
            //调用方法二
            StaticTest.Test.show();
            
            //局部内部类的方法调用
            Inner i = new Inner();
            i.method();
        }
    }
  • 相关阅读:
    毕设进度28
    任务27
    任务26
    任务25
    任务24
    第二次冲刺
    课堂作业-搜狗输入法
    课堂作业-寻找水王
    博客花园典型用户和场景
    第十天
  • 原文地址:https://www.cnblogs.com/losedMemory/p/6096657.html
Copyright © 2011-2022 走看看