个人主页
学习内部类(Inner Class)是Java编程中一项重要且强大的特性,它允许你在一个类的内部定义另一个类。内部类提供了一种将逻辑上相关的类组织在一起的方式,增加了代码的封装性和可读性。接下来带领大家进入內部类的学习。
1静态内部类
2实例内部类
3匿名内部类
一:静态内部类的使用例子:
class OuterClass{ public int date1=1; private int date2=2; public static int date3=3; static class InnerClass{ public int date4=4; private int date5=5; public static int date6=6; public void test(){ OuterClass outerclass=new OuterClass(); System.out.println(outerclass.date1); System.out.println(outerclass.date2); System.out.println(date3); System.out.println(date4); System.out.println(date5); System.out.println(date6); System.out.println("InnerClass:::test()"); } }}public class Test { public static void main(String[] args) { OuterClass.InnerClass innerClass=new OuterClass.InnerClass(); innerClass.test(); }}
在静态内部类当中去访问外部类非静态成员,必须通过外部内对象引用来访问。如图所示:
二:实例内部类例子:
class OuterClass{ public int date1=1; private int date2=2; public static int date3=3; class InnerClass{ public int date4=4; private int date5=5; public static int date6=6; public void test(){ OuterClass outerclass=new OuterClass(); System.out.println(date1); System.out.println(date2); System.out.println(date3); System.out.println(date4); System.out.println(date5); System.out.println(date6); System.out.println("InnerClass:::test()"); } }}public class Test { public static void main(String[] args) { // OuterClass.InnerClass innerClass=new OuterClass.InnerClass(); OuterClass outerClass=new OuterClass(); OuterClass.InnerClass innerClass=outerClass.new InnerClass(); //OuterClass.InnerClass innerClass=new OuterClass().new InnerClass(); innerClass.test(); }}
当有与外部相同的成员变量时,则访问的是实例内部类的成员变量。如图;得到的是date1=99.
那么要访问外部类的date1可以通过外部內类名(OuterClass.this.date1)就可以。
三:匿名内部类的例子:
匿名内部类(Anonymous Inner Class)是Java中一种没有名字的内部类,通常用于简化代码或实现一次性的、简单的类定义。
class 0uterClass { public void test(){ System.out.println("OuterClass:::test()"); }}public class Test{ public static void main(String[] args) { new 0uterClass(){ @Override public void test(){ System.out.println("重写了test()方法:::"); } }.test(); }}