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, 没有构造方法。匿名内部类隐式地继承了一个父类或者实现了一个接口。通常是作为一个方法参数。

  • 相关阅读:
    606. Construct String from Binary Tree
    557. Reverse Words in a String III
    551. Student Attendance Record I
    541. Reverse String II
    521. Longest Uncommon Subsequence I
    520. Detect Capital
    459. Repeated Substring Pattern
    人脸检测源码facedetection
    人脸检测的model类facemodel
    人脸检测解析json的工具类face_test
  • 原文地址:https://www.cnblogs.com/hesier/p/5640761.html
Copyright © 2011-2022 走看看