成员内部类

本文详细介绍了Java中的成员内部类的概念,包括如何创建和实例化成员内部类对象,以及如何访问外部类的成员。通过一个具体的代码示例展示了成员内部类的使用方法,包括内部类访问外部类成员的规则和注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

成员内部类的概念

  • 一个类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
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值