码迷,mamicode.com
首页 > 其他好文 > 详细

内部类

时间:2019-06-16 21:55:37      阅读:127      评论:0      收藏:0      [点我收藏+]

标签:类成员变量   外部   pre   chm   stat   创建   span   gif   aaa   

内部类

将一个类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();
        // 调用内部类成员变量

    }
}

执行结果

技术图片技术图片?

 

内部类

标签:类成员变量   外部   pre   chm   stat   创建   span   gif   aaa   

原文地址:https://www.cnblogs.com/wurengen/p/11032847.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!