Java内部类全解析:从入门到精通,拿捏所有细节!❶
家人们谁懂啊Java里的内部类简直是「隐藏神技」用得好直接让代码优雅到起飞面试还能直接拿捏面试官今天咱们就把内部类扒得明明白白从概念到实战小白也能秒懂老鸟也能查漏补缺~ 一、什么是内部类懂这几点直接入门在Java的世界里内部类Inner Class 就是「套娃式」操作——定义在一个类内部的类外面的叫外部类Outer Class里面的就是内部类主打一个「我家孩子我宠着」核心特性直接焊死基础1. 编译专属Buff内部类编译后会生成独立的 .class 文件命名直接玩「」梗外部类名内部类名.class 比如 Outer$Inner.class主打一个「我和我爹绑定了」2. 封装界的「开后门」内部类能直接访问外部类的私有成员还不破坏外部类的封装性相当于给自家娃开了专属权限外人根本碰不到这波直接赢麻了3. 四大门派分类Java内部类一共4种分别是成员内部类、静态内部类、局部内部类、匿名内部类每一种都有自己的「专属人设」咱们挨个唠二、成员内部类绑定爹的「富二代」成员内部类就像外部类的「亲儿子」定义在类内、方法外和实例变量一个待遇主打一个「爹在我在爹亡我亡」核心规则一个都不能漏1. 位置要求必须待在外部类家里类内不能跑出去方法外2. 对象创建必须抱爹大腿成员内部类的对象不能自己「凭空出生」必须先有外部类对象才能创建内部类对象主打一个「没爹我活不了」3. 找爹专用暗号在成员内部类里想调用外部类的东西直接用 外部类名.this 相当于「喊爹」精准定位外部类对象4. 静态禁令绝对不能碰成员内部类里绝对不能定义静态成员毕竟它是「富二代」靠爹活着而静态成员是「家族公共财产」跟它的身份不搭直接锁死三、静态内部类独立自强的「家族工具人」静态内部类就是内部类里的「卷王」用 static 修饰定义在类内、方法外类比静态变量主打一个「不靠爹自己闯」核心规则直接拿捏1. 位置要求和成员内部类一样待在类内但必须加 static buff相当于「给娃独立户口」2. 成员自由想咋定义咋定义静态内部类里既能搞实例变量也能搞静态变量相当于「自己当家作主」3. 对象创建不用抱爹大腿创建静态内部类对象只需要外部类的类名就行不用爹的实例主打一个「我自己就能活」4. 访问限制只认家族公共财产静态内部类只能访问外部类的静态成员爹的私有实例成员它碰不到毕竟「没资格管爹的私事」5. 访问捷径直接喊家族名访问静态内部类的静态成员直接用 外部类名.静态内部类名 相当于「喊家族名找工具人」四、局部内部类方法里的「临时打工人」局部内部类就像方法里的「临时工」定义在方法内部类比局部变量作用域仅限当前方法主打一个「干完就走不留痕迹」核心规则别踩坑1. 位置要求必须待在方法内部相当于「只能在工位上干活」2. 对象创建只能在工位上生局部内部类的对象必须在定义它的方法里、定义完之后创建方法外根本找不到它主打一个「出了工位就消失」3. 局部变量访问JDK8直接开绿灯局部内部类能访问方法里的局部变量JDK8之前要求变量必须加 final 现在编译器直接给你「语法糖Buff」自动加 final 不用手动写这波直接省麻了划重点JDK8版本被局部内部类访问的局部变量默认就是 final 不能修改相当于「临时工不能改公司的东西」
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2441232.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!