前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JavaSE/内部类

JavaSE/内部类

作者头像
用户10788736
发布2023-10-16 08:31:53
1450
发布2023-10-16 08:31:53
举报
文章被收录于专栏:CSDN搬移文章

前言

在学习Java的过程当中,不难发现Java全是由类与对象构成的,所以在一个类当中定义和使用一个另外一个类是我们学习过程中必须要学会使用的,而这种类,被称之为内部类。

一、实例内部类

代码语言:javascript
复制
class A{
    void a(){
    }
    class B{
        void a(){
        }
    }
}
  • 一般情况下,不能有static修饰的属性的方法(使用static final 可以修饰属性,final修饰的常量在编译时已经确定);
  • 实例化实例内部类:  外部类名.内部类名 变量名 = 外部类对象的引用.new 内部类名();

                                          A.B b = new A().new B();

  • 当外部类与实例内部类某属性或方法相同时,在实例内部类中想使用外部类属性或方法:

                                           外部类名.this.属性/方法;

                                            A.this.a();

二、静态内部类

代码语言:javascript
复制
class A{
    public int a1;
    static class B{
    }
}
  • 实例化静态内部类: 外部类名.内部类名 = new  外部类名.内部类名();

                                         A.B b = new A.B();

  • 在静态内部类中,访问外部类非静态成员时,创建一个外部类对象,通过对象引用该成员;

                                    访问外部类静态成员时,正常使用即可。

三、局部内部类

代码语言:javascript
复制
class A{
    void a(){
        class B{
        }
    }
}
  • 不能被public,static 等修饰符修饰;
  • 只能在定义的位置使用:局部内部类B只能在方法a中创建和使用。

四、匿名内部类

代码语言:javascript
复制
class A implements B(){
    @override
    public void a1(){}
}

//在某个main方法中
new B(){
        @override
    public void a1(){}
}.a1();
  • 在匿名内部类当中,使用的变量是不可以被改变过的。

结语

关于内部类,以上就是今天的内容,本文仅仅简单介绍了一下。

这篇博客如果对你有帮助,给博主一个免费的点赞以示鼓励,欢迎各位🔎点赞👍评论收藏⭐,谢谢!!!

如果有什么疑问或不同的见解,欢迎评论区留言哦。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-04-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 一、实例内部类
  • 二、静态内部类
  • 三、局部内部类
  • 四、匿名内部类
  • 结语
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档