Java-内部类
个人主页
学习内部类(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(){@Overridepublic void test(){System.out.println("重写了test()方法:::");}}.test();}
}