内部类.Java学习
2022/8/8 1:25:33
本文主要是介绍内部类.Java学习,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
今天复习一下Java里面一个比较重要的概念 内部类
局部内部类
- 内部类是定义在一个类的内部。通常是在方法中。
- 本质还是一个类,可以访问外部类的所有成员,包含私有的。
- 不能使用访问修饰符。但是可以使用final修饰符。
- 作用域尽在定义它的方法或者代码块中。
- 外部其他类不能访问局部内部类(因为局部内部类的地位就是衣个局部变量)。
- 如果外部类和局部类的成员变量重名。遵守就近原则。如果要访问外部类变量。 可以通过 类型.this.成员 去访问。
匿名内部类
- 该类没有名字。
- 是一个对象。
- 定义外部类的局部位置,比如方法中,并且没有类名。(系统底层会分配一个类型)。
- 匿名内部类使用一次就没了(生成的对象是可以多次使用)。
- 匿名内部类是为了简化开发。
1 package anonymous; 2 3 public class InnerClass { 4 public static void main(String[] args) { 5 new Test().run(); 6 } 7 } 8 9 10 class Test { 11 12 public void run() { 13 Animal dog = new Animal() { 14 @Override 15 public void Say() { 16 System.out.println("小狗汪汪"); 17 System.out.println(this.getClass()); 18 } 19 }; 20 dog.Say(); 21 } 22 } 23 24 25 interface Animal { 26 void Say(); 27 }
----------
输出结果。
小狗汪汪
class anonymous.Test$1
成员内部类
- 定义为的位置是成员位置。
- 外部其他类可以调用成员内部类。
1 package anonymous; 2 3 public class MemberInnerClass { 4 public static void main(String[] args) { 5 Test01 test01 = new Test01(); 6 Test01.InnerClass innerClass = test01.new InnerClass(); 7 innerClass.Run(); 8 } 9 } 10 11 class Test01 { 12 13 class InnerClass { 14 public void Run() { 15 System.out.println("这是成员内部类"); 16 } 17 } 18 }
静态内部类
- 静态内部类还是定义在成员位置,但是他有static修饰。
- 可以直接访问外部类的所有静态成员,包括私有的。但是不能直接访问非静态的成员。
这篇关于内部类.Java学习的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-13TiDB + ES:转转业财系统亿级数据存储优化实践
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了
- 2024-05-09Google Chrome驱动程序 124.0.6367.62(正式版本)去哪下载?
- 2024-05-09有没有大佬知道这种数据应该怎么抓取呀?
- 2024-05-09这种运行结果里的10.100000001,怎么能最快改成10.1?
- 2024-05-09企业src漏洞挖掘-有意思的命令执行