内部类

Posted wurengen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了内部类相关的知识,希望对你有一定的参考价值。

内部类

将一个类A定义在另一个类B里面,里面的那个类A就称为内部类,B则称为外部类。内部类有分为局部内部类,和成员内部类。局部内部类又包含了匿名内部类。 内部类仍然是一个独立的类,在编译之后会内部类会被编译成独立的.class文件,但是前面冠以外部类的类名 和$符号 。 比如,Person$Heart.class  

成员内部类

成员内部类 :定义在类中方法外的类。

定义格式: 

技术图片技术图片?

访问特点

  • 内部类可以直接访问外部类的成员,包括私有成员。
  • 外部类要访问内部类的成员,必须要建立内部类的对象。

创建内部类对象格式: 外部类名.内部类名 对象名 = new 外部类型().new 内部类型();

代码举例:

package demo01;

public class Body 
    //外部类成员变量
    private String name = "李四";

    public class Heart 
        //内部类成员变量
        private String name = "张三";

        //内部类成员方法
        public void run1() 
            String name = "王五";
            System.out.println("我是内部类成员方法,心脏蹦蹦跳");
            //内部类可以随意访问,
            run2();
            // 访问外部类成员变量
            System.out.println(Body.this.name);
            // 访问内部类成员变量
            System.out.println(this.name);
            // 访问内部类局部变量
            System.out.println(name);


        
    

    public void run2() 
        System.out.println("我是外部类成员方法+身体跑跑跳跳");
    

定义测试类

package demo01;

public class BodyTest 
    public static void main(String[] args) 
        //创建外部类对象
        Body body = new Body();
        //创建内部类对象: 外部类名.内部类名 对象名 = new 外部类型().new 内部类型();
        Body.Heart p = new Body().new Heart();
        // 调用内部类成员方法
        p.run1();
        // 调用内部类成员变量

    

执行结果

技术图片技术图片?

 

以上是关于内部类的主要内容,如果未能解决你的问题,请参考以下文章

内部类

内部类

Java内部类详解(含:成员内部类局部内部类匿名内部类静态内部类)

一个java内部类有几个分类?

内部类之静态内部类

java内部类的匿名内部类