成员内部类

成员内部类的概念

  • 一个类A内部定义了一个类B, 那么B就是A的成员内部类, A可以称为外部类。

成员内部类对象实例化

  • 内部类的类型表示:外部类名.内部类名
  •  成员内部类创建对象,需要借助外部类的对象,如下:
    • 外部类名.内部类名   变量  =  外部类对象.new 内部类构造方法(参数);

内部类访问外部类成员

  • 成员内部类的方法中默认存在一个外部类对象: 外部类名.this 。可用此格式来调用外部类成员,访问时如果没有冲突,格式可省略,如果有冲突就不能省略了。
  • 对于外部类来讲,没有默认的内部类对象的,如果要访问内部类的成员,需要创建内部类对象
public class Test {
    public static void main(String[] args) {
        Person person = new Person(); // 创建外部类对象
        Person.Heart heart = person.new Heart(); // 创建成员内部类对象
        heart.beats();
        System.out.println("=====================");
        heart.show();
        System.out.println("=====================");
        person.show();
    }
}

// 外部类
class Person {
    private int age = 10;
    private String name = "xiaobo";

    public void show() {
        Heart heart = new Heart(); // 在外部类里创建成员内部类的对象
        // 访问内部类的私有成员变量
        System.out.println(heart.age); // 20
    }

    // 成员内部类
    class Heart {
        // 内部类的私有变量
        private int age = 20;
        private int rate = 80;

        public void beats() {
            System.out.println("咚咚咚!");
        }

        public void show() {
            int age = 30;
            // 访问局部变量
            System.out.println(age); // 30
            // 访问成员内部类私有变量
            System.out.println(this.age); // 20
            // 访问外部类私有变量
            System.out.println(Person.this.age); // 10
            // 访问外部类私有变量 因为该变量外部类独有 外部类.this.可以省略
            System.out.println(name); // xiaobo
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值