内部类
内部类,简单说就是写在另一个类里面的类。它常见的用途不是'为了嵌套而嵌套',而是把只服务于外部类的一小块逻辑收进去,顺手还能拿到外部类的成员。
内部类可以定义在类体里,也可以定义在方法里。常用的就四种:实例内部类、静态内部类、匿名内部类、局部内部类。
实例内部类
实例内部类依附于外部类对象存在。要创建它,先得有外部类实例,再通过外部类对象去 new 内部类。
它最直接的特点是:内部类可以直接访问外部类的成员,包括私有成员;反过来,外部类要访问内部类的成员,还是得先创建内部类对象。
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);
System.out.println(OutClass..a);
}
}
{
();
System.out.println(inclass.a);
System.out.println(inclass.e);
System.out.println();
}
}
{
{
();
OutClass. class1. ();
OutClass. (). ();
class1.test();
class2.test();
}
}


