---------------------- android培训、java培训、期待与您交流! ----------------------
java的内部类主要分为成员内部类、方法内部类、匿名内部类、静态嵌套内部类。
为什么要用内部类呢?
(1)比如定义一个类Panda(熊猫),继承抽象类Animal(动物)这个类,并且实现Protect(受保护的)这个接口,但是奇怪的是Animal和Protect中都有抽象方法:price(价格){}这个方法(动物类),请问Panda(熊猫)怎么处理?这是就要用到内部类。。。
(2)有时候一个类只需要在一处代码中使用一次,其他位置不会再用到这个类,这时我们就可以用匿名内部类来解决,无需为该类命名。。。例如GUI中监听事件。。。
如何使用内部类?
成员内部类:
class Outer{
class Inner{}
}
外部类的一个成员存在,与外部类的属性、方法并列
成员内部类中不能定义静态变量,但可以访问外部类的所有成员
方法内部类:
即定义在方法中的类。
class Outer{
public void Method(){
clsss Inner(){
}
}
}
此类只能在方法内部使用,外部完全不可见
使用方法跟外部类一模一样
匿名内部类:
class Outer{
public void Method(){
}
}
class Outer2{
public static void main(String[] args){
new Outer(){
public void Method(){
}
}
}
}
匿名内部类是一种特殊的局部内部类,它是通过匿名类实现接口
类名没有意义,也就是不需要使用到
静态嵌套内部类:
class Outer{
static class Inner(){}
}
class Inner(){
}
静态内部类中可以定义静态或者非静态成员
静态内部类可以用public,protected,private修饰
---------------------- android培训、java培训、期待与您交流! ----------------------