Java内部类

Java内部类

概述

  将类写在其他类的内部,可以写在其他类的成员位置和局部位置,这时写在其他类内部的类就称为内部类,其他类称为外部类

class 汽车{    //    外部类
    class 发动机{    //内部类
    }
}

分类

  • 成员内部类
  • 局部内部类

内部类可以直接访问外部类的所有成员

1.成员内部类

成员内部类定义在外部类的成员位置,与类中的成员变量类似,可以通过外部类对象进行访问

定义格式:

class 外部类{

   修饰符 class 内部类{

  }

}

访问方式:

外部类名.内部类名 变量名=new 外部类名().new 内部类名();

package com.test.test;

public class Body {
    private Boolean life=true;
    public class Heart{
        public void jump(){
            System.out.println("跳跳跳");
        }
    }

    public static void main(String[] args) {
        Body.Heart bh=new Body().new Heart();
        bh.jump();
    }
}

2.局部内部类

定义在外部类方法中的局部位置,访问方法与方法中的局部变量类似,可以通过调用方法访问

定义格式:

class 外部类{

修饰符 返回值类型 方法名(参数){

   class  内部类{

      }

   }

}

package com.test.test;

public class Body {
    public void HeartJump(){
        class Heart{
            public void jump(){
                System.out.println("跳跳");
            }
        }
        new Heart().jump();
    }

    public static void main(String[] args) {
        Body body=new Body();
        body.HeartJump();
    }
}

匿名内部类

含义:

  • 临时定义某一指定类型的子类
  • 定义后可创建刚刚定义的这个子类的对象

格式:

    new 父类或接口(){

    //方法重写

}

package com.test.test;
//父类
public abstract class Parent {
   public abstract void eat();
}


public class Main {
    public static void main(String[] args) {
        //匿名内部类
        Parent p=new Parent() {
            public void eat() {
                System.out.println("吃");
            }
        };
        p.eat();
    }
}

 

posted @ 2020-12-28 18:36  我还有头发  阅读(16)  评论(0编辑  收藏  举报