内部类 :
1,在一个类中定义另外一个类 ,这个类就叫做内部类 或者 内置类 (inner class) 。
2,内部类可以让我们将一组逻辑相关的一组类组织起来,并由外部类(outer class)来控制内部类的可见性。
3,当我们建立一个inner class时 ,其对象就拥有了与外部类对象之间的一种关系 ,这是通过一个特殊的 this reference形成的 ,使得内部类对象可以随意访问外部类中所有的成员 。
4,定义在类的外部与内部是一样的 , 不会与外部类有任何的冲突 ,Inner仍然是一个独立的类 。
5,在一个静态的内部类中 ,也只能访问外部类中的静态成员的变量或者方法了 。
6,非静态内部类中 , 不能有静态的方法 。非static的内部类中成员不能声明为static ,只有在顶层类或者static的内部类中才可以声明static成员 。
7,在方法中定义的内部类 ,如果要访问方法中定义的本地变量或者方法的参数,则变量必须声明为final 。
8,内部类可以声明为static ,但此时就不能在使用外部类的非static测成员变量和方法了。
9,在内部类中 ,可以随意的访问外部类的成员 ,这可以让我们更好的组织管理我们的代码。
10,内部类可以用于创建适配器类,适配器类是用于实现接口的类,使用内部类来实现接口,可以更好的定位与接口关联的方法在代码中的位置 。
1,在一个类中定义另外一个类 ,这个类就叫做内部类 或者 内置类 (inner class) 。
2,内部类可以让我们将一组逻辑相关的一组类组织起来,并由外部类(outer class)来控制内部类的可见性。
3,当我们建立一个inner class时 ,其对象就拥有了与外部类对象之间的一种关系 ,这是通过一个特殊的 this reference形成的 ,使得内部类对象可以随意访问外部类中所有的成员 。
4,定义在类的外部与内部是一样的 , 不会与外部类有任何的冲突 ,Inner仍然是一个独立的类 。
5,在一个静态的内部类中 ,也只能访问外部类中的静态成员的变量或者方法了 。
class Outer
{
privat static int index = 100 ;
void fn(final int a)
{
}
static class Inner
{
private int index = 20 ;
void print()
{
int index = 30 ;
System.out.println(index);
System.out.println(this.index);
System.out.println(Outer.index);//直接用类名引用 ,不需this
}
}
6,非静态内部类中 , 不能有静态的方法 。非static的内部类中成员不能声明为static ,只有在顶层类或者static的内部类中才可以声明static成员 。
7,在方法中定义的内部类 ,如果要访问方法中定义的本地变量或者方法的参数,则变量必须声明为final 。
8,内部类可以声明为static ,但此时就不能在使用外部类的非static测成员变量和方法了。
9,在内部类中 ,可以随意的访问外部类的成员 ,这可以让我们更好的组织管理我们的代码。
10,内部类可以用于创建适配器类,适配器类是用于实现接口的类,使用内部类来实现接口,可以更好的定位与接口关联的方法在代码中的位置 。