javase----内部类

内部类

1.内部类概念

内部类就是把一个类定义在一个类的内部

内部类的种类:
分两种情况:

(1)在类中定义类(成员内部类,静态内部类)
(2)在方法中定义类(局部内部类,匿名内部类)

2. 局部内部类

局部内部类(本地内部类):定义在方法中的类.
只能在方法中使用,出了方法就无法使用,所以称为局部内部类
原因:因为方法无法像类一样直接调用成员

public class Demo1 {
    public void test() {
        //局部内部类,不能在方法外使用
        class  In{
            public int a=100;
        }
    }
}

3.成员内部类

成员内部类也叫实例内部类,可以把他当做外部类的一个平台实例成员

class Out{
    class  In{
        public int  a=100;
    }
}

注意:
1.在实例内部类中,不能创建一个静态成员变量
因为静态成员变量在类加载的时候就会创建,我们正常情况下我们可以直接通过类来访问静态对象而不需要去实例化对象,但是当他在实例内部类中就不能创建,因为内部类无法直接通过外部类访问,必须得创建实例,或者你改成静态内部类
在这里插入图片描述
但是我们可以创建静态常量(static final)
2.如何实例化实例内部类?

先实例化外部类
外部类名.内部类名 变量 = 外部类对象的引用.new 内部类();
因为没有实例化外部类我们就得不到内部类这个对象,更别说实例它了
在这里插入图片描述
3. 成员内部类当中,如果包含了和外部类同名的成员变量,那么如何在成员内部类当中访问?

在这里插入图片描述在这里插入图片描述
4.如何继承内部类?(了解即可)
在这里插入图片描述
4. 当一个类有内部类的时候的字节码文件(了解即可)
在这里插入图片描述

格式:外部类名$内部类名.class

4.静态内部类

在这里插入图片描述
注意事项:
1.如何实例化静态内部类对象
外部类名.内部类名 变量名= new 外部类名.内部类名()
因为静态内部类可以直接通过外部类获得,故可以直接创建实例
2. 静态内部类当中,如何访问外部类的成员变量?

通过在静态内部类中创建外部类的实例来访问.
在这里插入图片描述

5.匿名内部类

在这里插入图片描述
通过匿名内部类访问类中方法
在这里插入图片描述
通过匿名内部类重写方法
在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

相知-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值