严格意义上说内部类分为三种,嵌入类,内部成员类,和本地类
当类前面有static修饰符时它就是嵌入类,嵌入类只能和外部类的成员并列,不能定义在方法里面。如果类和外部类的成员是并列定义的,且没有static修饰,则该类称为内部成员类,如果类定义在某个方法中,则该类称为本地类
1 嵌入类的定义
当内部类的前面用static修饰时,它就是一个嵌入类,它和外部类的其他成员属性和方法处在同一层次上。
2 内部成员类的定义
如果内部类前面不用static修饰说明它是一个内部成员类,她的地位与类的实例成员相当,所以也被称为内部实例成员类,
内部成员类和嵌入类最大的区别在于它的类体中不允许存在静态成员,包括静态成员变量,和静态成员方法,但可以定义静态常量。
3 本地类的定义
内部类可以定义在方法之中,这时它被称为本地类,无论方法本身是静态方法还是实例方法,本地类都不能用static来修饰。它的类体中与内部成员类一样,除了静态成员常量之外不允许定义任何静态成员。
当类前面有static修饰符时它就是嵌入类,嵌入类只能和外部类的成员并列,不能定义在方法里面。如果类和外部类的成员是并列定义的,且没有static修饰,则该类称为内部成员类,如果类定义在某个方法中,则该类称为本地类
1 嵌入类的定义
当内部类的前面用static修饰时,它就是一个嵌入类,它和外部类的其他成员属性和方法处在同一层次上。
2 内部成员类的定义
如果内部类前面不用static修饰说明它是一个内部成员类,她的地位与类的实例成员相当,所以也被称为内部实例成员类,
内部成员类和嵌入类最大的区别在于它的类体中不允许存在静态成员,包括静态成员变量,和静态成员方法,但可以定义静态常量。
3 本地类的定义
内部类可以定义在方法之中,这时它被称为本地类,无论方法本身是静态方法还是实例方法,本地类都不能用static来修饰。它的类体中与内部成员类一样,除了静态成员常量之外不允许定义任何静态成员。