• 技术文章 >java >java基础

    java内部类的两种类型

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

    说明

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

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

    实例

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    35

    36

    37

    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学习网