• 内部类


    1.成员内部类

    例一

    public class Test002 {
        public static void main(String[] args) {
            //1.第一种创建方法
             Cricle c = new Cricle(5);
    //        Cricle.Draw d = c.new Draw();
    //        d.drawShape();
            //2.第二种,通过方法返回一个内部类对象
            Cricle.Draw d2 = c.getDetDrawInstance();
            d2.drawShape();
        }
    }
    
    class Cricle{//外部类
        private double radius = 0;
        public static int count = 1;
        int a = 0;
        
        public Draw getDetDrawInstance() {
            return new Draw();
        }
        
        
        public Cricle(double radius) {
            this.radius = radius;
            //在外部类中访问内部类的成员需要先创建内部类对象
            //new Draw().drawShape();
            
        }
        
        class Draw{//内部类
            public void drawShape() {
                int a = 2;
                System.out.println(radius);//访问外部类的Private成员
                System.out.println(count);//访问外部类的静态成员
                System.out.println(a);//访问内部类里的局部变量
                System.out.println(Cricle.this.a);//访问成员变量
            }
        }
        
    }

    例二

    public class Test003 {
    
        public static void main(String[] args) {
            Demo d = new Demo(new Outer2());
    
        }
    
    }
    class Outer2{
        Outer2(){
            System.out.println("outer2");
        }
        class Inner2{
            Inner2(){
                System.out.println("Inner2");
            }
        }
    }
    //继承 实例内部类
    class Demo extends Outer2.Inner2{
        Demo(Outer2 o){
            o.super();
            System.out.println("Demo");
        }
    }

    2.静态内部类

    使用static修饰的内部类

    1)静态内部类的实例不会自动持有内部类的特定实例的引用,不必创建外部类的实例

    2)静态内部类可以直接访问外部类的的静态成员,如果访问外部类的实例成员,必须通过外部类的市里去访问

    3)在静态内部类中可以定义静态成员和实例成员。

  • 相关阅读:
    mysql 复合索引 为什么遵循最左原则
    php设计模式--门面模式
    php设计模式--装饰器模式
    php 设计模式 --组合器模式
    2020暑假训练日记
    2020省选联考翻车记
    题解 洛谷P6560 [SBCOI2020] 时光的流逝
    题解 洛谷P6562 [SBCOI2020] 归家之路
    题解 洛谷P6561 [SBCOI2020] 人
    题解 CF1372E Omkar and Last Floor
  • 原文地址:https://www.cnblogs.com/fax1996/p/9457123.html
Copyright © 2020-2023  润新知