Java 内部类
文章目录
- 内部类
- 实例内部类
- 静态内部类
- 匿名内部类
- 局部内部类
内部类
- 一个事物的内部,还需要一个完整的结构进行描述,而这个结构只为外部服务,这个内部的完整结构叫内部类
- 可以将一个类定义到另一个类内,或一个方法内,里面的是内部类,外面的是外部类
实例内部类
- 如何实例化内部类
- 外部类的成员在内部类中都能直接访问
package test2; class outClass{ private int a = 3; public static int b = 2; class inClass{ private int a = 1; // 在运行时确定的 // static修饰的调用不需要实例化就能调用,而这个变量在内部类需要实例化内部类才能使用 // public static int d = 2; public static final int d = 3;// 在编译的时候就确定了,是个常量,不依赖于实例化 public int e = 2; public void test() { System.out.println("inClass::test"); System.out.println(this.a);// 1 System.out.println(a);// 1 System.out.println(outClass.this.a);// 3 } } public void test(){ inClass inclass = new inClass(); System.out.println(inclass.a); System.out.println(inclass.e); System.out.println("outClass::test"); } } public class testnbl { public static void main(String[] args) { // 实例化内部类 outClass class1 = new outClass(); outClass.inClass class2 = class1.new inClass(); outClass.inClass class3 = new outClass().new inClass(); class1.test(); class2.test(); } }
- 字节码文件
外部类类名$内部类类名.class
静态内部类
class oclass{ private int a = 1; public static int b = 2; public int c = 3; static class iclass{ public int d = 4; public static int e = 5; private int f = 6; public void test(){ oclass Out = new oclass(); System.out.println(Out.a); System.out.println(b); System.out.println(Out.c); System.out.println(d); System.out.println(e); System.out.println(f); System.out.println("iclass::test"); } } public void test(){ System.out.println("oclass::test"); } } public class testnbl { public static void main(String[] args) { oclass.iclass a = new oclass.iclass(); a.test(); } }
匿名内部类
- 你有一个类实现了IA接口,重写了test方法
interface IA{ void test(); } public class testnbl { public static void main(String[] args) { // 第一种方法调用 // 匿名内部类对象 IA a = new IA(){ public void test(){ System.out.println("重写了接口的方法!"); } }; a.test(); // 第二种方法调用 new IA(){ public void test(){ System.out.println("重写了接口的方法!"); } }.test(); } }
局部内部类
- 只能在其方法内部使用
- 不能被public和static修饰符修饰
- 很少使用
4. 字节码文件
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。