学习内部类(Inner Class)是Java编程中一项重要且强大的特性,它允许你在一个类的内部定义另一个类。内部类提供了一种将逻辑上相关的类组织在一起的方式,增加了代码的封装性和可读性。接下来带领大家进入內部类的学习。
1静态内部类
2实例内部类
3匿名内部类
一:静态内部类的使用例子:
java
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();
}
}
在静态内部类当中去访问外部类非静态成员,必须通过外部内对象引用来访问。如图所示:
二:实例内部类例子:
java
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中一种没有名字的内部类,通常用于简化代码或实现一次性的、简单的类定义。
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();
}
}