zoukankan      html  css  js  c++  java
  • 内部类

    1、静态内部类Static Inner Class

    被编译成一个完全独立的.class文件,名称为OuterClass$InnerClass.class的形式。只可以访问外部类的静态成员和静态方法,包括了私有的静态成员和方法。

    public class StaticInner{
        private static int a = 2;
        // static inner class
        public static class Inner{
            public void test(){
                // 静态内部类只能访问外部类的静态成员
                System.out.println(a);
            }
        }
    }
    
    public class StaticInnerClassTest{
        public static void main(String[] args){
            // 创建静态内部类方式
            StaticInner.Inner inner = new StaticInner.Inner();
            inner.test();
        }
    }

    2、成员内部类 Member Inner Class

    可以访问它的外部类的所有成员变量和方法。在外部类里面创建成员内部类的实例:this.new Innerclass();  

    public MemberInner{
        private int b = 1;
        private int a = 2;
        
        // 成员内部类
        public class Inner{
            private int a = 3;
            public void doSomething(){
                System.out.println(b); // 直接访问外部类成员变量
                System.out.println(a); // 访问的是内部类里的a
                System.out.println(MemberInner.this.a); // 访问的是外部类里的a
            }
        }
    }
    
    public class MemberInnerClassTest{
        public static void main(String[] args){
            // 创建成员内部类方式
            MemberInner.Inner inner = new MemberInner().new Inner();
            inner.doSomething();
        }
    }

    3、匿名内部类 Anonymous Inner Class

    匿名内部类就是没有名字的局部内部类,不使用关键字class, extends, implements, 没有构造方法。匿名内部类隐式地继承了一个父类或者实现了一个接口。通常是作为一个方法参数。

  • 相关阅读:
    mysql笔记05 优化服务器设置
    mysql笔记04 MySQL高级特性
    mysql笔记03 查询性能优化
    MVC模型
    mysql笔记02 创建高性能的索引
    实现服务端功能之——Java实体对象
    leetcode解题: First Unique Character in a String (387)
    vim的使用心得
    Java多线程(五)--volatile详解
    七 生成式深度学习
  • 原文地址:https://www.cnblogs.com/hesier/p/5640761.html
Copyright © 2011-2022 走看看