Java中内部类
来源:互联网 发布:qq飞车噬魂剃刀数据 编辑:程序博客网 时间:2024/06/05 12:00
Java中内部类大致分为四类:(以下观点只是自己实习过程总的个人总结,若有错误之处,还望指教)
一、静态内部类
1.static表示该成员只属于该类,为该类所有实例共享
2.静态内部类相当于外部类的一个静态成员,不能访问外部类的非静态成员
3.静态内部类的类名不能与外部类同名(个人理解:与外部类同名时,实例化会有歧义,故Java不允许)
二、成员内部类
1.相当于外部类中的成员变量
2.在外部类中可以直接进行实例化
3.在其他类文件访问时 new Outer().new Inner();
三、本地内部类(同方法中定义的变量一样,本地内部类只能在定义它的方法中使用,而且不能使用public,private等访问限定符)
1.本地内部类中不能定义静态的成员变量或方法
2.本地内部类可以访问Outer Class中的所有成员,不论静态成员还是非静态成员[注:此处描述不准确,应该跟相同位置的普通语句一样。准确的说法应该是:在静态方法中定义的内部类,可访问Enclosing Class中的静态成员,但不能直接访问实例成员;在实例方法中定义的内部类,可以直接访问实例成员和静态成员];而Enclosing Class中不能直接访问本地内部类的成员
3.同成员内部类一样,在本地内部类的方法中this是内部类当前对象的引用,如果需要访问当前的外部类对象需要使用Outer.this
4.内部类可以访问包含它的方法中的变量或方法的参数,但是这些变量或参数必须定义为final,内部类中不能改变它们
另:
1.所有内部类的类名都不能与外部类同名
2.所有内部类在编译时都会生成相应的.class文件
四、匿名内部类
1.匿名内部类是没有名字的内部类,它在建立对象的时候完成对类的定义,而不需要给类起名字
2.可以通过指定类要实现的接口来创建匿名内部类,但是只能有一个接口
3.匿名内部类对Enclosing Class的访问权限同本地内部类相同
4.匿名内部类最常见的用途是在建立GUI应用程序时为组件添加事件监听器对象
5.名内部类不能定义构造函数
- java 中内部类
- java中内部类
- Java中内部类
- java中内部类
- java中内部类
- Java中内部类
- Java中内部类
- Java中内部类
- java中内部类
- java中匿名内部类
- java中内部类笔记
- java中匿名内部类
- Java中内部类表现形式
- java中内部类详解
- java中内部类总结
- java中内部类详解
- java 内部类中 static (内部类对象成员)
- java中内部类之成员内部类
- Android图片圆角形式显示的工具类
- C++类型转换
- 【jzoj4909】【李电下棋】【数论】【结论】
- 3 使用 Dockerfile 实现 自动化构建(创建) 镜像
- servlet实现文件上传
- Java中内部类
- 跟我一起写 Makefile(十)
- 设计模式C++实现(3)——适配器模式
- Vue最早版本迁移到2.0
- 【C#】使用TcpListener和TcpClient实现简单通信
- Listview中的分割线、分割线的颜色以及分割线高度的改变 Button或者ImageButton的背景设为透明或者半透明
- PopupWindow学习
- sqli-labs学习教程(一)
- Manacher马拉车算法总结