• 技术文章 >java >java基础

    java内部类的两种类型

    小妮浅浅小妮浅浅2021-06-17 10:04:27原创2734

    说明

    1、内部类可分为:静态内部类和非静态内部类。

    2、非静态内部类分为:成员内部类、方法内部类、匿名内部类等。

    实例

    public class ClassOuter {
        private int noStaticInt = 1;
        private static int STATIC_INT = 2;
     
        public void fun() {
            System.out.println("外部类方法");
        }
     
        public class InnerClass {
            //static int num = 1; 此时编辑器会报错 非静态内部类则不能有静态成员
            public void fun(){
                //非静态内部类的非静态成员可以访问外部类的非静态变量。
                System.out.println(STATIC_INT);
                System.out.println(noStaticInt);
            }
        }
     
        public static class StaticInnerClass {
            static int NUM = 1;//静态内部类可以有静态成员
            public void fun(){
                System.out.println(STATIC_INT);
                //System.out.println(noStaticInt); 此时编辑器会报 不可访问外部类的非静态变量错
            }
        }
    }
     
    public class TestInnerClass {
        public static void main(String[] args) {
            //非静态内部类 创建方式1
            ClassOuter.InnerClass innerClass = new ClassOuter().new InnerClass();
            //非静态内部类 创建方式2
            ClassOuter outer = new ClassOuter();
            ClassOuter.InnerClass inner = outer.new InnerClass();
            //静态内部类的创建方式
            ClassOuter.StaticInnerClass staticInnerClass = new ClassOuter.StaticInnerClass();
        }
    }

    以上就是java内部类的两种类型,希望对大家有所帮助。更多Java学习指路:Java基础

    本教程操作环境:windows7系统、java10版,DELL G3电脑。

    专题推荐:java 内部类
    上一篇:内部类在java多重继承的实现 下一篇:java匿名内部类如何使用

    相关文章推荐

    • java注解的本质分析• java元注解是什么• java中NIO是什么• java中Buffer是什么• java Channel是什么• java中jstack是什么• java使用JConsole检测死锁• java线程池死锁的产生及处理• java中default如何操作接口• java集合排序的两种方法• java函数式接口是什么

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网